復元が成功すると、復元されたテナントはすべてスタンバイテナントとなります。その後、RECOVER コマンドを実行して、テナントの復元時に指定したログアーカイブソースからログを再生し続けることができます。
背景
物理復元のプロセスは物理スタンバイデータベースと統一されており、物理復元後のテナントはスタンバイテナントとなります。その後、このテナントはスタンバイテナントとして関連サービスを提供することも、プライマリテナントに切り替えてサービスを提供することもできます。
前提条件
復元操作が正常に完了したことを確認してください。復元結果の確認方法については、復元結果の確認を参照してください。
システムテナントがスタンバイテナントにログ再生を指定する場合
rootユーザーでクラスタのsysテナントにログインします。以下のステートメントを実行して、ログ再生操作を実行します。
ステートメントは以下のとおりです:
指定されたタイムスタンプまでログを再生し、そのタイムスタンプのポイントを含みます。
obclient(root@sys)[oceanbase]> ALTER SYSTEM RECOVER STANDBY TENANT tenant_name UNTIL TIME='timestamp';指定されたSCNまでログを再生し、そのSCNのポイントを含みます。
obclient(root@sys)[oceanbase]> ALTER SYSTEM RECOVER STANDBY TENANT tenant_name UNTIL SCN=scn;終点なしで、アーカイブされたソース側のログを継続的に再生します。
obclient(root@sys)[oceanbase]> ALTER SYSTEM RECOVER STANDBY TENANT tenant_name UNTIL UNLIMITED;説明
このコマンドは一度に1つのスタンバイテナントのみを指定できます。複数のテナントを指定する必要がある場合は、このコマンドを繰り返し実行する必要があります。
ステートメントの実行が成功した後、スタンバイテナントのログ再生をキャンセルする場合は、以下のステートメントを実行できます。
obclient(root@sys)[oceanbase]> ALTER SYSTEM RECOVER STANDBY TENANT tenant_name CANCEL;スタンバイテナントのログ再生進捗状況を確認します。
obclient(root@sys)[oceanbase]> SELECT TENANT_ID, LS_ID, STATUS, READABLE_SCN FROM oceanbase.CDB_OB_LS WHERE TENANT_ID=xxx;ログ再生されたタイムスタンプを確認する必要がある場合は、
SCN_TO_TIMESTAMP関数を使用して変換できます。ステートメントは以下のとおりです。obclient(root@sys)[oceanbase]> SELECT TENANT_ID, LS_ID, STATUS, SCN_TO_TIMESTAMP(READABLE_SCN) FROM oceanbase.CDB_OB_LS WHERE TENANT_ID=xxx;
スタンバイテナントによる自己ログの再生
スタンバイテナントも自己のログ再生を開始できます。
ユーザーテナントのテナント管理者がデータベースにログインします。
説明
MySQLモードの管理者ユーザーは
rootユーザー、Oracleモードの管理者ユーザーはSYSユーザーです。以下のステートメントを実行して、ログ再生操作を実行します。
ステートメントは以下のとおりです:
指定したタイムスタンプまでログを再生し、そのタイムスタンプのポイントを含みます。
obclient> ALTER SYSTEM RECOVER STANDBY UNTIL TIME='timestamp';指定したSCNまでログを再生し、そのSCNのポイントを含みます。
obclient> ALTER SYSTEM RECOVER STANDBY UNTIL SCN=scn;終点なし、アーカイブされたソース側のログを継続的に再生します。
obclient> ALTER SYSTEM RECOVER STANDBY UNTIL UNLIMITED;説明
このコマンドは一度に1つのスタンバイテナントのみを指定できます。複数のテナントを指定する必要がある場合は、このコマンドを繰り返し実行する必要があります。
ステートメントの実行が成功した後、スタンバイテナントのログ再生をキャンセルする場合は、以下のステートメントを実行できます。
obclient> ALTER SYSTEM RECOVER STANDBY CANCEL;スタンバイテナントのログ再生進捗状況を確認します。
obclient> SELECT LS_ID, STATUS, READABLE_SCN FROM oceanbase.DBA_OB_LS;ログ再生されたタイムスタンプを確認する必要がある場合は、
SCN_TO_TIMESTAMP関数を使用して変換できます。ステートメントは以下のとおりです。obclient> SELECT LS_ID, STATUS, SCN_TO_TIMESTAMP(READABLE_SCN) FROM oceanbase.DBA_OB_LS;