web-dev-qa-db-ja.com

復元したデータファイルをオリジナルと同様にRMANで処理する方法を教えてください。

この古くても重要なOracleデータベースのWindows Server 2003クラスタから別のクラスタへの移行を計画しています。

データベースには多くのデータファイルがあり、それらはすべて宛先クラスターで新しいパスを取得しています。同じままである唯一のパスは、バックアップファイル用です。

私が持っている移行計画は次のとおりです:

  1. 夜間のRMANバックアップスクリプトを使用して、ソースクラスタのデータベースをバックアップします。

    run {  
        allocate channel Channel1 type disk format 'F:\backup\folder\%d_%T_%s_%U.bak';
        allocate channel Channel2 ... 
    
        backup check logical ( database );
        backup check logical ( archivelog all  not backed up 2 times );
        backup check logical ( current controlfile );
    } 
    
    allocate channel for maintenance device type disk;
    delete archivelog until time 'sysdate - 2' backed up 2 times to disk;
    delete obsolete device type disk;
    

    両方のクラスターのRMAN保持ポリシーはredundancy 2に設定されており、制御ファイルはリカバリカタログとして使用されています。

  2. バックアップファイルを宛先クラスターのF:\backup\folderにコピーします。

  3. 次のRMANスクリプトを使用して、宛先クラスターにデータベースを復元します。

    run {
        allocate channel Channel1 type disk;
        allocate channel Channel2 ...
    
        set until sequence <sequence number> thread 1;
    
        SET NEWNAME FOR DATAFILE 'Old\Path\FILE01.DBF' TO 'New\Path\FILE01.DBF';
        SET NEWNAME FOR DATAFILE ...
    
        restore database;
    }
    
  4. 制御ファイルのデータファイルパスを更新し、データベースを適切なシーケンスにリカバリして、resetlogsで開きます。

これは次の例外を除いてうまく機能します:

RMANに宛先クラスター上の古いファイルを削除するように依頼すると、復元されたばかりのすべてのデータファイルに古いファイルの名前が付けられます。

RMAN> delete obsolete device type disk;
...    
Deleting the following obsolete backups and copies:
Type                 Key    Completion Time    Filename/Handle
-------------------- ------ ------------------ --------------------
Datafile Copy        1      02-JUL-12          New\Path\FILE01.DBF
...

まあ、RMANはこれらのデータファイルをコピーとして認識するのが正しいです。

ただし、これはデータベースの移行であるため、これらのコピーは新しいオリジナルを対象としているので、確かにしないでください RMANがメンテナンスの一部としてそれらを削除することを望んでいます!

RMANが復元されたデータベースを新しいオリジナルとして扱うように、この移行プロセスを微調整することは可能ですか?

3
Nick Chammas

コピーに切り替える を発行し、クロスチェックします。

4
Gaius