Oracle DB Point in Timeリカバリ手順 - gend007/Oracle-DB GitHub Wiki

概要

Oracle DBのPoint in Timeリカバリの手順を記載する
なお、当手順は、日次での増分更新バックアップが実行れており、適切なバックアップが存在する前提とする




手順

①NLS_DATE_FORMAT環境変数の設定

oracle # export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';



③RMANを起動し、ターゲットデータベースおよび、カタログに接続

oracle # rman target / catalog rco/catalogdb@catadb



④ターゲットDBの停止、マウント状態にする

RMAN # shutdown IMMEDIATE
RMAN # startup mount



⑤DBPITRの実行

※ワンライナーで実行
※SET UNTIL TIMEの時間の状態へDBをリカバリ
RMAN # RUN
{
  SET UNTIL TIME '2018-11-2 06:04:00';
  RESTORE DATABASE;
  RECOVER DATABASE;
}



⑥ターゲットDBをリセットログ付きでオープンする

RMAN # ALTER DATABASE OPEN RESETLOGS;



※⑤DBPITRの実行時にSCNを指定することもできる

※ワンライナーで実行
※SCNはLIST BACKUPコマンドで確認できる

RMAN # RUN
{
  SET UNTIL SCN 910374;
  RESTORE DATABASE;
  RECOVER DATABASE;
}



※⑤DBPITRの実行時にSEQUENCEを指定することもできる

※ワンライナーで実行
※SEQUENCEはV$LOG動的パフォーマンスビューの「SEQUENCE#」で確認できる

RMAN # RUN
{
  SET UNTIL SEQUENCE 11;
  RESTORE DATABASE;
  RECOVER DATABASE;
}
⚠️ **GitHub.com Fallback** ⚠️