このセクションでは、主に復元コマンド内の関連パラメータについて説明します。
復元コマンド関連
コマンド
指定したタイムスタンプまで復元
ALTER SYSTEM RESTORE dest_tenant_name FROM uri UNTIL TIME='timestamp' WITH 'restore_option' [WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password'] [DESCRIPTION [=] description];指定したSCNまで復元
ALTER SYSTEM RESTORE dest_tenant_name FROM uri UNTIL SCN=scn WITH 'restore_option' [WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password'] [DESCRIPTION [=] description];最新ポイントまで復元
ALTER SYSTEM RESTORE dest_tenant_name FROM uri WITH 'restore_option' [WITH KEY FROM 'backup_key_path' ENCRYPTED BY 'password'] [DESCRIPTION [=] description];実行中のテナント復元をキャンセル
ALTER SYSTEM CANCEL RESTORE dest_tenant_name;
パラメータの説明
指定時間スタンプ(timestamp)による復元方式では、OceanBaseデータベースはバックアップセット内の最新レコードのタイムゾーンに基づいて、そのタイムスタンプを対応するSCNに変換します。ここでのタイムゾーンは、バックアップテナントのシステム変数 system_time_zone から取得し、そのデフォルト値はCST(中国標準時、+8:00)です。このタイムゾーンはバックアップセットの locality_info.obbak ファイルに保存されています。
例えば、バックアップ時のテナントのタイムゾーンがCDT(米国中部夏時間帯、-5:00)だった場合、ユーザーが復元時に指定したタイムスタンプが 2025-08-01 10:00:00 だと、実際に復元される時間点は 2025-08-01 15:00:00(標準UTC時間)に対応するSCN値となります。
その他のパラメータの詳細については、ALTER SYSTEM - RESTORE を参照してください。
timestampとscnの選択制約
timestamp と scn は、データバックアップビュー CDB_OB_BACKUP_SET_FILES に記録されているデータバックアップの最小復元ポイント MIN_RESTORE_SCN より大きいか等しく、かつログアーカイブビュー CDB_OB_ARCHIVELOG の最大アーカイブポイント CHECKPOINT_SCN より小さいか等しい必要があります。ログアーカイブにおいて途絶えが発生する可能性があるため、復元ポイントの選択にはログアーカイブの不連続な区間も考慮する必要があり、復元可能な区間の選択は断片的になる場合があります。
例を挙げて説明します。ユーザーのバックアップ状況が以下のようだと仮定します:
2回のログアーカイブが実行され、それぞれの
round_idは1、2です。3回のデータバックアップが実行され、有効なデータバックアップはそれぞれ
full_backup_set_1、full_backup_set_2、inc_backup_set_3です。
物理復元の復元可能範囲は以下の図のとおりです。ここで、データバックアップの右端はすべて MIN_RESTORE_SCN です(例えば、データバックアップ full_backup_set_1 の MIN_RESTORE_SCN は図中の scn 300 に対応します)。ログアーカイブの右端はすべて CHECKPOINT_SCN です(例えば、ログバックアップ round 1 の CHECKPOINT_SCN は図中の scn 500 に対応します)。
ログアーカイブは中断する可能性があるため、復元範囲を計算する際には、途中の不連続な時間帯も除外する必要があります。これにより、図中の大括弧で示されたような、区切られた複数の復元可能範囲が得られます:[scn 300, scn 500] \∪ [scn 900, scn 1500]。
復元性能関連
コマンド
ALTER SYSTEM SET ha_high_thread_score =10 TENANT = mysql;
ALTER SYSTEM SET log_restore_concurrency =0 TENANT = mysql;
パラメータ説明
パラメータ |
説明 |
|---|---|
| ha_high_thread_score | データ復元タスクキューが使用するワーカースレッド数を設定します。 |
| log_restore_concurrency | ログ復元の並列数を設定します。 |
Recoverコマンド関連
コマンド
指定したタイムスタンプまでのログを復元し、そのタイムスタンプを含みます。
ALTER SYSTEM RECOVER STANDBY [TENANT [=] tenant_name] UNTIL TIME='timestamp';指定したSCNまでのログを復元し、そのSCNポイントを含みます。
ALTER SYSTEM RECOVER STANDBY [TENANT [=] tenant_name] UNTIL SCN=scn;終点なし、アーカイブ済みソース側のログを継続的に再生します。
ALTER SYSTEM RECOVER STANDBY [TENANT [=] tenant_name] UNTIL UNLIMITED;Recoverをキャンセルします。
ALTER SYSTEM RECOVER STANDBY TENANT [=] tenant_name CANCEL;
パラメータ説明
パラメータ |
説明 |
|---|---|
| tenant_name | テナント名 |
| timestamp | 指定したタイムスタンプまで復元します。この時点を含みます。timestamp の指定は = で結合する必要があります。timestamp は YYYY-MM-DD HH24:MI:SS.FF 形式のみをサポートし、小数部(FF)は0〜6桁の小数をサポートし、マイクロ秒単位での精度があります。 |
| scn | 指定したSCNまで復元します。このSCNポイントを含みます。scn の指定は = で結合する必要があります。 |
| UNLIMITED | 終点なしでの復元、アーカイブ済みソース側のログを継続的に再生します。 |
ACTIVATE STANDBYコマンド関連
コマンド
ALTER SYSTEM ACTIVATE STANDBY TENANT tenant_name;
パラメータ説明
パラメータ |
説明 |
|---|---|
| tenant_name | 復元に成功したスタンバイテナント名。現在、各コマンドは1つのテナントの切り替えのみをサポートしています。 |