My Oracle Support Banner

ターゲット・データベースに接続せずにディスクまたはテープのバックアップからRMANのDUPLICATEで複製を作成する方法 (Doc ID 2686980.1)

Last updated on JULY 06, 2020

適用範囲:

Oracle Database - Enterprise Edition - バージョン 11.2.0.1 以降
この文書の内容はすべてのプラットフォームに適用されます。

目的

注意: 以下の画像またはドキュメントの内容で使用されるユーザー情報およびデータは、Oracle データベース製品と共に提供される Oracle サンプル・スキーマまたは公開文書からの架空のデータを表しています。実際の人物との類似性は、その生死にかかわらず純粋に偶然の一致であり、いかなる場合においても意図されたものではありません。

このドキュメントの目的は、次のような架空の環境におけるデータベースの複製手順を例示することです :

ターゲット・データベース :
DB_NAME: ORAprim

補助データベース :
DB_NAME: ORAaux

データベースのバックアップをRMANで行っていて、リカバリ・カタログを使用している場合は、RMANによる複製の作成時に元のデータベースをターゲットとして接続する必要はありません。

補助データベースのホストから複製元のデータベースへのネットワーク接続が制限されていたり、断続的に切断される可能性がある場合などに有効な手法です。ターゲットに接続せずに行うデータベースの複製は、複製元のデータベースに影響を与えることなく行うことができます。

この複製方法では、RMANから補助インスタンスとリカバリ・カタログに接続して次のようなDUPLICATEコマンドを実行します :

duplicate database ORAprim dbid 82843743 to ORAaux
  until scn 274615
  db_file_name_convert 'ORAprim','ORAaux'
  spfile
  parameter_value_convert 'ORAprim','ORAaux'
  set log_file_name_convert 'ORAprim','ORAaux';


この方法での複製のステップ・バイ・ステップでの手順を解説しますが、次の点に注意してください :

a) この方法は、ディスクおよびテープ上のバックアップの両方で実行可能です。

b) リカバリ・カタログの使用が必須です。

c) リカバリ・カタログを使用していない場合でも、ターゲット・データベースに接続せずにRMANのDUPLICATEコマンドを実行することはできますが、その場合はバックアップはディスク上に行われている必要があります。次のようにDUPLICATEコマンドでBACKUP LOCATION句を指定します :

DUPLICATE DATABASE TO ORAaux
  UNTIL TIME "TO_DATE('11/01/2007 14:00:00', 'MM/DD/YYYY HH24:MI:SS')"
  SPFILE
  BACKUP LOCATION '/<backup location>/'
  NOFILENAMECHECK;


この方法の詳細は次のドキュメントを参照してください :
<Note 2687795.1> ターゲットおよびリカバリ・カタログに接続しないデータベースの複製 (11.2-)

 

ターゲットと同じホスト上でのターゲットなしのDUPLICATEに関する追記

元のデータベースと同じホスト上で、'BACKUP LOCATION'を使用してターゲットなしの複製を行う場合、元のデータベースのファイルを上書きしないように注意する必要があります。
下記の例のようにCONVERTパラメータでこれを実現できますが、制御ファイルについても元のデータベースとは異なる場所に存在するようにしなければなりません。そのため、SPFILE句で set control_files='<unique-path-location-name>' の設定を行います。

これを行わないと、RMANがリストアしたSPFILEで、control_files が複製元のデータベースの制御ファイルを指しているため、次のようなエラーが発生する可能性があります:
 
 RMAN-06136: ORACLE error from auxiliary database: ORA-00600: internal error code, arguments: [kccsbck_first], [2], [4191010098], [], [],

例:

run {
allocate auxiliary channel ch1 type disk;
duplicate database ORAprim dbid 82843743 to ORAaux
  until scn 274615
  db_file_name_convert 'ORAprim','ORAaux'
  spfile
  parameter_value_convert 'ORAprim','ORAaux'
  set control_files '/<path>/ORAaux/control01.ctl'
  set log_file_name_convert 'ORAprim','ORAaux';
}

解決策

To view full details, sign in with your My Oracle Support account.

Don't have a My Oracle Support account? Click to get started!


本書の内容
目的
解決策
参照情報

My Oracle Support provides customers with access to over a million knowledge articles and a vibrant support community of peers and Oracle experts.