9.8.3 RACインスタンスのログをバックアップまたはリストアする

RACインスタンスのログをバックアップするには:

  1. ログのバックアップを取得します。
    ログバックアップIDは,サーバごとに未使用のIDが付与されます。この実行例では,「0001」です。このコマンドは,RACを構成するすべてのノード上でREDOログのアーカイブを実行します。
    次の前提条件をすべて満たしていない環境では,-arc_allオプションを指定しても直接コマンドを実行していないノードではアーカイブ済みREDOログファイルの退避を実行しません。そのような環境では,ユーザー管理でアーカイブ済みREDOログファイルの退避,保存をする必要があります。
    (1) RACを構成するすべてのOracleインスタンス上で,アーカイブ済みREDOログファイルの出力先に同一の共有ディスクを指定している。
    (2) (1)のアーカイブ済みREDOログファイル出力先の共有ディスクが,すべてのノード上で同一のパスにマウントされている。
    (3) drmorainitコマンドで指定したログ出力先ディレクトリが,共有ディスク上に存在している。

    PROMPT> drmoralogbackup ORA1 -rac -arc_all
    KAVX0001-I drmoralogbackupコマンドを開始します。
    KAVX0805-I アーカイブREDOログファイルのバックアップ中です。
    KAVX0808-I ログバックアップは以下の内容で取得されています。
    ログバックアップID = 0001
    KAVX0002-I drmoralogbackupコマンドを終了します。
    PROMPT>

  2. ログバックアップの実行結果を確認します。

    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>

  3. バックアップしたログファイルを管理します。
    バックアップしたログファイルはユーザーが管理します。
    管理例:
    ログバックアップファイルの格納先がRAID Manager構成定義ファイルでペア定義されている主ボリュームの場合,そのボリュームをdrmfsbackupコマンドで副ボリュームにバックアップし,バックアップサーバでテープにバックアップします。

RACインスタンスのログをリストアするには:

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

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

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

  2. バックアップカタログをインポートします。
    バックアップを実行したノードとは異なるノードでリストアを実行する場合は,「9.8.2 RACインスタンスをテープ媒体へオンラインバックアップする」の手順4でエクスポートしたRAC共有Oracleファイルのバックアップカタログをインポートします。
    バックアップIDは,サーバごとに未使用のIDが付与されます。この実行例では,「0000000002」です。

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

  3. テープ媒体上のバックアップIDを確認します。

    PROMPT> drmtapecat
    BACKUP-ID   BACKUP-OBJECT    SNAPSHOT TIME        EXPIRATION TIME      BACKUP-MEDIA
    0000000002  Oracle           2002/06/01 10:00:00  2002/06/02 10:00:00  MEDIA1
    PROMPT>

  4. バックアップしたデータをテープ媒体から副ボリュームへリストアします。
    バックアップID「0000000002」を指定してdrmmediarestoreコマンドを実行します。バックアップID「0000000001」は削除され,新バックアップID「0000000003」が登録されます。

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

  5. テープ媒体から副ボリュームへのリストアの実行結果を確認します。

    PROMPT> drmoracat ORA1
    INSTANCE: ORA1
    BACKUP-ID:0000000003 BACKUP-MODE: ONLINE INSTANCE: GYOUMU1 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         -         /dev/rdsk/c4t20d10  ORA001,B001
    T -         -             -            -         -                   ORA001,B001
    PROMPT>

  6. バックアップカタログ情報を一時ファイルへエクスポートします。

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

  7. 一時ファイルをバックアップサーバからファイルサーバへrcpで転送します。
    バックアップファイルがある場合は,バックアップファイルについてもバックアップサーバからデータベースサーバへ転送します。

    PRMPT> rcp /tmp/EX-FILE1.drm <ファイルサーバ名>
    PROMPT>

  8. 転送した一時ファイルをファイルサーバのバックアップカタログへインポートします。
    バックアップカタログに,新バックアップIDが登録されます。バックアップIDは,サーバごとに未使用のIDが付与されます。この手順では,「0000000002」です。

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

  9. インポートの実行結果を確認します。

    PROMPT> drmoracat ORA1
    INSTANCE: ORA1
    BACKUP-ID:0000000002 BACKUP-MODE: ONLINE 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         -         /dev/rdsk/c4t20d10  ORA001,B001
    T -       -             -            -         -                   ORA001,B001
    PROMPT>

  10. RAC共有のOracleファイルをリストアします。

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

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

  11. ログバックアップ内容を確認します。

    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>

  12. バックアップしたログをリストアします。
    ログバックアップ内容を確認してバックアップ先からバックアップ元にリストアします。RACを構成するすべてのノードのログバックアップが,リストアを実行するノードから参照できる必要があります。

    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

Oracle SQL*Plusを使用し,データベースをリカバリする例を示します。Protection Managerでボリュームをリストアしたあと,データベースをリカバリする場合,SQL*Plusを使用し,リカバリしてください。SQL*Plusの詳細については,Oracleの製品マニュアルを参照してください。

  1. Oracleデータベースをリカバリするために,SQL*Plus にログインします。
    Oracleデータベースが停止しているため,OSDBAグループのユーザーでSQL*Plusを起動し,Oracleデータベースにログインします。このとき,SYSDBA権限を持つOracleユーザーでログインします。

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

  2. Oracleデータベースをマウント状態で起動します。
    SYSDBA権限を持つOracleユーザーで,Oracleデータベースをマウント状態で起動します。

    SQL> startup mount

  3. Oracleデータベースをリカバリします。
    SYSDBA権限を持つOracleユーザーで,Oracleデータベースをリカバリします。
    リカバリが成功すると「Media recovery complete.」というメッセージが表示されます。

    SQL> recover database until cancel;

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

    SQL> alter database open resetlogs;