9.7.3 RAC構成で拡張コマンドを使用してリストアする

Operation_Aを使用して,DBServer_A上でバックアップしたOracleインスタンスINSTANCE_1をDBServer_B上でディスクリストアする例を説明します。この例は,Oracleインスタンス「INSTANCE_1」,「INSTANCE_2」ともに副ボリューム上にバックアップデータが保存されており,かつ拡張コマンド用一時ディレクトリ中にOracle制御ファイル,初期化ファイルが保存されている場合に実行できます。

コマンド操作内容では,コマンドを入力するサーバ名をコマンドプロンプト文字列に表記しています。

  1. Oracleインスタンス固有のOracleファイルで,対象とするバックアップIDを特定します。
    drmoracatコマンドを実行し,ディスクリストアの対象とするバックアップID(ディスクバックアップによって生成されたバックアップID)を特定します。ここでは0000000001が対象バックアップIDです。

    DBServer_B > drmoracat INSTANCE_2 -rac -asm
    INSTANCE: INSTANCE_2
    DATABASE-NAME: RAC_1
    ASM-INSTANCE: -
    BACKUP-ID: 0000000001 BACKUP-MODE: ONLINE (LOCAL) INSTANCE: INSTANCE_2 ORIGINAL-ID: 0000000001
    START-TIME:2002/06/01 10:00:00 END-TIME: 2002/06/01 10:03:00 HOSTNAME: DBServer_A
    T OBJECT     FILE                           FS             DG     DEVICE     COPY-GROUP
    T UNDO01   /pdsk/disk3/UNDO01.dbf  /pdsk/disk3 stg2 c4t0d1s2 STD01,orastd021
    T UNDO02   /pdsk/disk3/UNDO02.dbf  /pdsk/disk3 stg2 c4t0d1s2 STD01,orastd021
    :

  2. Oracleインスタンス固有のOracleファイルでリストア用バックアップIDを設定します。
    拡張コマンドEX_DRM_BACKUPID_SETを使用し,手順1で特定したバックアップIDをバックアップID記録一時ファイルに記録します。

    DBServer_B > EX_DRM_BACKUPID_SET Operation_B -backup_id 0000000001

  3. Oracleインスタンス固有のOracleファイルで,Oracle制御ファイル,初期化ファイルを展開します。
    拡張コマンドEX_DRM_ORAFILE_EXTRACTを使用し,拡張コマンド用一時ディレクトリ内のOracle制御ファイル,初期化ファイルをOracle制御ファイル,初期化ファイル格納ディレクトリに展開します。

    DBServer_B > EX_DRM_ORAFILE_EXTRACT Operation_B

  4. Oracleインスタンス固有のOracleファイルをディスクリストアします。
    OracleインスタンスINSTANCE_2固有のOracleファイルが破損している場合は,オペレーションIDOperation_Bを指定して,INSTANCE_2固有のOracleファイルを主ボリュームにリストアします。

    DBServer_B > EX_DRM_ORA_RESTORE Operation_B -resync

  5. RAC共通のOracleファイルで,対象とするバックアップIDを特定します。
    drmoracatコマンドを実行し,ディスクリストアの対象とするRAC共通のOracleファイルのバックアップID(DBServer_A上でディスクバックアップによって生成されたバックアップID)を特定します。ここでは0000000002が対象バックアップIDです。

    DBServer_A > drmoracat INSTANCE_1 -rac -asm
    INSTANCE: INSTANCE_1
    DATABASE-NAME: RAC_1
    ASM-INSTANCE: -
    BACKUP-ID: 0000000002 BACKUP-MODE: ONLINE (RAC) INSTANCE: INSTANCE_1 ORIGINAL-ID: 0000000001
    START-TIME:2002/06/01 10:00:00 END-TIME: 2002/06/01 10:03:00 HOSTNAME: DBServer_A
    T OBJECT     FILE                           FS             DG     DEVICE     COPY-GROUP
    T SYSTEM   /pdsk/disk3/SYSTEM01.dbf  /pdsk/disk3 stg2 c4t0d1s2 STD01,orastd021
    T DATA     /pdsk/disk3/DATA01.dbf  /pdsk/disk3 stg2 c4t0d1s2 STD01,orastd021
    O ONLRD01  /pdsk/disk1/redo01.log /pdsk/disk1  stg5 c4t0d1s5 STD01,orastd051
    :

  6. RAC共通のOracleファイルでリストア用バックアップIDを設定します。
    拡張コマンドEX_DRM_BACKUPID_SETを使用し,手順5で特定したバックアップIDをバックアップID記録一時ファイルに記録します。

    DBServer_A > EX_DRM_BACKUPID_SET Operation_A -backup_id 0000000002

  7. RAC共通のOracleファイルのバックアップカタログをエクスポートします。
    拡張コマンドEX_DRM_DB_EXPORTを使用し,RAC共通のOracleファイルのバックアップを実行した際に生成されたバックアップカタログを拡張コマンド用一時ディレクトリ内の一時ファイルにエクスポートします。

    DBServer_A > EX_DRM_DB_EXPORT Operation_A

  8. RAC共通のOracleファイルでOracle制御ファイル,初期化ファイルを退避します。
    拡張コマンドEX_DRM_ORAFILE_PACKを使用し,RAC共通のOracleファイルのバックアップを実行した際に生成されたOracle制御ファイル,初期化ファイルを拡張コマンド用一時ディレクトリにコピーします。

    DBServer_A > EX_DRM_ORAFILE_PACK Operation_A

  9. RAC共通のOracleファイルでバックアップカタログファイル,Oracle制御ファイル,および初期化ファイルをコピーします。
    手順7および手順8でDBServer_A上の拡張コマンド用一時ディレクトリに格納された各種ファイルをrcpなどのOSコマンドを使用してOperation_Bの使用する拡張コマンド用一時ディレクトリにコピーします。
  10. RAC共通のOracleファイルでバックアップカタログをインポートします。
    拡張コマンドEX_DRM_DB_IMPORTを使用し,手順9でコピーしたバックアップカタログファイルをデータベースサーバ上のバックアップカタログにインポートします。

    DBServer_B > EX_DRM_DB_IMPORT Operation_B

  11. Oracle制御ファイル,初期化ファイルを展開します(RAC共通のOracleファイル)。
    拡張コマンドEX_DRM_ORAFILE_EXTRACTを使用し,手順9でコピーしたOracle制御ファイル,初期化ファイルをOracle制御ファイル,初期化ファイル格納ディレクトリに展開します。

    DBServer_B > EX_DRM_ORAFILE_EXTRACT Operation_B

  12. RAC共通のOracleファイルをディスクリストアします。
    拡張コマンドEX_DRM_ORA_RESTOREを使用し,副ボリューム上にバックアップされているRAC共通のOracleファイルを主ボリュームにリストアします。
    この場合,使用するオペレーションIDはOperation_Bです。

    DBServer_B > EX_DRM_ORA_RESTORE Operation_B -resync

  13. Oracleデータベースをリカバリします。
    Protection Managerを利用し,データベースボリュームをリストアしたあと,データベースをリカバリする場合,SQL*Plusを利用し,リカバリ操作を行います。SQL*Plusの詳細については,Oracleの製品マニュアルを参照してください。
    (1) Oracle データベースをリカバリするために,SQL*Plus にログインします。
    Oracleデータベースが停止しているため,SQL*Plus にログインします。このとき,必ずSYSDBA権限を持つユーザーでログインしてください。

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

    (2) Oracleデータベースをマウントします。
    Oracleデータベースをマウント指定で起動します。

    SQL > startup mount

    (3) Oracleデータベースをリカバリします。
    リカバリが成功すると,「Media recovery complete.」というメッセージが表示されます。

    SQL > recover database

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

    SQL > ALTER DATABASE OPEN;