適用対象
この内容は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は今後廃止され、使用されなくなります。
関連ドキュメント
その他のアービトレーションサービスに関する情報については、以下を参照してください: