説明
ALTER SYSTEM SET SYNC_STANDBY_DEST ステートメントは、強力同期のダウンストリームを設定します。
デフォルトでは、プライマリテナントの保護モードは最大パフォーマンスモードです。V4.4.2バージョンでは、OceanBaseデータベースはV4.4.2 BP1バージョンから最大可用モードと最大保護モードをサポートしています。プライマリテナントの保護モードを最大可用モードまたは最大保護モードに設定する場合は、まずプライマリテナントに対して強力同期のスタンバイテナントを設定する必要があります。
使用上の制限と注意事項
V4.4.2バージョンでは、OceanBaseデータベースはV4.4.2 BP1バージョンから強力同期のダウンストリーム設定をサポートしています。
スタンバイテナントを強力同期モードに設定する際、そのスタンバイテナントはネットワークベースのスタンバイデータベースである必要があります。
強力同期のスタンバイテナントは1つのみ設定可能で、複数のスタンバイテナントを設定することはできません。
プライマリ・スタンバイテナントの両方において、強力同期のダウンストリームを設定できます。なお、スタンバイテナントにおいて強力同期のダウンストリームを設定しても通常は意味がありませんが、スイッチオーバーのシナリオにおいて、プライマリ・スタンバイテナント間で引き続き強力同期関係を維持したい場合、スタンバイテナントをプライマリテナントに切り替える前に、元のプライマリテナントを強力同期のダウンストリームとして設定することができます。
テナントの強力同期ダウンストリームのみを設定し、保護モードを設定しない場合、実際には強力同期モードは有効になりません。
権限要件
sys テナントの root ユーザー(root@sys)または各テナントの管理者ユーザーによって実行する必要があります。具体的には:
- MySQLモードのデフォルト管理者ユーザーは
rootユーザーです。 - Oracleモードのデフォルト管理者ユーザーは
SYSユーザーです。
構文
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アドレスは半角カンマ(,)で区切ります。 |
| NET_TIMEOUT | 最大可用モードにおいて、プライマリテナントが強力同期のスタンバイテナントのログ同期完了を待機するタイムアウト時間を指定します。指定時間内に完了しない場合、プライマリテナントは自動的に非同期同期的モードにダウングレードされます。その他の保護モードでは、このパラメータは意味をなしません。単位は秒で、デフォルト値は30秒を表します。値の範囲は[10, 1200]です。 |
| HEALTH_CHECK_TIME | 最大可用モードにおいて、プライマリテナントがスタンバイテナントのログ同期完了をチェックする時間を指定します。指定時間内にすべてのスタンバイテナントが同期状態であれば、プライマリテナントは自動的に強力同期モードにアップグレードされます。その他の保護モードでは、このパラメータは意味をなしません。単位は秒で、デフォルト値は60秒です。値の範囲は[0s, +∞)です。 |
| user_name@standby_tenant_name、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';