9.4.5 Oracleデータベースをリストアおよびリカバリする

テープへバックアップしたデータをリストアする手順について説明します。この例では,いったんテープのデータを副ボリュームにリストアしたあと,副ボリュームと主ボリュームを再同期することでリストアします。そのあと,SQL*Plusを使用してデータベースをリカバリします。

Oracleデータベースをテープからリストアするには:

  1. バックアップデータのバックアップIDを確認します。
    リストアに使用するバックアップデータのバックアップIDを確認します。バックアップIDを確認するには,バックアップサーバでdrmtapecatコマンドを実行します。

    PROMPT> drmtapecat
    BACKUP-ID  BACKUP-OBJECT  SNAPSHOT TIME  EXPIRATION TIME  BACKUP-MEDIA
    0000000002   Oracle   2003/08/13 10:00:00   2003/11/13 10:00:00   MEDIA1
    PROMPT>

  2. 副ボリュームをマウントします。
    バックアップID「0000000002」を指定して,副ボリュームをマウントします。
    ここでは副ボリュームのマウントポイントを「/mnt」とします。

    PROMPT> drmmount 0000000002 -mount_pt /mnt
    KAVX0001-I drmmountコマンドを開始します。
    KAVX0400-I マウントを開始します。
              マウントポイント = /mnt
    KAVX0401-I マウントを完了しました。
              マウントポイント = /mnt
    KAVX0002-I drmmountコマンドを終了します。
    PROMPT>

  3. バックアップしたデータをテープから副ボリュームへリストアします。
    リストアするには,バックアップサーバでdrmmediarestoreコマンドを実行します。

    PROMPT> drmmediarestore 0000000002
    KAVX0001-I drmmediarestoreコマンドを開始します。
    KAVX0404-I リストアを開始します。
              リストアの進行状況について詳しく確認する場合,バックアップ管理製品が提供する監視方法を使用し,確認してください。
              リストア元 = /mnt
              リストア先 = /mnt
    KAVX0405-I リストアを完了しました。
              リストア元 = /mnt
              リストア先 = /mnt
    KAVX0040-I バックアップは以下の内容で取得されています。
    バックアップID = 0000000005
    KAVX0002-I drmmediarestoreコマンドを終了します。
    PROMPT>

    リストアを実行すると,バックアップサーバのバックアップカタログに,このリストア操作に関する情報が新しいバックアップID「0000000005」で登録されます。このとき,副ボリュームの状態が更新されるため,更新前の副ボリュームの状態を管理していたバックアップID「0000000001」は,バックアップサーバのバックアップカタログから削除されます。
  4. 副ボリュームをアンマウントします。
    マウント時に指定したバックアップID「0000000002」を指定して,副ボリュームをアンマウントします。

    PROMPT> drmumount 0000000002
    KAVX0001-I drmumountコマンドを開始します。
    KAVX0406-I アンマウントを開始します。
              マウントポイント = /mnt
    KAVX0407-I アンマウントを完了しました。
              マウントポイント = /mnt
    KAVX0002-I drmumountコマンドを終了します。
    PROMPT>

  5. テープから副ボリュームへのリストアの実行結果を確認します。
    リストアが正常に完了したかを確認します。確認するには,バックアップサーバでdrmoracatコマンドを実行します。

    PROMPT> drmoracat ORA1
    INSTANCE: ORA1
    BACKUP-ID:0000000005 BACKUP-MODE: ONLINE INSTANCE: ORA1 ORIGINAL-ID 000000001
    START-TIME: 2003/08/13 10:00:00 END-TIME: 2003/08/13 10:03:00
    T OBJECT    FILE          FS           DG        DEVICE              COPY-GROUP
    T TBS1      /mnt/TBS1.dbf /mnt         -         /dev/rdsk/c4t20d10  ORA001,B001
    T -         -             -            -         -                   ORA001,B001
    PROMPT>

  6. バックアップ情報を一時ファイルへエクスポートします。
    マルチサーバ構成で副ボリュームから主ボリュームへリストアするには,テープから副ボリュームへのリストア操作に関するバックアップ情報を,データベースサーバにコピーする必要があります。バックアップ情報を一時ファイル「/tmp/EX-FILE1.drm」へエクスポートします。drmdbexportコマンドを実行します。

    PROMPT> drmdbexport 0000000005 -f /tmp/EX-FILE1.drm
    KAVX0001-I drmdbexportコマンドを開始します。
    KAVX0002-I drmdbexportコマンドを終了します。
    PROMPT>

  7. エクスポートした一時ファイルをバックアップサーバからデータベースサーバへ転送します。
    エクスポートした一時ファイル「/tmp/EX-FILE1.drm」をバックアップサーバからデータベースサーバに転送します。また,バックアップサーバのバックアップファイルも,データベースサーバに転送します。転送するには,rcpコマンド(リモートコピー)を実行します。

    PROMPT> tar cf /tmp/ARCHIVE-FILE1.tar /prodsk/oracle/backup/0000000001_ORA/*.ora
    PROMPT> rcp /tmp/ARCHIVE-FILE1.tar <データベースサーバ名>:/tmp
    PROMPT> rcp /tmp/EX-FILE1.drm <データベースサーバ名>:/tmp
    PROMPT>

  8. バックアップサーバから転送した一時ファイルをデータベースサーバのバックアップカタログへインポートします。
    バックアップサーバから転送した一時ファイル「/tmp/EX-FILE1.drm」をデータベースサーバへインポートします。一時ファイルをインポートするには,データベースサーバでdrmdbimportコマンドを実行します。

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

    コマンドを実行すると,データベースサーバのバックアップカタログに,新しいバックアップID「0000000003」でバックアップ情報が登録されます。また,テープから副ボリュームへのリストアが実行されたことがデータベースサーバのバックアップカタログに反映されるため,更新前の副ボリュームの状態を管理していたバックアップID「0000000001」は,データベースサーバのバックアップカタログから削除されます。
  9. インポートの実行結果を確認します。
    インポートが正常に完了したかを確認します。確認するには,データベースサーバでdrmoracatコマンドを実行します。

    PROMPT> drmoracat ORA1
    INSTANCE: ORA1
    BACKUP-ID:0000000003 BACKUP-MODE: ONLINE INSTANCE: ORA1 ORIGINAL-ID 000000001
    START-TIME: 2003/08/13 10:00:00 END-TIME: 2003/08/13 10:03:00
    T OBJECT  FILE          FS           DG        DEVICE              COPY-GROUP
    T TBS1    /mnt/TBS1.dbf /mnt         -         /dev/rdsk/c4t20d10  ORA001,B001
    T -       -             -            -         -                   ORA001,B001
    PROMPT>

  10. 副ボリュームのデータを主ボリュームへリストアします。
    主ボリュームと副ボリュームを再同期することでリストアします。リストアするには,データベースサーバでdrmorarestoreコマンドを実行します。

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

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

  11. バックアップしたアーカイブ済みREDOログファイルのバックアップIDを確認します。
    リストアに使用するアーカイブ済みREDOログファイルのバックアップデータのバックアップIDを確認します。バックアップIDを確認するには,バックアップサーバでdrmtapecatコマンドを実行します。

    PROMPT> drmtapecat
    BACKUP-ID   BACKUP-OBJECT  SNAPSHOT TIME        EXPIRATION TIME      BACKUP-MEDIA
    0000000004  FILESYSTEM     2003/08/13 20:05:00  2003/11/14 20:05:00  MEDIA1
    PROMPT>

  12. 副ボリュームをマウントします。
    バックアップID「0000000004」を指定して,副ボリュームをマウントします。
    ここでは副ボリュームのマウントポイントを「/var」とします。

    PROMPT> drmmount 0000000004 -mount_pt /var
    KAVX0001-I drmmountコマンドを開始します。
    KAVX0400-I マウントを開始します。
              マウントポイント = /var
    KAVX0401-I マウントを完了しました。
              マウントポイント = /var
    KAVX0002-I drmmountコマンドを終了します。
    PROMPT>

  13. バックアップしたデータをテープから副ボリュームへリストアします。
    リストアするには,バックアップサーバでdrmmediarestoreコマンドを実行します。

    PROMPT> drmmediarestore 0000000004
    KAVX0001-I drmmediarestoreコマンドを開始します。
    KAVX0404-I リストアを開始します。
              リストアの進行状況について詳しく確認する場合,バックアップ管理製品が提供する監視方法を使用し,確認してください。
              リストア元 = /var
              リストア先 = /var
    KAVX0405-I リストアを完了しました。
              リストア元 = /var
              リストア先 = /var
    KAVX0040-I バックアップは以下の内容で取得されています。
    バックアップID = 0000000006
    KAVX0002-I drmmediarestoreコマンドを終了します。
    PROMPT>

    リストアを実行すると,バックアップサーバのバックアップカタログに,このリストア操作に関する情報が新しいバックアップID「0000000006」で登録されます。このとき,副ボリュームの状態が更新されるため,更新前の副ボリュームの状態を管理していたバックアップID「0000000002」は,バックアップサーバのバックアップカタログから削除されます。
  14. 副ボリュームをアンマウントします。
    マウント時に指定したバックアップID「0000000004」を指定して,副ボリュームをアンマウントします。

    PROMPT> drmumount 0000000004
    KAVX0001-I drmumountコマンドを開始します。
    KAVX0406-I アンマウントを開始します。
              マウントポイント = /var
    KAVX0407-I アンマウントを完了しました。
              マウントポイント = /var
    KAVX0002-I drmumountコマンドを終了します。
    PROMPT>

  15. テープから副ボリュームへのリストアの実行結果を確認します。
    リストアが正常に完了したかを確認します。確認するには,バックアップサーバでdrmfscatコマンドを実行します。

    PROMPT> drmfscat /var
    INSTANCE: /var
    BACKUP-ID:0000000006 BACKUP-MODE: ONLINE INSTANCE: /var ORIGINAL-ID: 0000000002
    START-TIME: 2003/08/13 20:05:00 END-TIME: 2003/08/13 20:08:00 HOSTNAME: FILESERV1
    T FILE          FS           DG        DEVICE              COPY-GROUP
    F -             /var         -         /dev/rdsk/c4t20d10  FS001,DDrive
    F -             -            -         -                   FS001,DDrive
    PROMPT>

  16. バックアップ情報を一時ファイルへエクスポートします。
    マルチサーバ構成で副ボリュームから主ボリュームへリストアするには,テープから副ボリュームへのリストア操作に関するバックアップ情報を,データベースサーバにコピーする必要があります。バックアップ情報を一時ファイル「/tmp/EX-FILE1.drm」へエクスポートします。drmdbexportコマンドを実行します。

    PROMPT> drmdbexport 0000000006 -f /tmp/EX-FILE1.drm
    KAVX0001-I drmdbexportコマンドを開始します。
    KAVX0002-I drmdbexportコマンドを終了します。
    PROMPT>

  17. エクスポートした一時ファイルをバックアップサーバからデータベースサーバへ転送します。
    エクスポートした一時ファイル「/tmp/EX-FILE1.drm」をバックアップサーバからデータベースサーバに転送します。転送するには,rcpコマンド(リモートコピー)を実行します。

    PROMPT> rcp /tmp/EX-FILE1.drm <データベースサーバ名>:/tmp
    PROMPT>

  18. バックアップサーバから転送した一時ファイルをデータベースサーバのバックアップカタログへインポートします。
    バックアップサーバから転送した一時ファイル「/tmp/0000000003.drm」をデータベースサーバへインポートします。一時ファイルをインポートするには,データベースサーバでdrmdbimportコマンドを実行します。

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

    コマンドを実行すると,データベースサーバのバックアップカタログに,新しいバックアップID「0000000004」でバックアップ情報が登録されます。また,テープから副ボリュームへのリストアが実行されたことがデータベースサーバのバックアップカタログに反映されるため,更新前の副ボリュームの状態を管理していたバックアップID「0000000002」は,データベースサーバのバックアップカタログから削除されます。
  19. インポートの実行結果を確認します。
    インポートが正常に完了したかを確認します。確認するには,データベースサーバでdrmfscatコマンドを実行します。

    PROMPT> drmfscat /var
    INSTANCE: /var
    BACKUP-ID:0000000004 BACKUP-MODE: ONLINE INSTANCE: /var ORIGINAL-ID: 0000000002
    START-TIME: 2003/08/13 20:05:00 END-TIME: 2003/08/13 20:08:00 HOSTNAME: FILESERV1
    T FILE          FS           DG        DEVICE              COPY-GROUP
    F -             /var         -         /dev/rdsk/c4t20d10  FS001,DDrive
    F -             -            -         -                   FS001,DDrive
    PROMPT>

  20. アーカイブ済みREDOログファイルを主ボリュームへリストアします。
    アーカイブ済みREDOログファイルを主ボリュームのログ格納ディレクトリへリストアします。リストアするには,データベースサーバでdrmfsrestoreコマンドを実行します。

    PROMPT> drmfsrestore 0000000004 -resync  -target /var/opt/drm/log/backup/oracle/ORA1/
    KAVX0001-I drmfsrestoreコマンドを開始します。
    ・・・
    KAVX0002-I drmfsrestoreコマンドを終了します。
    PROMPT>

  21. アーカイブ済みREDOログのバックアップの内容を確認します。
    主ボリュームにリストアしたアーカイブ済みREDOログファイルのバックアップの内容を確認します。確認するには,drmoralogbackupコマンドを実行します。

    PROMPT> drmoralogbackup ORA1 -v 0001
    BACKUP_ID      :0001
    DATE           :2003-08-13 20:00:00
    CONTROL 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 10:02:00
    NEXT_TIME      :2003-08-13 15:00:00
    FILE NAME      :/var/opt/drm/log/backup/oracle/ORA1/arc0002.arc
    SEQUENCE       :101
    FIRST_CHANGE   :30258
    NEXT_CHANGE    :30419
    FIRST_TIME     :2003-08-13 15:00:00
    NEXT_TIME      :2003-08-13 20:00:00
    PROMPT>

  22. アーカイブ済みREDOログファイルをアーカイブ済みREDOログファイル保管先に転送します。
    主ボリュームにリストアしたアーカイブ済みREDOログファイルをログ格納ディレクトリからアーカイブ済みREDOログファイル保管先に転送します。転送するには,cpコマンド(コピー)を,-pオプションを指定して実行します。

    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> cp -p /var/opt/drm/log/backup/oracle/ORA1/arc0001.arc /df500-1/ArchiveLog/1/arc0001.arc
    PROMPT> cp -p /var/opt/drm/log/backup/oracle/ORA1/arc0002.arc /df500-1/ArchiveLog/1/arc0002.arc
    PROMPT>

  23. Oracleデータベースをリカバリするために,SQL*Plusにログインします。
    Oracleデータベースが停止しているため,SQL*Plusにログインします。SQL*Plusにログインするときには,必ず次のようにSYSDBA権限のユーザーでログインしてください。

    DBServer > sqlplus <ユーザー名>/<パスワード> as sysdba

  24. Oracleデータベースをマウントします。
    次のようにコマンドを実行し,Oracleデータベースをマウントします。

    SQL> startup mount

  25. Oracleデータベースをリカバリします。
    次のようにコマンドを実行し,Oracleデータベースをリカバリします。

    SQL> recover database until cancel using backup controlfile;

    リカバリの最後に,適用するアーカイブ済みREDOログファイルが存在しないことを示すメッセージが表示されます。このときは,対応するオンラインREDOログファイルを指定してください。
    リカバリが成功すると「Media recovery complete.」というメッセージが表示されます。
  26. リカバリが成功したらOracleデータベースをオープンします。
    次のようにコマンドを実行し,Oracleデータベースをオープンします。

    SQL> alter database open resetlogs;

    Oracleデータベースをオープンすると「Database altered.」というメッセージが表示されます。