時刻を指定して不完全リカバリする方法

この記事では時刻を指定して不完全リカバリする方法について解説します。

 不完全リカバリとは

不完全リカバリとはバックアップから過去の特定の地点の状態に復旧するリカバリを言います。

Point In Time Recoveryとも呼ばれ、頭文字からPITRとも表記されます。

不完全リカバリはデータを誤って更新や削除を行ってしまい元に戻したい場合や、アーカイブログ、REDOログが壊れて適用できない場合などに行います。

不完全リカバリの復旧地点はSCNや時刻を指定しておこなうことができます。

今回は誤ってデータ操作をしてしまったと仮定して、特定の時刻まで復旧させる方法を紹介します。


 不完全リカバリの手順

pdbである「xepdb」を不完全リカバリで復旧します。

まずはPDBをクローズします。

SQL> alter pluggable database xepdb1 close;
プラガブル・データベースが変更されました。

RMANに接続し、SET UNTIL TIMEを使用して復旧時刻を指定してリカバリします。

RMAN> RUN
2>  { SET UNTIL TIME "TO_DATE('2024-10-17 09:00:00','YYYY-MM-DD HH24:MI:SS')";
3>    RESTORE PLUGGABLE DATABASE XEPDB1;
4>    RECOVER PLUGGABLE DATABASE XEPDB1;
5>  }

実行コマンド: SET until clause
restoreを24-10-17で開始しています
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_DISK_1が割り当てられました
チャネルORA_DISK_1: SID=1099 デバイス・タイプ=DISK
チャネルORA_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_DISK_1: データファイル00009をC:\APP\XXXXX\SYSTEM01.DBFにリストアしています
チャネルORA_DISK_1: データファイル00010をC:\APP\XXXXX\SYSAUX01.DBFにリストアしています
チャネルORA_DISK_1: データファイル00011をC:\APP\XXXXX\UNDOTBS01.DBFにリストアしています
チャネルORA_DISK_1: データファイル00012をC:\APP\XXXXX\USERS01.DBFにリストアしています
チャネルORA_DISK_1: データファイル00013をC:\APP\XXXXX\TEST01.DBFにリストアしています
チャネルORA_DISK_1: バックアップ・ピースC:\APP\XXXXX\1P37O0IT_57_1_1から読取り中です
チャネルORA_DISK_1: ピース・ハンドル=C:\APP\XXXXX\1P37O0IT_57_1_1 タグ=TAG20241016T170945
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:00:01
restoreを24-10-17で終了しました
recoverを24-10-17で開始しています
現在のログがアーカイブされました。
チャネルORA_DISK_1の使用
メディア・リカバリを開始しています
スレッド1 (順序518)のアーカイブ・ログは、ファイルC:\APP\XXXXX\ARCHIVELOG\ARC0000000518_1146939375.0001としてディスクにす でに存在します
スレッド1 (順序519)のアーカイブ・ログは、ファイルC:\APP\XXXXX\ARCHIVELOG\ARC0000000519_1146939375.0001としてディスクにす でに存在します
チャネルORA_DISK_1: デフォルトの宛先へのアーカイブ・ログのリストアを開始しています
チャネルORA_DISK_1: アーカイブ・ログをリストアしています
アーカイブ・ログ・スレッド=1 順序=517
チャネルORA_DISK_1: バックアップ・ピースC:\APP\XXXXX\1S37O0J6_60_1_1から読取り中です
チャネルORA_DISK_1: ピース・ハンドル=C:\APP\XXXXX\1S37O0J6_60_1_1 タグ=TAG20241016T170958
チャネルORA_DISK_1: バックアップ・ピース1がリストアされました
チャネルORA_DISK_1: リストアが完了しました。経過時間: 00:00:01
メディア・リカバリが完了しました。経過時間: 00:00:01
recoverを24-10-17で終了しました

リストアが完了したらPDBをオープンします。

オープンする際にはRESETLOGSを指定してオープンする必要があります。

RMAN> alter pluggable database xepdb1 open resetlogs;
文が処理されました

これにて不完全リカバリは完了になります。