構成パラメータの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情報を取得するために使用され、サーバーの高可用性をサポートします。 |
| 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(商用版) | いいえ | 業務上、トランザクションのサイズを可能な限り制御してください。業務シナリオに大規模トランザクションが存在する場合は、永続化モードの使用を推奨します。永続化モードでは、obcdcをSSDディスクにデプロイすることを推奨します。 |
| store_service_path | obcdc永続化モードでデータを保存するパス | ./storage | いいえ | 永続化モードでのみ有効です。 相対パス:obcdcを呼び出すプロセスのパス配下に保存する場合。 絶対パス:指定された絶対パスに保存する場合。例:store_service_path=/data/1。 |
同期粒度
obcdcは複数のデータを同期することができます。単一のobcdcインスタンスは、1つのクラスタ、1つまたは複数のテナント、複数のデータベース、複数のテーブルなどを同期することをサポートします。
同期粒度 |
単一obcdc |
複数obcdc |
|---|---|---|
| クラスタ | サポート(単一obcdcによる複数クラスタの同期はサポートされていません) | サポート |
| テナント | サポート | サポート |
| database | サポートされていません | サポートされていません |
| table | サポートされていません | サポートされていません(下記のマルチインスタンス構成パラメータを参照) |
テナントのトラフィックが非常に多く、単一インスタンスの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は、テーブルおよびtablegroupに基づくアローリストによるデータフィルタリング機能を提供します:
- 同期対象となるのは、アローリストに含まれており、かつブラックリストにも含まれていないテーブル / tablegroupのみです。アローリストはデフォルトですべてのテナントのすべてのテーブル / tablegroupを含み、ブラックリストはデフォルトで空です。本番環境では、デフォルト値を使用せず(冗長なデータを取得するため)、アローリストで指定したテナントのデータの同期を行うことを推奨します。
- 設定方法は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 | storagerモジュールが永続化するタスク数のスロットリングしきい値 | 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 | formatterが一部のフォーマットを無視したデータのログを出力することを許可するかどうかを制御します | 0 | はい | 値が0の場合、formatterが一部のフォーマットを無視したデータのログを出力することを許可しません。 |
機能制御関連の設定
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| enable_direct_load_inc | 増分ダイレクトロードデータの同期を制御します | 0 | いいえ | V4.3.1では、増分ダイレクトロードデータはデフォルトで同期されません。 |
| enable_output_virtual_generated_column | 仮想生成列を出力するかどうかを制御します | 0 | いいえ | enable_output_by_table_defと組み合わせて使用する必要があります。
説明OceanBaseデータベースV4.4.x系では、このパラメータはV4.4.2バージョンから導入されました。つまり、OceanBaseデータベースがV4.4.2以降のV4.4.xシリーズバージョンの場合、obcdcは仮想生成列の出力をサポートします。 |
メタデータ管理
obcdc 4.1バージョンでは、データディクショナリを通じてメタ情報(スキーマやログストリーム情報など)を取得できるため、OBServerノードにRPCを送信してログをプルする必要がありません。
パラメータ |
説明 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| meta_data_refresh_mode | スキーマやログストリームなどのメタ情報の取得方法を指定します | online | いいえ |
注意obcdcがOceanBaseデータベースV4.2以降のバージョンのデータを同期する際、ユーザー設定を無視し、 |
テナント管理
パラメータ |
説明 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| 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がcluster_id_black_listに含まれるデータは同期しません。
- cluster_id_black_list内の各cluster_idは、cluster_id_value_minとcluster_id_value_maxの間の値である必要があります。
パラメータ |
意味 |
デフォルト値 |
動的変更は可能か |
備考 |
|---|---|---|---|---|
| cluster_id_black_list | 同期対象のcluster_idのブラックリスト | | |
いいえ | 複数のcluster_idは半角文字|で区切り、各cluster_idの値はcluster_id_value_minとcluster_id_value_maxの範囲内である必要があります。 |
| cluster_id_black_value_min | 同期対象のcluster_idブラックリストの下限 | 2147473648 | いいえ | なし |
| cluster_id_black_value_max | 同期対象のcluster_idブラックリストの上限 | 2147483647 | いいえ | なし |
サーバーレベルのブロックリスト
obcdcはOBServerノードにSQLおよびRPCを送信します。SQLの実行マシンと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_lsn_locator_thread_num | パーティションログ開始点を特定するスレッド数 | 4 | いいえ | 値の範囲 [1,32]。 |
| lob_data_merger_thread_num | lobデータ処理スレッド数 | 2 | いいえ | 値の範囲 [1, +∞)。 |
| start_lsn_locator_locate_count | ログ開始点特定タスクを完了したリクエスト数 | 1 | いいえ | 最小値は1です。パーティションの開始ログIDを特定するには、指定された数のパーティションレプリカが同じ開始ログIDを返す必要があります。 |
| skip_start_lsn_locator_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残高です。デッドロックによりobcdcがデータを出力しなくなるのを防ぎます | 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バッチ永続化のためのメモリbuffer数 | 10 | [5, +∞) | 不可 |
| batch_buf_size | redoバッチ永続化のための集約bufferサイズ | 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 | はい | 現在の異常状況:
|
| enable_filte_mow_lob_col | delete_insertモードのテーブルのOUTROW LOB列をフィルタリングするかどうかを制御します | 0 | いいえ | OceanBaseデータベースのバージョンがV4.3.5.0からV4.3.5.5の間にある場合、obcdcはOceanBaseデータベースに書き込まれたdelete_insertテーブルのOUTROW LOBデータを処理できません。この構成パラメータを調整することで、obcdcによるデータの同期を継続させることができます。フィルタリングされたOUTROW LOB列は、obcdcによって信頼できない列としてマークされます。 |
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 | 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より大きい必要があります。 |
注意
この構成パラメータ説明ドキュメントに記載されていない設定は、変更することを推奨しません。