構成パラメータのbool型の設定は、0がFalseを表し、1がTrueを表します。
クラスタ構成
メタ情報の設定
パラメータ |
意味 |
デフォルト値 |
動的変更の可否 |
備考 |
|---|---|---|---|---|
| init_log_level | 起動時のログレベル | ALL.*:INFO;SHARE.SCHEMA:INFO | 不可 | 起動時のログレベルは、より詳細なログを出力するために設定されます。起動後はlog_levelの設定に調整されます。 |
| log_level | 起動後のログレベル | ALL.*:INFO;SHARE.SCHEMA:WARN | はい | なし |
| max_log_file_count | ログファイルの最大数 | 0 | 不可 | 値の範囲は0以上であり、値が0の場合はログに制限がないことを意味します。ログファイル数を減らすには、obcdcの再起動が必要です。 |
| enable_log_limit | ログの制限を有効にするか | 1 | はい | 1:有効 0:無効 |
| rootserver_list | 起動時に指定するrootserviceのマシン情報 | |(英字半角) |
はい | 書式:server_ip:server_rpc_port:server_sql_port。 |
| cluster_url | 起動時に指定するcluster url | |(英字半角) |
不可 | OceanBaseにcluster urlがある場合、obcdcはrootserver情報を取得するために使用され、serverの高可用性をサポートします。 |
| cluster_user | sysテナント内のユーザー名 | 空(ユーザー指定、必須) | 不可 | sysテナント内のユーザーを設定する必要があり、内部テーブル(oceanbaseデータベース)への読み取り権限を持つ必要があります。 |
| cluster_password | 上記ユーザーのパスワード | 空(ユーザー指定、必須) | 不可 | なし |
| cluster_db_name | obcdcがクエリする内部テーブルの所在データベース名 | oceanbase | 不可 | 変更不要、デフォルトで内部テーブルはoceanbaseデータベース内に配置されます |
| tenant_endpoint | テナントが存在するマシンのリスト | |(英字半角) |
不可 | 書式:host:sql_port、複数のマシン間は|で区切ります。 |
| tenant_user | テナントユーザー名 | |(英字半角) |
不可 | 書式:user_name@tenant_nameまたはuser_name@tenant_name#cluster。 |
| tenant_password | 上記のテナントユーザー名に対応するパスワード | |(英字半角) |
不可 | なし |
| config_fpath | 設定ファイルのダンプパス | etc/liboblog.conf | 不可 | obcdcのすべての設定情報はこのファイルにダンプされます。 |
| timezone | obcdcが所属するタイムゾーン | +8:00 | 不可 | データのフォーマット出力に影響を与えるタイムゾーンであり、データソースの設定と一致させる必要があります。デフォルトは東部8時間帯です。 |
| timezone_info_path | タイムゾーンのメタ情報ファイルが存在するディレクトリを指定します | etc/timezone_info.conf | はい | meta_data_refresh_modeがdata_dictに設定されている場合、RPMパッケージ内のtimezone_info.confファイルをこのディレクトリに配置する必要があります。 |
| skip_ob_version_compat_check | OceanBaseバージョンの互換性チェックをスキップするかどうか | 0 | いいえ | 3.x系のobcdcは、2.x/3.x系のOceanBaseデータの同期のみをサポートしており、またobcdcのバージョン番号はOceanBaseのバージョン番号よりも大きくなければなりません(比較時は大きいバージョン番号と小さいバージョン番号を考慮します)。 |
| cluster_version_refresh_interval_sec | OceanBaseクラスタのOBServerノードの最小バージョン番号を照会する周期 | 600 | いいえ | OceanBaseクラスタのバージョンをリフレッシュする間隔を秒単位で指定します。 |
| log_router_background_refresh_interval_sec | ログストリームのメタ情報のリフレッシュ頻度 | 10 | はい | ログストリームに対応するserver情報のバックグラウンドリフレッシュ時間間隔を秒単位で指定します。 |
勤務形態関連
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| working_mode | 動作モード | storage(Enterprise Edition) | 不可 | ビジネス上、トランザクションのサイズをできるだけ抑えてください。ビジネスシナリオに大規模なトランザクションが存在する場合は、永続化モードの使用を推奨します。永続化モードでは、obcdcをSSDディスクにデプロイすることを推奨します。 |
| store_service_path | obcdc永続化モードでデータを保存するパス | ./storage | 不可 | 永続化モードでのみ有効です。 相対パス:obcdcを呼び出すプロセスのパスに対する相対パス。 絶対パス:指定された絶対パスに保存されます。例:store_service_path=/data/1。 |
同期粒度
obcdcは複数のデータを同期することができ、単一のobcdcインスタンスは1クラスタ、1テナントまたは複数テナント、複数のデータベース、複数のテーブルなどを同期することができます。
同期粒度 |
単一obcdc |
複数obcdc |
|---|---|---|
| クラスタ | サポート(単一obcdcによる複数クラスタへの同期はサポートされていません) | サポート |
| テナント | サポート | サポート |
| データベース | サポートされていません | サポートされていません |
| テーブル | サポートされていません | サポートされていません(以下のマルチインスタンス構成パラメータを参照してください) |
もしテナントのトラフィックが非常に多く、単一のobcdcインスタンスでクラスタ全体を同期してリアルタイム性を保つことが難しい場合は、複数のobcdcインスタンスを使用して同一クラスタを同期し、負荷を分散させることができます。各インスタンスは異なるテナントのデータを同期します。
アローリング関連の設定
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| enable_white_black_list | obcdcのアローリングリストを有効にするかどうかを制御します | 1 | 不可 | デフォルトで有効であり、アローリングリストの設定が適用されます。無効にすると、アローリングリスト設定のあるテナントのデータが同期されます。 |
| tb_white_list | 同期対象のテーブルのアローリングリスト | *.*.* | 不可 | 書式:テナント名.データベース名.テーブル名(例:mytenant1.db1.tb1|mytenant2.db2.*)。 |
| tb_black_list | 同期対象のテーブルのブロックリスト | | |
不可 | 上記と同じ書式です。 |
| tablegroup_white_list | 同期対象のtablegroupのアローリングリスト | *.* | 不可 | 書式:テナント名.tablegroup名、例(mytenant1.*|or_tenant*.tg*)。 |
| tablegroup_black_list | 同期対象のtablegroupのブロックリスト | | |
不可 | 上記と同じ書式です。 |
| enable_filter_sys_tenant | sysテナントの同期データをフィルタリングするかどうか | 0 | 不可 | sysテナントが異常であり、通常のテナントが正常な場合に有効にします。 |
説明
obcdcは、テーブルおよびテーブルグループに基づくアローリングによるデータフィルタリング機能を提供します:
- 同期されるのは、アローリングリストに含まれているかつ、ブラックリストから除外されたテーブルまたはテーブルグループのみです。アローリングリストはデフォルトですべてのテナントのすべてのテーブルおよびテーブルグループとなっており、ブラックリストはデフォルトで空です。本番環境では、デフォルト値を使用せず、アローリングリストで指定したテナントのデータのみを同期することを推奨します(これにより冗長データの取得を防ぐことができます)。
- 設定方法はfnmatchを用いた正規表現マッチングであり、デフォルトのマッチングルールは大文字と小文字を区別しません。enable_oracle_mode_match_case_sensitive=1を設定した場合、ORACLEモードのテナントでは大文字と小文字を区別して名前をマッチングします。
複数インスタンス関連の設定
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| instance_num | ストリームを分担するobcdcの総数 | 1 | 不可 | なし |
| instance_index | 現在のobcdcが全体に占めるインデックス(ハッシュバケットIDとして理解できる) | 0 | 不可 | 値は [0,instance_num) であり、各obcdcは hash(tenant_id, ls_id) % instance_num = instance_idx のログストリームのデータのみを処理します。 |
| enable_global_unique_index_belong_to_multi_instance | 複数インスタンスシナリオでグローバル一意インデックステーブルの同期を許可するか | 0 | はい | 値が0の場合、複数インスタンスシナリオでグローバル一意インデックステーブルの同期を許可しません。 |
モニタリング関連の設定
フロー制御
obcdcは、異常な状況によりメモリ内のデータが蓄積しOOMを引き起こす問題を防ぐため、フロー制御機能を提供しています。obcdc内部の状態に基づいてフロー制御がトリガーされ、新しいデータの取得が一時停止されます。obcdcの状態が回復すると、再びデータの取得が続行されます。フロー制御機能は以下のパラメータで制御され、必要に応じて対応するパラメータを調整して制限レベルを調整します。
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| memory_limit | obcdcがスロットリングをトリガーする際に使用するメモリの上限 | 20G |
はい | スロットリングの参考パラメータの一つであり、obcdcのメモリ使用量をmemory_limit付近に抑えることを期待しています(obcdcは可能な限り制御します)。これは、obcdcが最大でもmemory_limitサイズのメモリしか使用しないことを意味するものではなく、最小構成は2Gです。 |
| memory_usage_warn_threshold | ログプルーニングのスロットリングをトリガーする際のメモリ占有率(memory_limitとの比較) | 85 | はい | なし |
| system_memory_avail_percentage_lower_bound | システム利用可能メモリの下限しきい値(パーセンテージ) | 10 | はい | 値の範囲:[10, 80]。 |
| part_trans_task_active_count_upper_bound | アクティブなパーティショントランザクション数の上限 | 200000 | はい | メモリ内のアクティブなパーティショントランザクション構造体数(割り当てられており、回収されていない)。 |
| storager_task_count_upper_bound | ストレージモジュールによる永続化タスク数のスロットリングしきい値 | 1000 | はい | 最小値は1です。 |
| storager_mem_percentage | 永続化モジュールが占有する相対的なスロットリングメモリの倍数を制御 | 1 | はい | 値が0の場合は自動調整を意味します。 |
| part_trans_task_reusable_count_upper_bound | 再利用予定のパーティショントランザクション数の上限 | 10240 | はい | ユーザー待機キューへの出力待ち+ユーザー出力待ち+ユーザー返却待ち+GCされていないタスク数。 |
| ready_to_seq_task_upper_bound | シーケンス処理待ちタスク数の上限 | 2000 | はい | シーケンス処理待ちタスク数の上限は、解析待ちタスク数+フォーマット待ちタスク数+永続化待ちタスク数です。 |
| pause-fetcher | ログプルーニングを強制的に一時停止 | 0 | はい | 値が0の場合、スロットリング計算ロジックの結果を考慮せず、ログプルーニングを強制的に一時停止します。 |
| direct_load_inc_thread_num | 増分ダイレクトロードログの読み取りおよび解析用スレッド数 | 0 | はい | メモリ速度制限のための自動設定パラメータであり、obcdcで設定したmemory_limitに基づいて自動調整することも、手動で設定を変更して動的に調整することも可能です。
注意増分ダイレクトロード機能を使用する際は、obcdcによるデータ同期に関してこのパラメータを慎重に調整する必要があります。そうでない場合、メモリ速度制限に影響を与え、メモリ超過を引き起こす可能性があります。 |
| direct_load_inc_queue_backlog_lowest_tolerance | スピード制限を引き起こすタスクの圧縮しきい値 | 0 | はい | メモリ制限のための自動設定パラメータであり、obcdcによって設定されたmemory_limitに基づいて自動調整することも、手動で設定を変更して動的に調整することもできます。
注意増分ダイレクトロード機能を使用する場合、obcdcによるデータ同期時にこのパラメータを慎重に調整する必要があります。そうでないと、メモリ制限に影響を与え、メモリ超過を引き起こす可能性があります。 |
フロー制御の参照条件:
- 条件1:アクティブパーティション数が上限しきい値(part_trans_task_active_count_upper_bound)を超えるかつ、obcdcが保持するメモリが上限しきい値(memory_limit)を超えるかつ、システム利用可能メモリが下限しきい値(system_memory_avail_percentage_lower_bound)未満の場合。
- 条件2:再利用可能なパーティショントランザクション構造数が上限しきい値(part_trans_task_reusable_count_upper_bound)を超えるかつ、待機中のシーケンス処理タスク数が上限しきい値(ready_to_seq_task_upper_bound)を超える場合。
- 条件3(3.x以降):永続化待ちタスク数がしきい値(storager_task_count_upper_bound)を超えるかつ、obcdcが保持するメモリがフロー制御トリガーメモリ(memory_limit)を超えるかつ、永続化モジュールが占有する相対的なフロー制御メモリの割合(storager_mem_percentage)が一定以上の場合。
フロー制御のトリガー条件:((条件1 && 条件2) || 条件3) || (pause-fetcher != 0)。
direct_load_inc_thread_num および direct_load_inc_queue_backlog_lowest_tolerance の2つの構成パラメータの自動調整ポリシーは以下の通りです:
memory_limit |
2G |
4G |
8G |
16G |
32G |
128G |
|---|---|---|---|---|---|---|
| direct_load_inc_thread_num | 1 | 1 | 1 | 2 | 3 | 5 |
| direct_load_inc_queue_backlog_lowest_tolerance | 4096 | 8192 | 16384 | 32768 | 65536 | 131072 |
メモリが十分な場合、direct_load_inc_thread_num の値を適切に引き上げて増分ダイレクトロードの読み取りおよび解析速度を向上させ、また制限をトリガーするタスクの圧縮しきい値(direct_load_inc_queue_backlog_lowest_tolerance)も適切に引き上げることができます。メモリが不足している場合は、direct_load_inc_thread_num および direct_load_inc_queue_backlog_lowest_tolerance の値を適切に引き下げるか、デフォルト値を維持することができます。
モニタリング情報の出力
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| enable_dump_pending_trans_info | obcdcが保持する分散トランザクションの状態を定期的に集計・出力するかどうかを制御します | 0 | はい | 値0は、obcdcが保持する分散トランザクションの状態を不定期に集計・出力しないことを意味します。1に設定すると、10秒ごとに出力されます。 |
| print_fetcher_slowest_ls_num | ログプル最も遅いパーティションの数を出力します | 10 | はい | なし |
| print_rpc_handle_info | RPC関連情報を出力するかどうかを制御します | 0 | はい | 値0は、RPC関連情報を出力しないことを意味します。 |
| print_stream_dispatch_info | ログプルストリーム情報を出力するかどうかを制御します | 0 | はい | 値0は、ログプルストリーム情報を出力しないことを意味します。 |
| print_ls_heartbeat_info | パーティションハートビート情報を出力するかどうかを制御します | 0 | はい | 値0は、パーティションハートビート情報を出力しないことを意味します。 |
| print_ls_serve_info | パーティションサービス情報(パーティションの状態、パーティショントランザクション数)を出力するかどうかを制御します | 0 | はい | 値0は、パーティションサービス情報(パーティションの状態、パーティショントランザクション数)を出力しないことを意味します。 |
| print_participant_not_serve_info | すべての分散トランザクションのサービス対象外(データ出力なし)のパーティショントランザクション情報を出力するかどうかを制御します | 0 | はい | 値0は、すべての分散トランザクションのサービス対象外(データ出力なし)のパーティショントランザクション情報を出力しないことを意味します。 |
| print_ls_server_list_update_info | パーティションserverリストを更新する際にserverリストの詳細情報を出力するかどうかを制御します | 0 | はい | 値0は、パーティションserverリストを更新しない場合にserverリストの詳細情報を出力しないことを意味します。 |
| enable_formatter_print_log | フォーマッターが一部フォーマット無視データ時のログを出力することを許可するかどうかを制御します | 0 | はい | 値0は、フォーマッターが一部フォーマット無視データ時のログを出力することを許可しないことを意味します。 |
機能制御関連の設定
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| enable_direct_load_inc | 増分ダイレクトロードデータの同期を制御する | 0 | 不可 | V4.3.1では、増分ダイレクトロードデータの同期はデフォルトで行われません。 |
| enable_output_virtual generado_column | 仮想生成列を出力するかどうかを制御する | 0 | 不可 | enable_output_by_table_defと組み合わせて使用する必要があります。
説明OceanBaseデータベースV4.3.x系では、この構成パラメータはV4.3.5 BP5バージョンから導入されました。つまり、OceanBaseデータベースがV4.3.5 BP5以降のV4.3.x系バージョンの場合、CDCは仮想生成列の出力をサポートします。 |
メタデータ管理
obcdc 4.1バージョンでは、ログを取得するためにOBServerノードにRPCを送信する必要がなく、データディクショナリを使用してメタ情報(スキーマ/ログストリーム情報など)を取得できます。
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| meta_data_refresh_mode | スキーマ/ログストリームなどのメタ情報の取得方法を指定します | online | 不可 |
|
テナント管理
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| skip_rename_tenant_ddl | テナントのリネームDDLを無視するか | 0 | はい | リネームされたテナントがobcdc同期アローリストの許可リストに含まれていない場合、影響はありません。そうでない場合は、通常エラーが発生しプロセスが終了します(このときのリネーム操作はアローリスト制限を破るため、このような状況ではアローリストを変更してリネーム前後のテナントを同時にサポートすることを推奨します)。この構成パラメータをtrueに設定すると、リネームテナントのDDLをスキップしてデータの同期を続行します。 |
| enable_oracle_mode_match_case_sensitive | OceanBase-Oracleモードのテナントのアローリストマッチング時の大文字と小文字の区別 | 0 | 不要です | なし |
Fetcherモジュール関連の設定
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| ls_count_upper_limit | パーティション進捗の数 | 2000000 | 不可 | 最大2億パーティションをサポートします。 |
| check_switch_server_interval_min | パーティションの切り替えが必要かどうかを定期的にチェックする間隔 | 30 | はい | なし |
SQLクエリ関連の設定
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| access_systable_helper_thread_num | SQL実行用接続プールの接続数上限 | 64 | 不可 | 値の範囲 [48, 1024]。 |
| rs_sql_connect_timeout_sec | root serviceのSQL接続タイムアウト時間 | 40 | はい | なし |
| rs_sql_query_timeout_sec | root serviceのSQLリクエストタイムアウト時間 | 30 | はい | なし |
| tenant_sql_connect_timeout_sec | テナントのSQL接続タイムアウト時間 | 40 | はい | なし |
| tenant_sql_query_timeout_sec | テナントのSQLリクエストタイムアウト時間 | 30 | はい | なし |
| sql_server_change_interval_sec | SQLリクエストの実行マシン切り替え周期 | 60 | はい | なし |
cluster_idに基づくデータのフィルタリング
obcdcは、cluster_idに基づくブラックリストによるデータフィルタリング機能を提供します。OceanBaseは有効なcluster_idの範囲を規定していますが、不要なデータへの同期を防ぐために、ユーザーはデータ書き込み時にcluster_idを指定できます。同期元側で書き込まれるデータのcluster_idの設定については、ob_org_cluster_idを参照してください。
- OceanBaseおよびOMSで定められた合法的なcluster_idの範囲(合法的な範囲は[1, 4294901759] U [4294901760, 4294967295])に該当しないデータは同期しません。
- cluster_id_black_listに記載されているcluster_idのデータは同期しません。
- cluster_id_black_list内の各cluster_idは、cluster_id_value_minとcluster_id_value_maxの間の値である必要があります。
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| cluster_id_black_list | 同期対象のクラスタIDのブラックリスト | | |
不可 | 複数のクラスタIDは半角文字|で区切り、各クラスタIDの値はcluster_id_value_minとcluster_id_value_maxの間に設定します。 |
| cluster_id_black_value_min | 同期対象のクラスタIDブラックリストの下限 | 2147473648 | 不可 | なし |
| cluster_id_black_value_max | 同期対象のクラスタIDブラックリストの上限 | 2147483647 | 不可 | なし |
サーバー級ブラックリスト
obcdcはOBServerノードに対してSQLおよびRPCを発行します。これらの実行マシンの一部を特定の項目でブロックする設定や、すべてのリクエストに対して有効なRPC実行マシンのブロック設定を提供しています。
さらに、obcdcはパーティション単位でログを取得するため、パーティション単位のプルログブラックリストが組み込まれています。パーティションログの取得にタイムアウトやエラーが発生したマシンは、そのパーティションのログ取得マシンのブラックリストに追加されます。マシンのブラックリストへの追加およびブラックリストからの除外処理は自動的に行われます。
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| server_blacklist | RPCリクエストのマシンブラックリストを設定します。obcdcはこのブラックリストに含まれるマシンに対してRPCリクエストを送信しません | | |
はい | 書式はsvr_ip:rpc_portで、複数のOBServer間は|で区切ります。このOBServerリストに含まれるマシンからログを取得することはありません。OBServerノードが正常にログサービスを提供できない場合(例えば、ネットワークパーティション/遅延など)、手動でこのリストに追加できます。 |
| sql_server_blacklist | SQLリクエストのマシンブラックリストを設定します。obcdcはこのブラックリストに含まれるマシンに対してSQLリクエストを送信しません | | |
はい | 書式はsvr_ip:rpc_portで、複数のOBServer間は|で区切ります。 |
パーティション単位のログプルサーバーのブラックリスト制御(通常は変更しません)
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| blacklist_survival_time_sec | マシンがブラックリストに入ってからの待機時間 | 30 | 不可 | なし |
| blacklist_survival_time_upper_limit_min | マシンがブラックリストに入っている時間の上限 | 4 | はい | なし |
| blacklist_survival_time Penalty_period_min | マシンが繰り返しブラックリストに追加された場合、ブラックリスト時間が倍増する間隔のしきい値 | 1 | はい | なし |
| blacklist_history_overdue_time_min | マシンがブラックリスト履歴でどのくらい待機した後に削除するか | 30 | はい | 最小値は10 |
| blacklist_history_clear_interval_min | ブラックリスト内のマシン情報をクリアする周期 | 20 | はい | 最小値は10 |
サーバーのキャッシュ情報関連設定
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
|---|---|---|---|
| all_server_cache_update_interval_sec | マシンリスト情報のキャッシュ更新間隔 | 5 | はい |
| all_zone_cache_update_interval_sec | Zone情報のキャッシュ更新間隔 | 5 | はい |
ログの取得に関する設定
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| idle_pool_thread_num | パーティションログ取得タスクを処理するスレッド数 | 4 | 不可 | 値の範囲 [1,32]。 |
| dead_pool_thread_num | 回収パーティションログ取得タスクを処理するスレッド数 | 1 | 不可 | 値の範囲 [1,32]。 |
| stream_worker_thread_num | パーティションログ取得タスクを割り当てるスレッド数 | 8 | 不可 | 値の範囲 [1,64]。 |
| start_lsnlocator_thread_num | パーティションログの開始点を特定するスレッド数 | 4 | 不可 | 値の範囲 [1,32]。 |
| lob_data_merger_thread_num | lobデータ処理スレッド数 | 2 | 不可 | 値の範囲 [1, +∞)。 |
| start_lsnlocator_locate_count | ログ開始点特定タスクを完了したリクエスト数 | 1 | 不可 | 最小値は1です。パーティションの開始ログIDを特定するには、指定された数のパーティションレプリカが同じ開始ログIDを返す必要があります。 |
| skip_start_lsnlocator_result_consistent_check | 開始ログIDの一貫性チェックをスキップする | いいえ | いいえ | なし |
| svr_stream_cached_count | マシンログストリームオブジェクトプールの初期サイズ | 16 | いいえ | 最小値は1です。 |
| fetch_stream_cached_count | パーティションログストリームオブジェクトプールの初期サイズ | 16 | いいえ | 最小値は1です。 |
| start_lsn_locator_rpc_timeout_sec | パーティション開始ログIDの特定にかかるRPCのタイムアウト時間 | 60 | はい | 最小値は1です。 |
| start_lsn_locator_batch_count | パーティション開始ログIDの特定にかかるRPCのバッチサイズ | 2000 | はい | 最小値は1です。 |
| heartbeat_interval_sec | パーティションハートビートRPCの周期 | 1 | はい | 最小値は1です。 |
| fetch_log_rpc_timeout_sec | パーティションログ取得RPCのタイムアウト時間 | 15 | はい | 最小値は1です。 |
| progress_limit_sec_for_dml | DMLデータログ取得の進捗上限 | 300 | はい | 最小値は1です。 一部のパーティションでログ取得が速すぎることを防ぎ、各パーティションの進捗を基本的に均一にするため、サーバーが提供できるログの上限を全パーティションの進捗の最小値+progress_limit_sec_for_dmlに制限します。 |
| ls_fetch_progress_update_timeout_sec | パーティションログ取得RPCのタイムアウトを判断するしきい値 | 3 | はい | 最小値は1です。 |
| ls_fetch_progress_update_timeout_sec_for_lagged_replica | ラグされたレプリカ上でのログ取得タイムアウトのしきい値 | 15 | はい | 最小値は1です。 |
| enable_continue_use_cache_server_list | Cacheを使用するサーバー情報を有効にするか | 0 | 不可 | sysテナントが異常であるが通常のテナントは正常な場合に有効にします。 |
| fetching_log_mode | ログ取得モードを指定するために使用されます | integrated | 不可 |
注意obcdcは、連続していないアーカイブログの取得をサポートしていません。 |
ログ取得優先順位関連
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| region | obcdcがログを優先的に取得するリージョンを設定します | default_region | はい | リージョンはOceanBaseデータベースの内部テーブルから取得する必要があります。obcdcは、設定されたリージョン内のOBServerノードから優先的にログを取得します。 |
RPCモジュールの設定(変更は推奨されません)
パラメータ |
意味 |
デフォルト値 |
値の範囲 |
動的変更は可能か |
|---|---|---|---|---|
| io_thread_num | RPC I/Oスレッド数 | 4 | [1, +∞) | 不可 |
| rpc_result_cached_count | ログ取得RPC結果オブジェクトプールの初期サイズ | 16 | [1, +∞) | 不可 |
| rpc_process_handler_time_upper_limit_msec | RPC処理の最大時間 | 200 | [1, +∞) | はい |
| rpc_result_count_per_rpc_upper_limit | 単一ログ取得ストリーム内で未処理のログ取得RPC結果数の上限。上限に達した場合、ログ取得RPCを一時停止する | 16 | [1, +∞) | はい |
セキュア通信関連
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| ssl_client_authentication | セキュリティ通信を有効にするか | 0 | 不可 | デフォルトの0はセキュリティ通信を無効にすることを意味します。 |
| ssl_external_kms_info | セキュリティ通信方式 | file | 不可 | 外部利用ではファイルモードのみサポートされており、秘密鍵ファイルはobcdc起動ディレクトリ内のwalletディレクトリに配置します(walletディレクトリはご自身で作成してください)。その下に以下の秘密鍵ファイルを配置します:ca.pem/client-cert.pem/client-key.pem。 |
Sequencerモジュール関連の構成
パラメータ |
意味 |
デフォルト値 |
値の範囲 |
動的変更は可能か |
|---|---|---|---|---|
| sequencer_thread_num | 分散トランザクションシーケンサースレッドプールのサイズ | 5 | [1, +∞) | 不可 |
| sequencer_queue_length | シーケンス待ちのパーティショントランザクションキュー | 102400 | [1, +∞) | 不可 |
REDO読み取り制御モジュール
パラメータ |
意味 |
デフォルト値 |
値の範囲 |
動的変更は可能か |
|---|---|---|---|---|
| redo_dispatched_memory_limit_exceed_ratio | enable_output_trans_order_by_sql_operation=1 の場合、処理対象となるREDOログのサイズ制限を設定します。つまり、メモリ内で処理中のREDOログのサイズは、redo_dispatched_memory_limit_exceed_ratio × redodispatcher_memory_limit 以下となります。 | 2 | [1, +∞) | はい |
| redodispatcher_memory_limit | 処理対象となるREDOログのサイズ制限 | 512M | [128M, +∞) | はい |
| extra_redo_dispatch_memory_size | データ偏りシナリオにおいて、偏った参加者に追加割り当てるREDOログ残高。デッドロックによりOBDCDがデータを出力しないことを防ぐために使用されます | 4M | [0M, 512M] | はい |
行データソートモジュール
パラメータ |
意味 |
デフォルト値 |
値の範囲 |
動的変更は可能か |
|---|---|---|---|---|
| msg_sorter_task_count_upper_limit | トランザクション内行データソートモジュールのタスク数上限 | 200000 | [1, +∞) | 不可 |
| msg_sorter_thread_num | トランザクション内行データソートモジュールのスレッド数 | 1 | [1, 32] | 不可 |
永続化モードで有効になる構成
Storagerモジュール関連の構成
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
|---|---|---|---|
| storager_thread_num | 永続化モジュールのスレッドプールサイズ | 10 | 不可 |
| storager_queue_length | 永続化待ちのタスク数 | 102400 | 不可 |
Data Processorモジュール関連の構成
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
|---|---|---|---|
| reader_thread_num | 永続化モジュールからデータを読み取るスレッドプールのサイズ | 10 | 不可 |
| reader_queue_length | アンシリアライズされたデータを待機中のタスク数 | 102400 | 不可 |
REDO一括永続化関連の構成
パラメータ |
意味 |
デフォルト値 |
値の範囲 |
動的変更は可能か |
|---|---|---|---|---|
| batch_buf_count | redo一括永続化のためのメモリバッファ数 | 10 | [5, +∞) | 不可 |
| batch_buf_size | redo一括永続化のための集約バッファサイズ | 20MB | [2MB, +∞) | 不可 |
Parserモジュール関連の設定
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| dml_parser_thread_num | DML文の解析を行うスレッドプールのサイズ | 5 | 不可 | 最小値は1です。 |
| ddl_parser_thread_num | DDL文の解析を行うスレッドプールのサイズ | 1 | 不可 | 最小値は1です。 |
| skip_reversed_schema_version | スキーマバージョンのジャンプアップ例外を無視する | 0 | 不可 | DDL処理プロセスは一般的にスキーマが単調に増加するプロセスであり、スキーマバージョンがジャンプアップする場合は例外が発生していることを示します。この構成パラメータは、その例外をスキップするために使用されます。 |
Formatterモジュール関連の設定
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| formatter_thread_num | データフォーマットスレッドプールのサイズ | 10 | 不可 | 最小値は1です。 |
| skip_dirty_data | 異常データをスキップする | 0 | はい | 現在の異常状況:
|
Binlogレコード出力関連の構成
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| enable_output_trans_order_by_sql_operation | トランザクション内の行データをSQL実行順序で出力するかどうか | 0 | 不可 | OceanBase内部でのデータ変更順序を指し、クライアントから送信されたSQLの順序と完全に一致しない場合があります。 |
| sort_trans_participants | 分散トランザクションの参加者に基づいてソートする | 1 | 不可 | パーティションキーに基づいてソートすることを指します。enable_output_trans_order_by_sql_operationと組み合わせることで、安定したステートメント出力順序を得ることができます。 |
| enable_output_hidden_primary_key | 主キーのないテーブルの隠れた主キーを出力するかどうか | 0 | 不可 | 主キーのないテーブルでは、enable_output_hidden_primary_key=1に設定すると隠れた主キーが出力されます。 |
| enable_convert_timestamp_to_unix_timestamp | タイムスタンプをUNIX整数時間に変換するかどうか | 0 | 不可 | なし |
| enable_output_invisible_column | 隠れた列を出力するかどうか | 0 | 不可 | なし |
| enable_output_by_table_def | ユーザー定義の列順序で列を出力するかどうかを制御 | 0 | 不可 | なし |
| output_heartbeat_interval_msec | 安全ポイント情報の出力間隔 | 1000 | はい | なし |
リソース回収関連の構成(変更は推奨されません)
パラメータ |
意味 |
デフォルト値 |
動的変更の可否 |
備考 |
|---|---|---|---|---|
| resource_collector_thread_num | リソース回収スレッドプールサイズ | 10 | 不可 | 最小値は1です。 |
| resource_collector_thread_num_for_br | binlogレコード回収用スレッドプールサイズ | 7 | 不可 | resource_collector_thread_numより大きい必要があります。 |
注意
この構成パラメータの説明ドキュメントに記載されていない構成は、変更しないことを推奨します。