デフォルトでは、プライマリテナントの保護モードは最大パフォーマンスモードに設定されています。最大保護モードまたは最大可用モードに設定する必要がある場合は、まずプライマリテナントの強力同期ダウンストリームを設定する必要があります。
使用制限と注意事項
スタンバイテナントを強力同期モードに設定する場合、そのスタンバイテナントはネットワークベースのスタンバイデータベースでなければなりません。
強力同期のスタンバイテナントは1つのみ設定可能で、複数の強力同期スタンバイテナントの設定はサポートされていません。
プライマリ・スタンバイテナントの両方に強力同期のダウンストリームを設定できます。ただし、スタンバイテナントに強力同期のダウンストリームを設定しても通常は意味がありません。ただし、Switchoverシナリオで、プライマリ・スタンバイテナント間の強力同期関係を維持したい場合は、スタンバイテナントをプライマリテナントに切り替える前に、元のプライマリテナントをスタンバイテナントの強力同期ダウンストリームとして設定できます。
テナントの強力同期ダウンストリームのみを設定し、保護モードを設定しない場合、実際には強力同期モードは有効になりません。
手順
管理ユーザーでプライマリテナント、またはプライマリテナントが属するクラスタの
sysテナントにログインします。説明
MySQLモードの管理ユーザーは
rootユーザー、Oracleモードの管理ユーザーはSYSユーザーです。接続例は以下の通りです。データベースへの接続時は、実際の環境に準じてください。
obclient -h10.xx.xx.xx -P2883 -uroot@sys#obdemo -p***** -A以下のステートメントを実行して、プライマリテナントの強力同期ダウンストリームを設定します。
ステートメントは以下の通りです:
ALTER SYSTEM SET SYNC_STANDBY_DEST = 'SERVICE=ip_list NET_TIMEOUT=int_value HEALTH_CHECK_TIME=time USER=user_name@standby_tenant_name PASSWORD=password' [TENANT = tenant_name];関連パラメータの説明は以下の通りです:
ip_list:ダウンストリームのスタンバイテナントにあるレプリカのOBServerノードのIPアドレスとSQLポート番号(ポート番号はデフォルトで2881)です。複数のIPアドレスは半角カンマ(,)で区切ります。説明
設定後、負荷分散や災害復旧のシナリオでスタンバイテナントの
ip_list情報が変更された場合、プライマリテナントは秒単位でスタンバイテナント上のシステムログストリームの位置変化を検出し、自動的に更新します。ユーザーがip_list情報を手動で変更する必要はありません。NET_TIMEOUT:最大可用モードでプライマリテナントが強力同期のスタンバイテナントのログ同期完了を待機するタイムアウト時間を指定します。指定時間を超えても完了しない場合、プライマリテナントは自動的に非同期から同期モードにダウングレードされます。その他の保護モードでは、このパラメータは意味をなしません。単位は秒で、デフォルト値は30秒です。値の範囲は[10, 1200]です。HEALTH_CHECK_TIME:最大可用モードでプライマリテナントがスタンバイテナントのログ同期完了をチェックする時間を指定します。指定時間内にスタンバイテナントがすべて同期状態である場合、プライマリテナントは自動的に強力同期モードにアップグレードされます。その他の保護モードでは、このパラメータは意味をなしません。単位は秒で、デフォルト値は60秒です。値の範囲は[0s, +∞)です。user_name@standby_tenant_name:standby_tenant_nameにはダウンストリームのスタンバイテナント名を入力します。user_nameにはアクセスビューを作成するための専用ユーザーで作成したユーザー名を入力します。例:ユーザーrep_user。password:アクセスビューを作成するための専用ユーザーで作成したユーザーのパスワードを入力します。tenant_name:システムテナントは、この操作を実行するプライマリテナント名を指定します。
例:
システムテナントがプライマリテナント
mysqlに対して、強力同期のダウンストリームスタンバイテナントstandby_tenantを設定します。obclient(root@sys)[(none)]> ALTER SYSTEM SET SYNC_STANDBY_DEST = 'SERVICE=6.xx.xxx.xxx:2881 NET_TIMEOUT=20 HEALTH_CHECK_TIME=40s USER=rep_user@standby_tenant PASSWORD=xxxxxx' TENANT = mysql;プライマリテナントが自身に対して、強力同期のダウンストリームスタンバイテナント
standby_tenantを設定します。obclient> ALTER SYSTEM SET SYNC_STANDBY_DEST = 'SERVICE=6.xx.xxx.xxx:2881 NET_TIMEOUT=20 HEALTH_CHECK_TIME=40s USER=rep_user@standby_tenant PASSWORD=xxxxxx';
設定が成功すると、ビュー
CDB_OB_SYNC_STANDBY_DEST(システムテナント)/DBA_OB_SYNC_STANDBY_DEST(ユーザーテナント)を使用して、テナント内の強力同期のダウンストリーム情報を確認できます。システムテナントで、指定したテナントの強力同期のダウンストリーム情報を確認します。
obclient(root@sys)[(none)]> SELECT * FROM oceanbase.CDB_OB_SYNC_STANDBY_DEST WHERE TENANT_ID = tenant_id\Gユーザーテナントで、自身のテナント内の強力同期スタンバイテナント情報を確認します。
MySQLモードOracleモードMySQLモードのクエリステートメントは以下のとおりです:
obclient(root@mysql)[(none)]> SELECT * FROM oceanbase.DBA_OB_SYNC_STANDBY_DEST\GOracleモードのクエリステートメントは以下のとおりです:
obclient(sys@oracle001)[SYS]> SELECT * FROM SYS.DBA_OB_SYNC_STANDBY_DEST\G
システムテナントでのクエリ結果の例は以下のとおりです:
*************************** 1. row *************************** TENANT_ID: 1002 DEST_ID: 0 VALUE: IP_LIST=6.xx.xxx.xxx:2881+2882,USER=rep_user@standby_tenant,PASSWORD=CFE754BE186DE38E5A98A964323C91206567A05704397DA148183F10E7E21D78,TENANT_ID=1002,CLUSTER_ID=10002,COMPATIBILITY_MODE=MYSQL,IS_ENCRYPTED=true,net_timeout=20000000,health_check_time=40000000 1 row in set
次のステップ
プライマリテナントの強力同期のダウンストリームを設定した後、必要に応じて以下の操作を実行できます。
強力同期のダウンストリームのクリア
マキシマムパフォーマンスモードのテナントは、設定された強力同期のダウンストリーム情報を直接クリアできます。例:
システムテナントがプライマリテナント
mysqlの強力同期のダウンストリーム情報です。obclient(root@sys)[(none)]> ALTER SYSTEM SET SYNC_STANDBY_DEST = '' TENANT = mysql;プライマリテナントが自身の強力同期のダウンストリーム情報をクリアします。
obclient> ALTER SYSTEM SET SYNC_STANDBY_DEST = '';
強力同期のダウンストリームの変更
強力同期のダウンストリームの属性を変更するには、ログイン名 (
user_name)、パスワード (password)、テナントアドレス (ip_list)、スタンバイテナント名 (standby_tenant_name)、および同期タイムアウト時間 (NET_TIMEOUT) が含まれます。スタンバイテナント名とテナントアドレスは、一意のスタンバイテナントを特定することができます。テナントが最大保護モードまたは最大可用性モードの場合、スタンバイテナント名の変更は許可されませんが、ログイン名 (
user_name)、パスワード (password)、テナントアドレス (ip_list) などの情報は変更できます。これらの情報を変更しても、この一意のスタンバイテナントは変わらないためです。テナントがマキシマムパフォーマンスモードの場合、すべての属性を変更できます。強力同期のダウンストリームの属性を変更する際は、個々の属性を単独で変更することはサポートされていません。上記のいくつかの属性をすべて一度リセットする必要があります。強力同期のダウンストリーム情報を変更する構文は、強力同期のダウンストリームを設定する構文と同じです。
注意点として、強力同期のダウンストリームを設定した後、最大保護モードまたは最大可用性モードのプライマリテナントで、強力同期のダウンストリームを他のスタンバイテナントに変更する必要がある場合は、以下の操作を実行する必要があります。
- 保護モードの設定 を参照し、保護モードをマキシマムパフォーマンスモードに設定します。
- 本記事の 強力同期のダウンストリームのクリア に記載されているコマンドを参照し、設定された強力同期のダウンストリーム情報をクリアします。
- 本ドキュメントを参照し、強力同期のダウンストリームを再設定します。
- 保護モードの設定 を参照し、保護モードを再び最大保護モードまたは最大可用性モードに設定します。