9.8.5 完全リカバリできない場合に任意の時点まで復旧する

前提条件を次に示します。

完全リカバリできない場合に任意の時点まで復旧するには:

  1. バックアップ情報を確認します。
    drmoracatコマンドでバックアップ情報を確認します。

    PROMPT> drmoracat ORA1 -rac
    DATABASE-NAME: RAC1
    INSTANCE: ORA1
    BACKUP-ID:0000000001 BACKUP-MODE: ONLINE (RAC) INSTANCE: ORA1 ORIGINAL-ID: 0000000001
    START-TIME:2002/06/01 10:00:00 END-TIME: 2002/06/01 10:03:00 HOSTNAME: DB-SRV
    T OBJECT    FILE          FS           DG        DEVICE              COPY-GROUP
    T TBS1      /mnt/TBS1.dbf /mnt         DG01      /dev/rdsk/c4t20t10  ORA001,B001
    T -         -             -            -         -                   ORA001,B001
    PROMPT>

  2. Oracleインスタンス固有のOracleファイルをリストアします。
    リストアを実行するノード固有のOracleファイル(UNDO表領域など)が破損している場合は,「9.8.2 RACインスタンスをテープ媒体へオンラインバックアップする」の手順1で取得したUNDO表領域のバックアップをリストアします。

    PROMPT> drmorarestore 0000000001 -resync -target UNDOTBS
    KAVX0001-I drmorarestoreコマンドを開始します。

    KAVX0002-I drmorarestoreコマンドを終了します。
    PROMPT>

  3. バックアップカタログをインポートします。
    バックアップを実行したノードとは異なるノードでリストアを実行する場合は,「9.8.2 RACインスタンスをテープ媒体へオンラインバックアップする」の手順4でエクスポートしたRAC共有Oracleファイルのバックアップカタログをインポートします。

    PROMPT> drmdbimport -f /tmp/EX-FILE1.drm
    KAVX0001-I drmdbimportコマンドを開始します。
    KAVX0418-I ファイル名で指定されたバックアップ情報をバックアップカタログに追加しました。
    インポートされたバックアップID = 0000000002
    KAVX0002-I drmdbimportコマンドを終了します。
    PROMPT>

  4. RAC共有のOracleファイルをリストアします。
    障害が発生したデータファイルのバックアップを副ボリュームからリストアします。

    PROMPT> drmorarestore 0000000002 -resync
    KAVX0001-I drmorarestoreコマンドを開始します。

    KAVX0002-I drmorarestoreコマンドを終了します。
    PROMPT>

  5. SYSTEM表領域またはUNDO表領域をリストアした場合,データベースをマウンド状態で起動します。
    OSDBAグループのユーザーでログインし,SQL*PLUSなどでOracleデータベースに接続します。
    SYSTEM表領域またはUNDO表領域をリストアした場合,Oracleデータベース停止状態でリストアコマンドが完了します。その場合,SYSDBA権限を持つOracleユーザーで,Oracleデータベースをマウント状態で起動します。
    SYSTEM表領域またはUNDO表領域をリストアしない場合,Oracleデータベースは起動状態でリストアコマンドが実行されますので,Oracleデータベースの起動は必要ありません。

    PROMPT> sqlplus / as sysdba
    SQL> startup mount
    SQL>

  6. アーカイブ済みREDOログファイルのバックアップ情報を確認します。
    drmoralogbackp -vコマンドで必要なアーカイブ済みREDOログファイルのバックアップが存在するか確認します。

    PROMPT> drmoralogbackup ORA1 -v 0001
    BACKUP_ID      :001
    DATE           :2003-08-13 17:58:30
    CONTOROL FILE  :/var/opt/drm/log/backup/oracle/ORA1/control1.ctl00001
    FILE NAME      :/var/opt/drm/log/backup/oracle/ORA1/arc0001.arc
    SEQUENCE       :100
    FIRST_CHANGE   :30182
    NEXT_CHANGE    :30258
    FIRST_TIME     :2003-08-13 16:45:13
    NEXT_TIME      :2003-08-13 17:02:08
    FILE NAME      :/var/opt/drm/log/backup/oracle/ORA1/arc0002.arc
    SEQUENCE       :101
    FIRST_CHANGE   :30258
    NEXT_CHANGE    :30419
    FIRST_TIME     :2003-08-13 17:02:08
    NEXT_TIME      :2003-08-13 17:16:58
    PROMPT>

  7. アーカイブ済みREDOログファイルをリストアします。
    drmorabackupコマンドおよびdrmoralogbackupコマンドによってログ格納ディレクトリにバックアップされたアーカイブ済みREDOログファイルのバックアップファイルをOSのcpコマンドなどでアーカイブ済みREDOログファイル出力先にリストアします。
    RACを構成するすべてのノードのアーカイブ済みREDOログファイルが,リカバリを実行するノードから参照できる必要があります。
    注※
    <drmorainitコマンドで指定したログ格納ディレクトリ>/<Oracleインスタンス名>

    PROMPT> cp -p /var/opt/drm/log/backup/oracle/ORA1/arc0001.arc /df500-1/ArchiveLog/1/arc0001.arc
    PROMPT>

  8. 制御ファイルをリストアします。
    表領域を削除してしまった場合は,表領域を削除する前に取得したバックアップ制御ファイルをリストアします。
    リストア先は現行のすべての制御ファイルの格納先です。

    PROMPT> cp -p /var/opt/drm/log/backup/oracle/ORA1/control1.ctl00001 /disk2_0/u01/app/control01.ctl
    PROMPT> cp -p /var/opt/drm/log/backup/oracle/ORA1/control1.ctl00001 /disk2_0/u01/app/control02.ctl
    PROMPT> cp -p /var/opt/drm/log/backup/oracle/ORA1/control1.ctl00001 /disk2_0/u01/app/control03.ctl
    PROMPT>

  9. 不完全リカバリを実行します。
    SYSDBA権限を持つOracleユーザーで,リストアしたアーカイブ済みREDOログファイルおよびオンラインREDOログファイルを使用して不完全リカバリを実施します。
    リカバリが成功すると「Media recovery complete.」というメッセージが表示されます。

    SQL>recover database using backup controlfile until cancel;

  10. データベースをオープンします。
    SYSDBA権限を持つOracleユーザーで,Oracleデータベースをオープンします。
    Oracleデータベースをオープンすると「Database altered.」というメッセージが表示されます。

    SQL> alter database open resetlogs;