適用対象
この内容はOceanBaseデータベースEnterprise Editionにのみ適用されます。OceanBaseデータベースCommunity Editionは、現在アービトレーションサービス機能をサポートしていません。
テナントレベルのアービトレーションサービスを使用する場合、ログストリームの降格制御時間を設定する必要があります。半数のFコピーに障害が発生し、ログ同期に失敗した状態でログストリームの降格制御時間に達すると、アービトレーションサービスは自動的にログストリームの降格プロセスを実行してサービスを復旧します。ログストリームの自動降格の制御時間はデフォルトで5秒です。この値は、データセンター障害発生時のサービス中断時間も表します。
手順
sysテナントまたはユーザーテナントのテナント管理者としてデータベースにログインします。接続例は以下のとおりです。データベースへの接続時は、実際の環境に合わせてください。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -Aデータベースへの接続操作の詳細については、データベース接続の概要(MySQLモード)およびデータベース接続の概要(Oracleモード)を参照してください。
テナントのアービトレーションサービスのログストリームの降格制御時間を確認します。
システムテナントから指定テナントの確認
SHOW PARAMETERS LIKE 'arbitration_timeout' TENANT = 'tenant_name';テナント
mysqlのアービトレーションサービスのログストリームの降格制御時間を確認する例:obclient> SHOW PARAMETERS LIKE 'arbitration_timeout' TENANT = 'mysql';ユーザーテナントから自身テナントの確認
obclient> SHOW PARAMETERS LIKE 'arbitration_timeout';
結果は次のとおりです。
+-------+----------+----------------+----------+---------------------+-----------+-------+---------------------------------------------------------------------------------------------+---------+--------+---------+-------------------+---------------+-----------+ | zone | svr_type | svr_ip | svr_port | name | data_type | value | info | section | scope | source | edit_level | default_value | isdefault | +-------+----------+----------------+----------+---------------------+-----------+-------+---------------------------------------------------------------------------------------------+---------+--------+---------+-------------------+---------------+-----------+ | zone1 | observer | 172.xx.xxx.xxx | 2882 | arbitration_timeout | TIME | 5s | The timeout before automatically degrading when arbitration member exists. Range: [3s,+∞] | TRANS | TENANT | DEFAULT | DYNAMIC_EFFECTIVE | 5s | 1 | +-------+----------+----------------+----------+---------------------+-----------+-------+---------------------------------------------------------------------------------------------+---------+--------+---------+-------------------+---------------+-----------+ 1 row in set使用シナリオに応じて、適切なステートメントを選択してログストリームの降格制御時間を変更します。
テナントレベルの構成パラメータ
arbitration_timeoutは、ログストリームの自動降格をトリガーする制御時間を設定するために使用されます。デフォルト値は5秒で、取り得る範囲は[3s, +∞)です。降格を防ぐには、十分に大きな値を設定できます。例えば、30d(30日間)などです。この構成パラメータは設定後すぐに反映され、OBServerノードの再起動は不要です。ユーザーテナントから自身テナントのログストリームの降格制御時間の変更
obclient> ALTER SYSTEM SET arbitration_timeout = '10s';sysテナントが指定したテナントのログストリームの降格制御時間を変更するobclient> ALTER SYSTEM SET arbitration_timeout = '10s' TENANT = 'tenant_name';sysテナントがすべてのユーザーテナント(sysテナントおよびMetaテナントを除く)のログストリームの降格制御時間を変更するobclient> ALTER SYSTEM SET arbitration_timeout = '10s' TENANT = all_user;または
obclient> ALTER SYSTEM SET arbitration_timeout = '10s' TENANT = all;説明
OceanBaseデータベースでは、バージョンV4.2.1以降、
TENANT = all_userとTENANT = allは同じ意味を持ちます。効果範囲をすべてのユーザーテナントに設定する場合は、TENANT = all_userの使用を推奨します。TENANT = allは今後廃止されます。
関連ドキュメント
アービトレーションサービスに関する詳細情報については、以下を参照してください: