ヘッダーをスキップ
Oracle Databaseバックアップおよびリカバリ・ユーザーズ・ガイド
11g リリース2(11.2)
B56269-05
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

25 データベースの複製: 高度なトピック

この章では、第24章「データベースの複製」で説明していない高度なデータベースの複製について説明します。

この章の内容は次のとおりです。

複製データベース・ファイルの代替名の指定

複製データベース・ファイルとソース・データベース・ファイルに同じ名前を使用する方法(推奨)については、「手順2: 複製ファイルの名前の指定方法の選択」を参照してください。それ以外の場合は、複製ファイルに対して、代替名を使用する方法を選択する必要があります。ソース・データベースと複製データベースでOracle Managed Files(OMF)またはOracle Automatic Storage Management (ASM)のいずれを使用するかによって、使用する方法は異なります。

ソース・データファイルにOMFを使用している場合、DB_FILE_NAME_CONVERTを使用して名前を変更することはできません。OMF管理データファイルの詳細およびオプションについては、「非ASMストレージの使用」を参照してください。

複製データベース・ファイルの非OMFまたは非ASM代替名の指定

この項では、次の条件に該当する場合に複製ファイルの名前を指定する方法について説明します。

ソース・ホストと補助ホストのいずれかが異なるディレクトリ構造を使用しているか、または同じ構造を使用しているが複製ファイルに異なる名前を使用する必要がある場合

表25-1に、各タイプのファイルに名前を指定するために使用可能な形式の概要を示します。

SET NEWNAMEを使用したファイル・システム・データファイルおよび一時ファイルの名前の指定

表25-1に示すように、複製データファイルに名前を指定する方法の1つとして、DUPLICATEコマンドを実行する前にSET NEWNAMEコマンドを使用する方法があります。次に、RMANでサポートされているコマンドを優先順位の高い順に示します。

  1. SET NEWNAME FOR DATAFILEおよびSET NEWNAME FOR TEMPFILE

  2. SET NEWNAME FOR TABLESPACE

  3. SET NEWNAME FOR DATABASE

この優先順位に従って、SET NEWNAME FOR DATAFILEおよびSET NEWNAME FOR TEMPFILEを使用して名前が指定されていないファイルにはSET NEWNAME FOR TABLESPACEを使用して名前が指定され、SET NEWNAME FOR TABLESPACESET NEWNAME FOR DATAFILEまたはSET NEWNAME FOR TEMPFILEを使用して名前が指定されていないファイルにはSET NEWNAME FOR DATABASEを使用して名前が指定されます。

SET NEWNAME FOR DATAFILEを使用する場合は、/oradata1/system01.dbfのようなリテラルのフルパスを指定できます。ただし、SETFOR DATABASEまたはFOR TABLESPACEとともに使用する場合は、表25-1に示す最初の3つの置換変数のうち、1つ以上を使用する必要があります(%I%Nはオプションです)。

表25-1 SET NEWNAMEの置換変数

変数 要約

%b

ディレクトリ・パス以外のファイル名を指定します。たとえば、データファイルの名前が/oradata/prod/financial.dbfである場合、%bfinancial.dbfとなります。

%f

新しい名前を生成するデータファイルの絶対ファイル番号を指定します。たとえば、データファイル2を複製する場合は、%fによって値2が生成されます。

%I

DBIDを指定します

%N

表領域名を指定します

%U

data-D-%d_id-%I_TS-%N_FNO-%fという形式を指定します。


SET NEWNAMEを使用して新しいファイル名を指定する手順

  1. 「データベースの複製の基本手順」の手順1から4を実行します。

  2. RUNコマンド内で、DUPLICATEコマンドを発行する前にSET NEWNAMEコマンドを発行します。

    例25-1に、データファイル1から5および一時ファイル1に新しい名前を指定するスクリプトを示します。データファイル6は、複製データベースから除外されるtools表領域内にあるため、このスクリプトでは新しい名前は設定されません。

    例25-1 SET NEWNAME FOR DATAFILEを使用した複製

    RUN
    {
      SET NEWNAME FOR DATAFILE 1 TO '/oradata1/system01.dbf'; 
      SET NEWNAME FOR DATAFILE 2 TO '/oradata2/sysaux01.dbf';
      SET NEWNAME FOR DATAFILE 3 TO '/oradata3/undotbs01.dbf';
      SET NEWNAME FOR DATAFILE 4 TO '/oradata4/users01.dbf'; 
      SET NEWNAME FOR DATAFILE 5 TO '/oradata5/users02.dbf';
      SET NEWNAME FOR TEMPFILE 1 TO '/oradatat/temp01.dbf'; 
      DUPLICATE TARGET DATABASE TO dupdb
        SKIP TABLESPACE tools
        LOGFILE
          GROUP 1 ('/duplogs/redo01a.log', 
                   '/duplogs/redo01b.log') SIZE 4M REUSE, 
          GROUP 2 ('/duplogs/redo02a.log', 
                   '/duplogs/redo02b.log') SIZE 4M REUSE;
    }
    

    例25-2は、例25-1を少し変更した例です。この例では、単一のSET NEWNAMEコマンドを使用して、users表領域内にあるすべてのデータファイルの名前を指定します。この例が完了すると、users表領域のファイル名は/oradata4/users01.dbfおよび/oradata5/users02.dbfに設定されます。

    例25-2 SET NEWNAME FOR DATAFILEおよびSET NEWNAME FOR TABLESPACEを使用した複製

    RUN
    {
      SET NEWNAME FOR TABLESPACE users TO '/oradata%f/%b';
      SET NEWNAME FOR DATAFILE 1 TO '/oradata1/system01.dbf'; 
      SET NEWNAME FOR DATAFILE 2 TO '/oradata2/sysaux01.dbf';
      SET NEWNAME FOR DATAFILE 3 TO '/oradata3/undotbs01.dbf'; 
      SET NEWNAME FOR TEMPFILE 1 TO '/oradatat/temp01.dbf'; 
      DUPLICATE TARGET DATABASE TO dupdb
        SKIP TABLESPACE tools
        LOGFILE
          GROUP 1 ('/duplogs/redo01a.log', 
                   '/duplogs/redo01b.log') SIZE 4M REUSE, 
          GROUP 2 ('/duplogs/redo02a.log', 
                   '/duplogs/redo02b.log') SIZE 4M REUSE;
    }
    

    例25-3は、例25-1を少し変更した例です。この例では、単一のSETコマンドを使用して、データベース内のすべてのデータファイルの名前を指定します。

    例25-3 SET NEWNAME FOR DATABASEを使用した複製

    RUN
    {
      SET NEWNAME FOR DATABASE TO '/oradata/%U'; 
      DUPLICATE TARGET DATABASE TO dupdb
        SKIP TABLESPACE tools
        LOGFILE
          GROUP 1 ('/duplogs/redo01a.log', 
                   '/duplogs/redo01b.log') SIZE 4M REUSE, 
          GROUP 2 ('/duplogs/redo02a.log', 
                   '/duplogs/redo02b.log') SIZE 4M REUSE;
    }
    

次の状況を想定しています。

  • DBID87650928

  • データベース名はPROD

表25-2に、例25-3の結果を示します。

表25-2 例25-3 SET NEWNAME DATABASEコマンドの結果

SET NEWNAME DATABASEの実行前 表領域名 データファイルのファイル番号 SET NEWNAME DATABASE TO '/oradata/%U';の実行後

.../system01.dbf

SYSTEM

1

/oradata/data-D-PROD_id-87650928_TS-SYSTEM_FNO-1

.../sysaux01.dbf

SYSAUX

2

/oradata/data-D-PROD_id-87650928_TS-SYSAUX_FNO-2

.../undotbs01.dbf

UNDOTS

3

/oradata/data-D-PROD_id-87650928_TS-UNDOTS_FNO-3

.../users01.dbf

USERS

4

/oradata/data-D-PROD_id-87650928_TS-USERS_FNO-4

.../users02.dbf

USERS

5

/oradata/data-D-PROD_id-87650928_TS-USERS_FNO-5

.../temp01.dbf

TEMP

1

/oradata/data-D-PROD_id-87650928_TS-TEMP_FNO-1



関連項目:

SET NEWNAMEで使用可能な置換変数の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。

CONFIGURE AUXNAMEを使用したファイル・システム・データファイルおよびOMF/ASMターゲット・データファイルの名前の指定

CONFIGURE AUXNAMEコマンドは、SET NEWNAMEコマンドの代替となるコマンドです。一度このコマンドを使用して補助ファイル名を構成すると、構成した設定がその後のDUPLICATEコマンドで再利用される点が異なります。一方、SET NEWNAMEコマンドは、DUPLICATEコマンドを実行するたびに再発行する必要があります。

CONFIGURE AUXNAMEを使用して複製データファイル名を指定する手順

  1. 複製データベースで名前を指定するファイルごとに、CONFIGURE AUXNAMEコマンドを発行します。

    たとえば、データファイル1から5の名前を指定するには、RMANプロンプトで次のコマンドを入力します。

      CONFIGURE AUXNAME FOR DATAFILE 1 TO '/oradata1/system01.dbf'; 
      CONFIGURE AUXNAME FOR DATAFILE 2 TO '/oradata2/sysaux01.dbf';
      CONFIGURE AUXNAME FOR DATAFILE 3 TO '/oradata3/undotbs01.dbf';
      CONFIGURE AUXNAME FOR DATAFILE 4 TO '/oradata4/users01.dbf'; 
      CONFIGURE AUXNAME FOR DATAFILE 5 TO '/oradata5/users02.dbf';
    
  2. DUPLICATEコマンドを発行します。

    たとえば、RMANプロンプトで次のコマンドを入力します。

    SET NEWNAME FOR TEMPFILE 1 TO '/oradatat/temp01.dbf'; 
    DUPLICATE TARGET DATABASE
      TO dupdb
      SKIP TABLESPACE tools
      LOGFILE
        GROUP 1 ('/duplogs/redo01a.log',
                 '/duplogs/redo01b.log') SIZE 4M REUSE,
        GROUP 2 ('/duplogs/redo02a.log',
                 '/duplogs/redo02b.log') SIZE 4M REUSE;
    

    RMANでは、CONFIGURE AUXNAME設定を使用してデータファイル1から5の名前を指定します。


関連項目:

CONFIGURE AUXNAMEの使用方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。

複製データベース・ファイルに対するOMFまたはASM代替名の指定

この項では、複製データベースの一部またはすべてのファイルでOMFまたはASMが使用されている場合に複製データベースを作成するための要件について説明します。


関連項目:

ASMおよびOMFの概要は、『Oracle Databaseストレージ管理者ガイド』を参照してください。

OMF初期化パラメータの設定および制限事項

Oracle Managed Filesを使用する複製データベースを作成する場合は、補助インスタンスで初期化パラメータを設定する必要があります。DUPLICATESPFILE句を使用してファイルの名前を指定する場合は、SPFILE句で初期化パラメータを設定できます。表25-3に、関連するパラメータおよび推奨設定を示します。表25-4に、制限事項および設定するべきでない初期化パラメータを示します。


関連項目:

これらのパラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。

表25-3 Oracle Managed Filesの初期化パラメータ

初期化パラメータ 用途 推奨事項

DB_CREATE_FILE_DEST

Oracle管理データファイルのデフォルトの場所を指定します。この場所は、どのDB_CREATE_ONLINE_LOG_DEST初期化パラメータも指定されていない場合、Oracle管理の制御ファイルおよびオンライン・ログのデフォルトの場所でもあります。

このパラメータをOracle Managed Filesの場所に設定します。他の場所が指定されてないデータベース・ファイルがDUPLICATEによってDB_CREATE_FILE_DESTで作成されます。「SET NEWNAMEを使用したOMFまたはASMファイルの作成」で説明するように、SET NEWNAMEを使用して特定のファイルのデフォルト値を上書きできます。

DB_CREATE_ONLINE_LOG_DEST_n

Oracle管理の制御ファイルおよびオンラインREDOログのデフォルトの場所を指定します。複数のパラメータが設定されている場合は、それぞれの場所に制御ファイルおよびオンラインREDOログが1つずつ作成されます。

複数の場所の制御ファイルおよびオンラインREDOログ・ファイルを多重化する場合にのみ、これらのパラメータを設定します(_1_2など)。

DB_RECOVERY_FILE_DEST

高速リカバリ領域のデフォルトの場所を指定します。高速リカバリ領域には、現行の制御ファイルおよびオンラインREDOログ・ファイルの多重コピーが含まれています。

リカバリ領域に制御ファイルおよびオンラインREDOログ・ファイルの多重コピーが必要な場合は、このパラメータを設定します。


表25-4 Oracle Managed Filesの初期化パラメータの制限事項

初期化パラメータ 用途 制限事項

CONTROL_FILES

1つ以上の制御ファイル名をカンマで区切って指定します。

OMF形式でデータベース制御ファイルを複製する場合は、このパラメータを設定しないでください。制御ファイルにOMF形式を使用する場合は、複製データベースでサーバー・パラメータ・ファイルを使用することをお薦めします。

DB_FILE_NAME_CONVERT

プライマリ・データベース上の新しいデータファイルのファイル名を複製データベース上のファイル名に変換します。

このパラメータを設定しないでください。このパラメータを省略することによって、データベースは複製データファイルにOracle Managed Filesの有効な名前を生成できます。

LOG_FILE_NAME_CONVERT

プライマリ・データベース上の新しいログ・ファイルのファイル名をスタンバイ・データベース上のログ・ファイルのファイル名に変換します。

このパラメータを設定しないでください。このパラメータを省略することによって、データベースはOracle管理オンラインREDOログ・ファイルの有効な名前を生成できます。

複製データベースのオンラインREDOログ・ファイルをOracle管理ストレージに格納するには、DB_CREATE_FILE_DESTDB_RECOVERY_FILE_DESTまたはDB_CREATE_ONLINE_LOG_DEST_n初期化パラメータを使用して、オンライン・ログのOracle管理の場所を指定します。


ASMの初期化パラメータの設定

ASMの場所に複製データベースを作成する手順は、「OMF初期化パラメータの設定および制限事項」に示す手順と同様です。ファイルが作成される場所を制御する初期化パラメータを特定し、これらのパラメータをASMディスク・グループに対して設定する必要がある点が異なります。たとえば、DB_CREATE_FILE_DESTDB_CREATE_ONLINE_DEST_nおよびCONTROL_FILES+DISK1に対して設定します。

ファイル・システムからASMへのデータベースの複製の例

この例では、アクティブなデータベースの複製を使用します。ソース・データベースでサーバー・パラメータ・ファイルが使用されている(またはバックアップが使用可能である)場合は、宛先ホストに一時初期化パラメータ・ファイルを作成し、DB_NAMEパラメータのみを設定できます。

ソース・データベースprodhost1上にあり、データファイルは非ASMファイル・システムに保存されていると想定しています。prodの制御ファイルは、/oracle/oradata/prod/に存在します。ソース・データベースを複製し、リモート・ホストhost2上にdupdbデータベースを作成します。ASMディスク・グループ+DISK1に複製データベース・ファイルを保存します。

RMANをターゲット・データベース、複製データベースおよびリカバリ・カタログ・データベースに接続してから、例25-4に示すRMANスクリプトを実行してデータベースを複製します。

例25-4 ファイル・システムからASMへの複製(アクティブ)

DUPLICATE TARGET DATABASE TO dupdb
  FROM ACTIVE DATABASE
  SPFILE 
    PARAMETER_VALUE_CONVERT '/oracle/oradata/prod/', '+DISK1'
    SET DB_CREATE_FILE_DEST +DISK1;

DUPLICATEコマンドが完了すると、複製データベースはデータファイル、オンラインREDOログ・ファイルおよび制御ファイルとともに、ASMディスク・グループ+DISK1に作成されます。

ASMからASMへのデータベースの複製の例

この例では、アクティブなデータベースの複製を使用します。ソース・データベースでサーバー・パラメータ・ファイルが使用されている(またはバックアップが使用可能である)場合は、宛先ホストに一時初期化パラメータ・ファイルを作成し、DB_NAMEパラメータのみを設定できます。

ソース・データベースprodhost1上にあり、データファイルはASMディスク・グループ+DISK1に保存されていると想定しています。ターゲット・データベースを複製し、リモート・ホストhost2上にdupdbデータベースを作成します。ASMにdupdbのデータファイルを格納します。具体的には、ディスク・グループ+DISK2にデータファイルおよび制御ファイルを保存します。

DUPLICATEコマンドにPARAMETER_VALUE_CONVERTを設定し、すべてのディレクトリの場所を+DISK1から+DISK2に変換します。+DISK2の新しいファイル名は、ASMによって生成され、ディスク・グループ+DISK1の元のファイル名とは一致しません。

ターゲット・データベース、複製データベースおよびカタログ・データベースに接続してから、例25-5に示すRMANスクリプトを実行してデータベースを複製します。

例25-5 ASMからASMへの複製(アクティブ)

DUPLICATE TARGET DATABASE
  TO dupdb
  FROM ACTIVE DATABASE
  SPFILE PARAMETER_VALUE_CONVERT '+DISK1','+DISK2'
     SET DB_RECOVERY_FILE_DEST_SIZE='750G';

DUPLICATEコマンドが完了すると、データファイル、オンラインREDOログおよび制御ファイルとともに複製データベースがより大きなASMディスク・グループ+DISK2に作成されます。

SET NEWNAMEを使用したOMFまたはASMファイルの作成

Oracle管理データファイルの名前を指定するには、「SET NEWNAMEを使用したファイル・システム・データファイルおよび一時ファイルの名前の指定」で説明したSET NEWNAMEコマンドを使用できますが、TO "filename"のかわりにTO NEWを指定します。RMANによって、指定したデータファイルまたは一時ファイルが、DB_CREATE_FILE_DESTを使用して指定した場所にOracle Managed Filesの名前で作成されます。

SET NEWNAMEを使用してOracle Managed Filesの名前を指定する手順

  1. 補助インスタンスのDB_CREATE_FILE_DEST初期化パラメータを任意の場所に設定します。

  2. RUNブロックにDUPLICATEコマンドを含め、Oracle Managed Filesに対してSET NEWNAMETO NEWオプションとともに使用します。

    例25-6に、データファイル1から5のリテラル名を指定するスクリプトを示します。ソース・データベース内のOracle Managed Filesは、users表領域内のデータファイルのみです。このため、これらのファイルのSET NEWNAMEコマンドにはTO NEWを指定します。

    例25-6 SET NEWNAME FOR DATAFILEおよびSET NEWNAME FOR TABLESPACEを使用した複製

    RUN
    {
      SET NEWNAME FOR TABLESPACE users TO NEW;
      SET NEWNAME FOR DATAFILE 3 TO NEW;
      SET NEWNAME FOR DATAFILE 1 TO '/oradata1/system01.dbf'; 
      SET NEWNAME FOR DATAFILE 2 TO '/oradata2/sysaux01.dbf';
      SET NEWNAME FOR TEMPFILE 1 TO '/oradatat/temp01';  
      DUPLICATE TARGET DATABASE TO dupdb
        SKIP TABLESPACE tools
        LOGFILE
          GROUP 1 ('/duplogs/redo01a.log', 
                   '/duplogs/redo01b.log') SIZE 4M REUSE, 
          GROUP 2 ('/duplogs/redo02a.log', 
                   '/duplogs/redo02b.log') SIZE 4M REUSE;
    }
    

    例25-7に示すように、SET NEWNAMEを使用して、指定したASMディスク・グループに個々のデータファイル、一時ファイルまたは表領域を格納することもできます。

    例25-7 SET NEWNAMEを使用したASMディスク・グループでのファイルの作成

    RUN
    {
       SET NEWNAME FOR DATAFILE 1 TO "+DGROUP1";
       SET NEWNAME FOR DATAFILE 2 TO "+DGROUP2";
       .
       .
       .
       DUPLICATE TARGET DATABASE 
         TO dupdb
         FROM ACTIVE DATABASE
         SPFILE SET DB_CREATE_FILE_DEST +DGROUP3;
    }
    

関連項目:

SET NEWNAMEの使用方法の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。

DB_FILE_NAME_CONVERTを使用した非OMFまたはASMデータファイルの名前の生成

名前を生成するには、SET NEWNAMEまたはCONFIGURE AUXNAMEコマンドを使用する以外にもう1つ、DB_FILE_NAME_CONVERTを使用してターゲット・ファイル名を変更する方法があります。たとえば、ターゲット・ファイル名を/oracle/から/dup/oracle/に変更できます。DB_FILE_NAME_CONVERTを使用すると、複数の変換ファイル名のペアを指定できます。データファイルや一時ファイルの名前を作成することもできます。

DB_FILE_NAME_CONVERTは、DUPLICATEコマンドで指定するか、または補助インスタンスの初期化パラメータで設定できます。

DB_FILE_NAME_CONVERTの制限事項

DUPLICATEコマンドのDB_FILE_NAME_CONVERT句を使用して、ソース・データベース・インスタンスではOracle Managed Files(OMF)形式である、複製インスタンスにあるファイル用の新しい名前の生成を制御することはできません。この制限事項の詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』を参照してください。

LOG_FILE_NAME_CONVERTを使用した非OMFまたはASMログ・ファイルの名前の生成

LOG_FILE句が省略されており、Oracle Managed Filesの初期化パラメータDB_CREATE_FILE_DESTDB_CREATE_ONLINE_DEST_nまたはDB_RECOVERY_FILE_DESTのいずれも指定されていない場合、LOG_FILE_NAME_CONVERTはターゲット・ファイル名を変更できます。これは、DB_FILE_NAME_CONVERTとほぼ同様に機能し、ターゲット・ファイル名をlog_*からduplog_*に変更できます。このパラメータを使用すると、複数の変換ファイル名のペアを指定できます。

LOG_FILE_NAME_CONVERTを指定すると、RMANは、オンラインREDOログの作成時にREUSEパラメータを使用します。オンラインREDOログ・ファイルが名前の付けられた場所にすでに存在し、適切なサイズである場合、そのファイルは複製に再利用されます。

LOG_FILE_NAME_CONVERTの制限事項
  • Oracle Managed Filesの初期化パラメータを設定する場合、LOG_FILE_NAME_CONVERTを指定しないでください。

  • LOG_FILE_NAME_CONVERTは、DUPLICATE句としては指定できません。補助インスタンスの初期化パラメータでのみ指定できます。

  • LOG_FILE_NAME_CONVERT初期化パラメータを使用して、ソース・データベース・インスタンスではOracle Managed Files(OMF)形式である、複製インスタンスにあるファイル用の新しい名前の生成を制御することはできません。

共有ディスクを使用しないディスク・バックアップのアクセス可能化

「手順3: 複製インスタンスからバックアップへのアクセス可能化」では、バックアップを補助インスタンスで使用できるようにするため、共有ディスクを使用する方法を推奨しています。ターゲットまたはリカバリ・カタログ接続なしにBACKUP LOCATIONオプションがDUPLICATEコマンドに使用されていないかぎり、NFSまたは共有ディスクを使用できない場合、バックアップを格納するパスはソース・ホストおよび転送先ホストの両方に存在する必要があります。

srchostおよびdsthostという2つのホストがあるとします。srchost上のデータベースは、srcdbです。srcdbのRMANバックアップは、ホストsrchost上の/dsk1/bkp内に存在します。ディレクトリ/dsk1/bkpはすでに転送先ホストで使用されているため、バックアップは転送先ホスト上の/dsk2/dupに格納します。

バックアップをソース・ホストから宛先ホストに転送する手順

  1. バックアップを格納する転送先ホスト上にあるディレクトリと同じ名前のディレクトリをソース・ホスト上に新しく作成します。

    たとえば、RMANバックアップを宛先ホストの/dsk2/dupに格納する場合、ソース・ホスト上に/dsk2/dupを作成します。

  2. ソース・ホスト上で、前の手順で作成したディレクトリにバックアップをコピーして、バックアップをカタログに追加します。次のいずれかの方法を使用できます。

    • RMANをTARGETとしてソース・データベースに接続し、「RMANバックアップのバックアップ」で説明されているBACKUPコマンドを使用して、バックアップのバックアップを作成します。たとえば、BACKUP COPY OF DATABASEコマンドを使用して、ソース・ホストの/dsk1/bkpにあるバックアップをソース・ホストの/dsk2/dupにコピーします。この場合、RMANは、新しい場所のバックアップを自動的にカタログに追加します。

    • オペレーティング・システム・ユーティリティを使用して、ソース・ホストの/dsk1/bkpにあるバックアップを、ソース・ホストの/dsk2/dupにコピーします。後で、RMANをTARGETとしてソース・データベースに接続し、CATALOGコマンドを使用して、手動で転送したバックアップの場所で、ソースの制御ファイルを更新します。

  3. ソース・ホスト上の新しいディレクトリから宛先ホスト上の同じ名前のディレクトリに、バックアップを手動で転送します。

    たとえば、FTPを使用して、ソース・ホストの/dsk2/dupにあるバックアップを、宛先ホストの/dsk2/dupに転送します。

補助チャネルでは、宛先ホストの/dsk2/dupでバックアップを検索してリストアできます。

サーバー・パラメータ・ファイルが存在しない場合のデータベースの複製

「手順5: 初期化パラメータ・ファイルの作成と補助インスタンスの起動」の手順では、DUPLICATEコマンドのSPFILE句を使用する場合を想定しています。ソース・データベースがサーバー・パラメータ・ファイルを使用していない場合は、補助インスタンスに必要なすべてのパラメータをテキストベースの初期化パラメータ・ファイルで設定する必要があります。

表25-5に、指定可能な初期化パラメータのサブセットを示します。これらのパラメータの詳細は、『Oracle Databaseリファレンス』を参照してください。複製ファイルに名前を指定するためのオプションについては、表25-1を参照してください。

表25-5 補助インスタンスの初期化パラメータ

初期化パラメータ ステータス

DB_NAME

DUPLICATEコマンドで使用する名前と同じ名前。DUPLICATEを使用してスタンバイ・データベースを作成する場合、プライマリ・データベースと同じ名前にする必要があります。

複製データベースのDB_NAME設定は、そのOracleホームのデータベース間で一意である必要があります。

必須

CONTROL_FILES

制御ファイルの場所

必須

DB_BLOCK_SIZE

複製データベースのブロック・サイズ。このブロック・サイズは、ソース・データベースのブロック・サイズと一致している必要があります。ソース・データベースのパラメータ・ファイルにDB_BLOCK_SIZE初期化パラメータの値が含まれている場合、補助インスタンスに同じ値を指定する必要があります。ただし、ソース・データベースの初期化パラメータ・ファイルにDB_BLOCK_SIZEが指定されていない場合は、補助インスタンスにDB_BLOCK_SIZEは指定しないでください。

必須(ソース・データベースでこの初期化パラメータが設定されている場合)

DB_FILE_NAME_CONVERT

データファイルおよび一時ファイルの名前を変換する文字列のペア。DUPLICATEコマンド自体にDB_FILE_NAME_CONVERTを指定することもできます。「DB_FILE_NAME_CONVERTを使用した非OMFまたはASMデータファイルの名前の生成」を参照してください。

オプション

LOG_FILE_NAME_CONVERT

オンラインREDOログ・ファイルの名前を指定する文字列のペア。「LOG_FILE_NAME_CONVERTを使用した非OMFまたはASMログ・ファイルの名前の生成」を参照してください。

オプション

DB_CREATE_FILE_DEST

Oracle管理データファイルの場所

オプション

DB_CREATE_ONLINE_LOG_DEST_n

Oracle管理オンラインREDOログ・ファイルの場所

オプション

DB_RECOVERY_FILE_DEST

高速リカバリ領域の場所

オプション

Oracle Real Application Cluster(Oracle RAC)パラメータ:

  • <INSTANCESIDn>.INSTANCE_NAME

  • <INSTANCESIDn>.INSTANCE_NUMBER

  • <INSTANCESIDn>.THREAD

  • <INSTANCESIDn>.UNDO_TABLESPACE

  • <INSTANCESIDn>.LOCAL_LISTENER

Oracle RACデータベースのインスタンスごとにこれらのパラメータを設定します。

必須(Oracle RAC構成の場合)


SPFILE句を使用しない場合に初期化パラメータ・ファイルを作成する手順

  1. オペレーティング・システム・ユーティリティを使用して、ソース・データベースの初期化パラメータ・ファイルのコピーをオペレーティング・システム固有のデフォルトの場所に作成します。

  2. コピーした初期化パラメータ・ファイルで、DB_NAMEを複製データベースの名前に手動で変更します。DUPLICATEを使用してスタンバイ・データベースを作成する場合、プライマリ・データベースと同じ名前にする必要があります。

  3. 必要に応じて、Oracle Netを介してSYSDBAとして接続するためのパラメータも含めて、その他の初期化パラメータを変更します。データベースの複製先ホスト上ですべてのパスがアクセス可能であることを確認する必要があります。

    例25-8に、サンプルの初期化パラメータ・ファイルを示します。

    例25-8 補助インスタンス用のサンプル初期化パラメータ・ファイル

    DB_NAME=dupdb
    CONTROL_FILES=(/dup/oracle/oradata/prod/control01.ctl,
                   /dup/oracle/oradata/prod/control02.ctl)
    DB_FILE_NAME_CONVERT=(/oracle/oradata/prod/,/dup/oracle/oradata/prod/)
    LOG_FILE_NAME_CONVERT=(/oracle/oradata/prod/redo,/dup/oracle/oradata/prod/redo)
    

サーバー・パラメータ・ファイルが存在しない場合の補助インスタンスの起動

「手順5: 初期化パラメータ・ファイルの作成と補助インスタンスの起動」では、ソース・データベース・インスタンスがサーバー・パラメータ・ファイルを使用する場合を想定しています。この例では、ソース・データベースが現時点でサーバー・パラメータ・ファイルを使用していないか、またはRMANによってバックアップ・サーバー・パラメータ・ファイルをリストアできないと想定しています。この場合は、テキストベースの初期化パラメータ・ファイルを使用して、補助インスタンスを起動する必要があります。

データベース複製の準備として補助インスタンスを起動する手順

  1. テキストベースの初期化パラメータ・ファイルを、SQL*Plusクライアントを含むホストのデフォルトの場所にコピーします。

  2. SQL*Plusを起動し、SYSOPER権限を使用して補助インスタンスに接続します。

  3. テキストベースの初期化パラメータ・ファイルを使用して、補助インスタンスをNOMOUNTモードで起動します。

    SQL> STARTUP NOMOUNT
    
  4. 補助インスタンス用のテキストベースの初期化パラメータ・ファイルを、複製の実行に使用されるRMANクライアントと同じホストにコピーします。DUPLICATEコマンドのPFILE句で、このテキストベースの初期化パラメータ・ファイルの場所を指定する必要があります。

ソース・データベース表領域のサブセットの複製

常に、データベースのすべての表領域を複製する必要があるわけではありません。たとえば、ソース・データベースから表領域のサブセットのみを必要とするレポートを生成する場合があります。


注意:

ターゲット接続なしに、またはターゲットおよびリカバリ・カタログ接続なしにバックアップベースの複製で表領域を除外する場合、RMANには特別な前提条件があります。詳細は、『Oracle Databaseバックアップおよびリカバリ・リファレンス』DUPLICATEエントリの前提条件に関する項を参照してください。

表25-6に、複製データベースの表領域のサブセットを指定するためのDUPLICATEコマンドのオプションを示します。

表25-6 複製データベースの表領域のサブセットを指定するためのオプション

DUPLICATEのオプション 説明

SKIP READONLY

複製データベースから読取り専用表領域のデータファイルを除外します。

SKIP TABLESPACE 'tablespace_name ', ...

指定した表領域を複製データベースから除外します。SYSTEM表領域、SYSAUX表領域、SYSオブジェクトを含む表領域、UNDO表領域、UNDOセグメントを含む表領域、マテリアライズド・ビューを使用する表領域、または複製された表領域が自己完結型になっていない表領域は除外できません。

TABLESPACE 'tablespace_name ', ...

SYSTEM表領域、SYSAUX表領域およびUNDO表領域を自動的に含みます。含まれる表領域は自己完結型である必要があります。また、結果としてスキップされる表領域には、SYSオブジェクトまたはマテリアライズド・ビューが含まれない必要があります。


複製データベースの表領域のサブセットを指定するには、次の手順を実行します。

  1. 「データベースの複製の基本手順」の手順1から4が完了していることを確認します。

  2. 表25-6に示すオプションを1つ以上指定して、DUPLICATEコマンドを実行します。

コピーされる表領域に影響を与えるその他の要因には、OFFLINE NORMALオプションが含まれます。複製の前にOFFLINE NORMALオプションによって表領域がオフラインにされた場合、RMANは関連するデータファイルを複製せず、その複製データベースの表領域に対してDROP TABLESPACE文を発行します。したがって、これらの表領域を除外するオプションを指定する必要はありません。


注意:

RMANは、NORMAL以外のいずれのオプションを使用してオフラインにされた表領域も複製します(SKIP TABLESPACEオプションで名前が指定されている場合を除く)。自動的にスキップされるのは、OFFLINE NORMAL表領域のみです。バックアップベースの複製を使用する場合は、オンライン表領域のときと同様に、RMANにこれらの表領域の有効なバックアップが必要です。

指定した表領域の除外

例25-9に、読取り専用表領域をスキップする方法を示します。

例25-9 読取り専用表領域の除外

DUPLICATE TARGET DATABASE TO dupdb
  FROM ACTIVE DATABASE
  SKIP READONLY
  NOFILENAMECHECK;

例25-10に、toolsという名前の表領域をスキップする方法を示します。

例25-10 指定した表領域の除外

DUPLICATE TARGET DATABASE 
  TO dupdb
  FROM ACTIVE DATABASE
  SKIP TABLESPACE tools
  NOFILENAMECHECK;

指定した表領域の追加

TABLESPACEオプションを使用すると、指定したデータベースに含める表領域を指定できます。複製データベースから除外する表領域を指定するSKIP TABLESPACEオプションとは異なり、このオプションを使用すると、含める表領域が指定された後、残りの表領域はスキップされます。複製された表領域のサブセットは、自己完結型である必要があります。結果として、スキップされた表領域のセットには、UNDOセグメントやマテリアライズド・ビューは含まれていない必要があります。

例25-11例24-1を少し変更した例です。自己完結型であると想定されるusers表領域が含まれ、SYSTEM表領域、SYSAUX表領域およびUNDOセグメントを含む表領域以外の、すべての表領域が除外される点が異なります。

例25-11 指定した表領域の追加

DUPLICATE TARGET DATABASE 
  TO dupdb
  FROM ACTIVE DATABASE
  TABLESPACE users
  NOFILENAMECHECK;

リカバリ・カタログ接続ではなく、ターゲット接続を使用してバックアップベースの複製を実行するとします。また、複製の対象として表領域のサブセットを指定します。この場合、ターゲット・データベースが開いていないと、RMANではUNDOセグメントを含む表領域の名前を取得できません。したがって、例25-12に示すように、対象の表領域に対してUNDO TABLESPACEオプションを指定する必要があります。

例25-12 指定した表領域の追加

DUPLICATE TARGET DATABASE TO dupdb
  TABLESPACE users
  UNDO TABLESPACE undotbs
  NOFILENAMECHECK;