Previous Topic: Recovery Manager (RMAN)、および別のサーバへのデータベースのリストアNext Topic: コマンド ラインを使用したリストア


RMAN を使用した、別のホストへのデータベースのリストア

RMAN を使用して別のホストにデータベースをリストアできます。

RMAN を使用して別のホストにデータベースをリストアする方法

  1. RMAN カタログから、リストアするデータベースの db_id 値(データベースID)を取得します。そのためには、以下のコマンドを入力します。
    sqlplus <rman user>/<rman password>@<rman service>
    SQL> select db_key, db_id, bs_key, recid, stamp, backup_type, start_time, status from rc_backup_set;
    
  2. リストアするデータベースに対応する db_id 値を確認します。
  3. ソース データベース内の各データ ファイルのファイル番号と場所を確認します。以下のコマンドを入力します。
    SVRMGR> select file#, name from v$data file;
    
  4. <host1> の $ORACLE_HOME/dbs から init<$ORACLE_SID> ファイルを <host2> にコピーします。
  5. $ORACLE_HOME/dbs/init<$ORACLE_SID>.ora を編集し、<host2> の新しいディレクトリ構造をすべてのパスに反映させます。
  6. SQL*Net 設定を実行し、<host1> および <host2> にインストールされたデータベースの両方から RMAN カタログを表示できるようにします。
  7. Oracle パスワード ファイルを <host2> で設定します。以下のコマンドを入力します。
    orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=kernel.
    
  8. nomount オプションを使用してデスティネーション データベースを起動します。以下のコマンドを入力します。
    SVRMGR> startup nomount pfile=$ORACLE_HOME/dbs/init<$ORACLE_SID>.ora
    
  9. 制御ファイルをリストアします。以下のコマンドを入力します。

    Note: You will need the db_id you obtained in Step 2.

    rman rcvcat <rman username>/<rman password>@<rman service>
    
    RMAN> set dbid=<source database db_id value>
    
    RMAN> connect target <username>/<password>;
    
    RMAN> run {
    
    RMAN> allocate channel dev1 type 'sbt_tape';
    
    RMAN> restore controlfile;
    
    RMAN> release channel dev1;
    
    RMAN> }
    
  10. デスティネーション データベースをマウントします。以下のコマンドを入力します。
    SVRMGR> alter database mount;
    
  11. 手順 3 で確認した場所を使用して、RMAN スクリプト内の各データ ファイルの新しい位置を確認します。
  12. 手順 11 で確認した新しい場所を使用してデータベースをリストアします。以下のコマンドを入力します。
    rman target <username>/<password> rcvcat <rman username>/<rman password>@<rman service>
    
    RMAN> run {
    
    RMAN> allocate channel dev1 type 'sbt_tape';
    
    RMAN> set newname for data file 1 to '<new path>'
    
    RMAN> set newname for data file 2 to '<new path>'
    
    ...
    
    RMAN> restore database;
    
    RMAN> switch data file all;
    
    RMAN> release channel dev1;
    
  13. リストアされた制御ファイルを使用してデータベースをリカバリします。以下のコマンドを入力します。
    SVRMGR> recover database using backup controlfile until cancel;
    
  14. resetlogs オプションを使用してデータベースを開きます。以下のコマンドを入力します。
    SVRMGR> alter database open resetlogs;
    
  15. ORA-00344: unable to re-create online log %s というエラーメッセージが表示された場合は、以下の手順に従います。
    1. オンライン REDO ログの各ファイル名を変更します。以下のコマンドを入力します。
      SVRMGR> alter database rename file <online redo log #1 path> 
      to <online redo log #1 new path>;
      ...
      SVRMGR> alter database rename file <online redo log #1 path> 
      to <onlne redo log #n new path>;
      
    2. Oracleデータベースを開きます。以下のコマンドを入力します。
      SVRMGR> alter database open resetlogs;