適用対象
この内容は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秒で、値の範囲は[3秒、+∞)です。ダウングレードを発生させたくない場合は、十分に大きな値、例えば30日間(30d)を設定できます。この構成パラメータは設定後すぐに有効になり、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は今後廃止される予定です。
関連ドキュメント
アービトレーションサービスに関する詳細は、以下のドキュメントを参照してください: