web-dev-qa-db-ja.com

RMANを使用したデータベースの複製

RMANを使用して同じサーバーのOracleデータベースに複製したいと思います。 OracleDatabaseのフラッシュリカバリ領域を構成しました。私のデータベースは以下に示すようにSPFILEを使用しています。

SQL> SELECT DECODE(value, NULL, 'PFILE', 'SPFILE') "Init File Type"
FROM sys.v_$parameter WHERE name = 'spfile

SPFILE

私の質問は次のとおりです。

  1. ソースデータベースがSPFILEを使用している場合、SPFILEからPFILEを作成しましたか?もしそうなら、どうすればそれを行うことができますか?

  2. これはどういう意味ですか?

    PFILEまたはSPFILEで参照されるディレクトリを作成するだけで済みます。

    どのディレクトリを作成する必要がありますか?

    本番データベース:/u01/app/Oracle/oradata/DB11G/。私のSPFILE(spfileDB11g.ora):

    DB11G.__Java_pool_size=4194304
    DB11G.__large_pool_size=4194304
    DB11G.__Oracle_base='/u01/app/Oracle'#Oracle_BASE set from environment
    DB11G.__pga_aggregate_target=155189248
    DB11G.__sga_target=264241152
    DB11G.__shared_io_pool_size=0
    DB11G.__shared_pool_size=171966464
    DB11G.__streams_pool_size=4194304
    *.audit_file_dest='/u01/app/Oracle/admin/DB11G/adump'
    *.audit_trail='db'
    *.compatible='11.2.0.0.0'
    *.control_files='/u01/app/Oracle/oradata/DB11G/control01.ctl','/u01/app/Oracle/oradata/DB11G/control02.ctl'#Restore Controlfile
    *.db_block_size=8192
    *.db_domain='localdomain'
    *.db_flashback_retention_target=720
    *.db_name='DB11G'
    *.db_recovery_file_dest='/u01/app/Oracle/fra'
    *.db_recovery_file_dest_size=3221225472
    *.diagnostic_dest='/u01/app/Oracle'
    *.dispatchers='(PROTOCOL=TCP) (SERVICE=DB11GXDB)'
    *.log_archive_dest_1='location=/u01/app/Oracle/archive_logs'
    *.log_archive_format='db11g%r_%t_%s.arc'
    *.memory_target=417333248
    *.open_cursors=3^AC^@^@C"^@^@^D^@^@^@^@^@^@^@^@^@^A^DU^F^@^@00
    *.processes=150
    *.remote_login_passwordfile='EXCLUSIVE'
    *.undo_tablespace='UNDOTBS1'
    
  3. バックアップファイル(自動バックアップとバックアップセット)がソースホストの別のパス(デフォルトのFRAパスではない)にある場合、duplicateコマンドを使用するにはどうすればよいですか?ところで、フラッシュバックログのみがデフォルトの場所にあります(/u01/app/Oracle/fra/flashback)。道: /u01/app/Oracle/oradata/DB11G/autobackupおよび/u01/app/Oracle/oradata/DB11G/backupset

2
Cell-o

ソースデータベースがSPFILEを使用している場合、SPFILEからPFILEを作成しましたか?

はい、データベースの複製中に使用する一時的なPFILEを作成する必要があります。後で、SPFILEを使用するように新しいインスタンスを切り替えます。

使用する

CREATE PFILE = 'path/to/pfile' FROM SPFILE;

PFILEまたはSPFILEで参照されるディレクトリを作成するだけで済みます。どのディレクトリを作成する必要がありますか?

複製を開始するには、データベースをNOMOUNTとして開始します。これは、制御ファイルが読み取られないことを意味します。したがって、データファイルが存在するディレクトリを新しいホストに存在させる必要はありません。ただし、パラメータファイル内のディレクトリ参照が存在する必要があります。あなたの成績証明書から、

DB11G.__Oracle_base='/u01/app/Oracle'#Oracle_BASE set from environment
*.audit_file_dest='/u01/app/Oracle/admin/DB11G/adump' 
*.control_files='/u01/app/Oracle/oradata/DB11G/control01.ctl','/u01/app/Oracle/oradata/DB11G/control02.ctl'#Restore Controlfile
*.db_recovery_file_dest='/u01/app/Oracle/fra'
*.diagnostic_dest='/u01/app/Oracle'
*.log_archive_dest_1='location=/u01/app/Oracle/archive_logs'

ドキュメントのこの章が役立つ場合があります。 http://docs.Oracle.com/cd/B28359_01/backup.111/b28270/rcmdupdb.htm#i1006474

4
andrechalom

3

ターゲットサーバー(複製が必要な場所)でoldskoolの手動複製を行う場合は、rman target/catalogを「<バックアップへのパス>」で開始できます。

次に、すべてのバックアップが印刷されます。ここに他のファイルがある場合でも心配はいりません。彼は読めなかったヘッダーに何かを与えるでしょう。

この後、クロスチェックバックアップを実行する必要があります。そのため、存在するもので更新されます。期限切れになると到達できなくなったバックアップが表示されます。期限切れの削除を行う必要はありません。

アクティブなデータベースから複製を行うこともできます。これは簡単です。 cfr http://docs.Oracle.com/cd/B28359_01/backup.111/b28270/rcmdupdb.htm#i1006629

0
Munchi