テスト・マスターの作成

開発およびテスト環境ごとに、更新された情報が必要な頻度と速度に基づいて、最適なデータクローニング方法を決定します。

次のデータ・リフレッシュ頻度のガイドラインを確認して、本番データベースをクローニングする最適な方法を決定し、テスト・マスターを作成します。

  • 頻繁なリフレッシュ(毎日、毎週):フィジカル・スタンバイ・データベースとしてのテスト・マスターの作成
  • 通常のリフレッシュ(隔週、毎月): RMANのDUPLICATEを使用して、アクティブ・データベースからテスト・マスターを作成します。
  • リフレッシュのタイミング(四半期、半年ごと): RMANの全データベース・バックアップを使用してテスト・マスターを作成する

フィジカル・スタンバイ・データベースとしてのテスト・マスターの作成

常に本番と同期が必要な場合は、フィジカル・スタンバイ・データベースであるテスト・マスターを作成します。

フィジカル・スタンバイはスナップショット作成のテスト・マスターであり、障害時リカバリにはテスト・マスターを使用しないでください。スナップショットは、Oracle ACFS上のテスト・マスターと同じサーバー上に作成されます。

この例では、Oracle Databaseバージョン12.1.0.2を次の名前で使用しています。

  • ソース本番データベース・インスタンス: PRODDB (PDB名はPDB 1)
  • テスト・マスター・データベース・インスタンス: TSTMSTR (PDB名はPDB 1)
テスト・マスター・ホスト名のエントリを本番データベースの/etc/hostsディレクトリに追加し、テスト・マスターでポートを構成し、本番データベースとテスト・マスター・データベースの間でOracle Data Guardを構成します。
  1. 本番データベースをクローニングし、テスト・マスターをフィジカル・スタンバイ・データベースとして作成します。

    次のgDBCloneオプションを使用して、フィジカル・スタンバイ・データベースを作成します。

    • -sdbname:ソース・データベース名
    • -sdbscan:ソースDBホストSCAN名
    • -sdbport:ソースSCANリスナー・ポート(デフォルト1521)
    • -tdbname:ターゲット・データベース名
    • -tdbhome:ターゲット・データベース・ホーム
    • -tdbport:ターゲットSCANリスナー・ポート(デフォルト1521)
    • -racmod: Oracle RACタイプで、Oracle単一インスタンス・データベースの場合は0を使用します。
    • -dataacfs:データベース・データファイルのターゲットOracle ACFS記憶域
    • -redoacfs:データベースのredoログ・ターゲットOracle ACFS記憶域(デフォルトdataacfs)
    • -recoacfs:データベース・リカバリ・ターゲットOracle ACFS記憶域(デフォルトdataacfs)。
    • -channels: RMANによって割り当てられたチャネル(デフォルトは3)
    • -standby:クローン(スナップ)はフィジカル・スタンバイ・データベースです。
    • -pmode:スタンバイ・モード・オプションは、maxperfmaxavailおよびmaxprot (デフォルトmaxperf)です。
    • -activedg: Active Data Guardの有効化
    • -syspwf: SYS暗号化パスワード・ファイル
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone clone -sdbname PRODDB_iad1df.bass1.ebsvcn.examplevcn.com -sdbscan proddb.bass1.ebsvcn.examplevcn.com sdbport 1521 -tdbname TSTMSTR -tdbhome OraDB12102_home2 -tdomain bass1.ebsvcn.examplevcn.com -tdbport 1521 -racmod 0 -dataacfs /u02/app/oracle/oradata/TSTMSTR -redoacfs /u03/app/oracle/redo -recoacfs /u03/app/oracle/fast_recovery_area -channels 2 -standby -pmode maxperf -activedg -rtapply -noping -syspwf /opt/gDBClone/SYS.password
  2. テスト・マスター・データベース情報が正確であることを確認します。
    [oracle@tstmstr TSTMSTR]$ cat /etc/oratab|grep -i TSTMSTR
  3. gDBClone listdbsコマンドを使用してデータベースのリストを表示し、スタンバイ・データベースのロールおよび場所が正しいことを確認します。
    gDBClone listdbs -treeコマンドは、親子関係を表示する場合に使用します。
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs
    Database Name    Database Type   Database Role      Master/Snapshot  Location/Parent
    -------------    -------------   -------------      ---------------  ---------------
    ORCL_iad1hb      SINGLE          PRIMARY            n/a              ASM            
    TSTMSTR          SINGLE          PHYSICAL_STANDBY   Master           /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/
    
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs -tree
    Parent	Child
    ------	-----
    TSTMSTR
  4. テスト・マスターのクラスタ環境変数を設定してください。
    テスト・マスターを読取り専用フィジカル・スタンバイ・データベースに構成します。
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    [oracle@tstmstr ~]$ 
    [oracle@tstmstr ~]$ srvctl setenv database -d TSTMSTR -envs "ORACLE_UNQNAME=TSTMSTR,TZ=UTC"
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    ORACLE_UNQNAME=TSTMSTR
    TZ=UTC
    [oracle@tstmstr ~]$ 
    
    [oracle@tstmstr ~]$ . oraenv
    ORACLE_SID = [oracle] ? TSTMSTR
    The Oracle base has been set to /u01/app/oracle
    [oracle@tstmstr ~]$ srvctl config database -d TSTMSTR
    Database unique name: TSTMSTR
    Database name: 
    Oracle home: /u01/app/oracle/product/12.1.0.2/dbhome_2
    Oracle user: oracle
    Spfile: /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/TSTMSTR/TSTMSTR/spfileTSTMSTR.ora
    Password file: 
    Domain: bass1.ebsvcn.examplevcn.com
    Start options: read only
    Stop options: immediate
    Database role: PHYSICAL_STANDBY
    Management policy: AUTOMATIC
    Server pools: 
    Disk Groups: 
    Mount point paths: /u02/app/oracle/oradata/TSTMSTR,/u03/app/oracle/
    Services: 
    Type: SINGLE
    OSDBA group: dba
    OSOPER group: dbaoper
    Database instance: TSTMSTR
    Configured nodes: tstmstr
    Database is administrator managed
    [oracle@tstmstr ~]$
  5. テスト・マスター・データベースを再起動します。
    
    [oracle@tstmstr ~]$ srvctl stop database -d TSTMSTR
    [oracle@tstmstr ~]$ srvctl start database -d TSTMSTR
  6. テスト・マスター・データベースでTDEウォレット・ステータスをチェックします。
    ウォレットのステータスはOPENで、ウォレット・タイプはAUTOLOGINである必要があります。
    [oracle@tstmstr ~]$ export 
    ORACLE_UNQNAME=TSTMSTR
    [oracle@tstmstr ~]$ sqlplus / as sysdba
    SQL*Plus: Release 12.1.0.2.0 Production on Thu Sep 30 06:44:14 2019
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    
    Connected to:Oracle Database 12c EE High Perf Release 
    12.1.0.2.0 - 64bit Production
    With the Partitioning, Real Application Clusters, OLAP, Advanced Analytics
    and Real Application Testing options
    
    SQL> set linesize 180
    SQL> col wrl_parameter format a80
    SQL> select * from v$encryption_wallet;
    
    WRL_TYPE   WRL_PARAMETER                                      STATUS       WALLET_TYPE  WALLET_OR  FULLY_BAC   CON_ID
    --------  ------------ -------------------------------------  -----------  -----------  ---------  ---------   -------
    FILE      /opt/oracle/dcs/commonstore/wallets/tde/TSTMSTR/    OPEN         AUTOLOGIN    SINGLE     NO         0
    
  7. テスト・マスター・データベースのステータスを確認します。
    SQL> select name,open_mode,database_role from v$database;
    
    NAME	  OPEN_MODE	       DATABASE_ROLE
    --------- -------------------- ----------------
    PRODDB	  MOUNTED	       PHYSICAL STANDBY
    
    SQL> show pdbs
    
        CON_ID CON_NAME			  OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
    	 2 PDB$SEED			  MOUNTED
    	 3 PDB1 			     MOUNTED
    
  8. フィジカル・スタンバイが本番と同期していることを確認します。
    本番でログ・ファイルをいくつか切り替え、テスト・マスター・データベースでredoがトランスポートおよび適用されているかどうかを確認できます。
    SQL> select sequence#,archived,applied from v$archived_log order by sequence#;
    
テスト・マスターはフィジカル・スタンバイ・データベースであり、本番データベースと同期化されます。データベースのスナップショットは、いつでも作成できます。

アクティブ・データベースからのテスト・マスターの作成

テスト環境を定期的にリフレッシュする必要がある場合には、Oracle Recovery Manager (RMAN)アクティブな複製を使用して、オンライン本番データベースからデータベース・クローンを作成します。

この例では、Oracle Databaseバージョン12.1.0.2を次の名前で使用しています。

  • ソース本番データベース・インスタンス: PRODDB (PDB名はPDB 1)
  • テスト・マスター・データベース・インスタンス: TSTMSTR (PDB名はPDB 1)
テスト・マスターをディレクトリに追加し、ポートを構成して、本番データベース・インスタンスでOracle Data Guardを構成します。
  1. RMANのアクティブな複製を使用してテスト・マスターを作成します。

    次のgDBCloneオプションを使用して、フィジカル・スタンバイ・データベースを作成します。

    • -sdbname:ソース・データベース名
    • -sdbscan:ソースDBホストSCAN名
    • -sdbport:ソースSCANリスナー・ポート(デフォルト1521)
    • -tdbname:ターゲット・データベース名
    • -tdbhome:ターゲット・データベース・ホーム
    • -tdbport:ターゲットSCANリスナー・ポート(デフォルト1521)
    • -racmod: Oracle RACタイプで、Oracle単一インスタンス・データベースの場合は0を使用します。
    • -dataacfs:データベース・データファイルのターゲットOracle ACFS記憶域
    • -redoacfs:データベースのredoログ・ターゲットOracle ACFS記憶域(デフォルトdataacfs)
    • -recoacfs:データベース・リカバリ・ターゲットOracle ACFS記憶域(デフォルトdataacfs)。
    • -channels: RMANによって割り当てられたチャネル(デフォルトは3)
    • -standby:クローン(スナップ)はフィジカル・スタンバイ・データベースです。
    • -pmode:スタンバイ・モード・オプションは、maxperfmaxavailおよびmaxprot (デフォルトmaxperf)です。
    • -activedg: Active Data Guardの有効化
    • -syspwf: SYS暗号化パスワード・ファイル
    root@tstmstr gDBClone]# /opt/gDBClone/gDBClone clone -sdbname PRODDB_iad1df.bassubad1.ebsvcn.oraclevcn.com -sdbscan proddb.bassubad1.ebsvcn.oraclevcn.com sdbport 1521 -tdbname TSTMSTR -tdbhome OraDB12102_home2 -tdomain bassubad1.ebsvcn.oraclevcn.com -tdbport 1521 -racmod 0 -dataacfs /u02/app/oracle/oradata/TSTMSTR -redoacfs /u03/app/oracle/redo -recoacfs /u03/app/oracle/fast_recovery_area -channels 2 -noping -syspwf /opt/gDBClone/SYS.password
    
  2. テスト・マスター・データベース情報が正確であることを確認します。
    [oracle@tstmstr TSTMSTR]$ cat /etc/oratab|grep -i TSTMSTR
  3. gDBClone listdbsコマンドを使用してデータベースのリストを表示し、スタンバイ・データベースのロールおよび場所が正しいことを確認します。
    gDBClone listdbs -treeコマンドは、親子関係を表示する場合に使用します。
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs
    Database Name    Database Type   Database Role      Master/Snapshot  Location/Parent
    -------------    -------------   -------------      ---------------  ---------------
    ORCL_iad1hb      SINGLE          PRIMARY            n/a              ASM            
    TSTMSTR          SINGLE          PRIMARY            Master           /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/
    
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs -tree
    Parent	Child
    ------	-----
    TSTMSTR
  4. テスト・マスターのクラスタ環境変数を設定してください。
    テスト・マスターを読取り専用フィジカル・スタンバイ・データベースに構成します。
    
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    [oracle@tstmstr ~]$ 
    [oracle@tstmstr ~]$ srvctl setenv database -d TSTMSTR -envs "ORACLE_UNQNAME=TSTMSTR,TZ=UTC"
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    ORACLE_UNQNAME=TSTMSTR
    TZ=UTC
    [oracle@tstmstr ~]$ 
    
    [oracle@tstmstr ~]$ . oraenv
    ORACLE_SID = [oracle] ? TSTMSTR
    The Oracle base has been set to /u01/app/oracle
    [oracle@tstmstr TSTMSTR]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    ORACLE_UNQNAME=TSTMSTR
    TZ=UTC
    [oracle@tstmstr TSTMSTR]$ srvctl config database -d TSTMSTR
    Database unique name: TSTMSTR
    Database name: 
    Oracle home: /u01/app/oracle/product/12.1.0.2/dbhome_2
    Oracle user: oracle
    Spfile: /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/TSTMSTR/TSTMSTR/spfileTSTMSTR.ora
    Password file: 
    Domain: 
    Start options: open
    Stop options: immediate
    Database role: PRIMARY
    Management policy: AUTOMATIC
    Server pools: 
    Disk Groups: 
    Mount point paths: /u02/app/oracle/oradata/TSTMSTR,/u03/app/oracle/
    Services: 
    Type: SINGLE
    OSDBA group: dba
    OSOPER group: dbaoper
    Database instance: TSTMSTR
    Configured nodes: tstmstr
    Database is administrator managed
    [oracle@tstmstr TSTMSTR]$ 
    
  5. テスト・マスター・データベースを再起動します。
    [oracle@tstmstr ~]$ srvctl stop database -d TSTMSTR
    [oracle@tstmstr ~]$ srvctl start database -d TSTMSTR
  6. テスト・マスター・データベースでTransparent Data Encryption (TDE)ウォレット・ステータスをチェックします。
    ウォレットのステータスはOPENで、ウォレット・タイプはAUTOLOGINである必要があります。
    [oracle@tstmstr ~]$ export ORACLE_UNQNAME=TSTMSTR
    [oracle@tstmstr ~]$ sqlplus / as sysdba
    SQL*Plus: Release 12.1.0.2.0 Production on Thu Sep 30 06:44:14 2019
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    
    Connected to:
    Oracle Database 12c EE High Perf Release 12.1.0.2.0 - 64bit Production
    With the Partitioning, Real Application Clusters, OLAP, Advanced Analytics
    and Real Application Testing options
    
    SQL> set linesize 180
    SQL> col wrl_parameter format a80
    SQL> select * from v$encryption_wallet;
    
    WRL_TYPE   WRL_PARAMETER					   STATUS	WALLET_TYPE   WALLET_OR   FULLY_BAC   CON_ID
    --------   -------------------------------------------------  ----------- -------------  ---------   ----------- -------
    FILE	/opt/oracle/dcs/commonstore/wallets/tde/TSTMSTR/   OPEN	 AUTOLOGIN      SINGLE      NO	   0
    
  7. テスト・マスター・データベースのステータスを確認し、プラガブル・データベース(Pdb)がマウントされていることを確認します。
    SQL> select name,open_mode,database_role from v$database;
    
    NAME	  OPEN_MODE	       DATABASE_ROLE
    --------- -------------------- ----------------
    TSTMSTR   READ WRITE	       PRIMARY
    
    SQL> show pdbs
    
        CON_ID CON_NAME			  OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
    	 2 PDB$SEED			  MOUNTED
    	 3 PDB1 			     MOUNTED
    
テスト・マスターが使用可能な場合は、シン・クローン(スナップショット)データベースを作成できます。テスト・マスターが送信日の場合、スナップショットを作成する前に、本番データベースからのクローン・テスト・マスター・データベースをリフレッシュします。

全データベース・バックアップからのテスト・マスターの作成

テスト・マスターで頻繁なリフレッシュが必要な場合は、Oracle Cloud Infrastructure File Storageサービスにソース本番データベースの完全なバックアップ・コピーを作成します。Oracle Recovery Manager (RMAN)アクティブな複製でバックアップを作成し、テスト・マスター・サーバーにバックアップをマウントします。

この例では、Oracle Databaseバージョン12.1.0.2を次の名前で使用しています。

  • ソース本番データベース・インスタンス: PRODDB (PDB名はPDB 1)
  • テスト・マスター・データベース・インスタンス: TSTMSTR (PDB名はPDB 1)
  1. クローン環境を設定し、RMANを使用してデータベースをクローニングして、本番データベースのバックアップを作成します。
    次のgDBCloneオプションを使用します。
    • -sdbname:ソース・データベース名
    • -sbckloc:ソースRMANの全体バックアップの場所
    • -tdbname:ターゲット・データベース名
    • -tdbhome:ターゲット・データベース・ホーム
    • -sdbport:ソースSCANリスナー・ポート(デフォルト1521)
    • -racmod: Oracle Real Application Clusters (Oracle RAC)モデル。Oracle単一インスタンス・データベースには0を使用します
    • -dataacfs:データベース・データファイルのターゲットOracle ASMクラスタ・ファイルシステム(Oracle ACFS)記憶域
    • -redoacfs:データベースredoがターゲットOracle ACFS記憶域(デフォルトdataacfs)を記録します。
    • -recoacfs:データベース・リカバリ・ターゲットOracle ACFS記憶域(デフォルトdataacfs)。
    • -channels: RMANによって割り当てられたチャネル(デフォルトは3)
    • -syspwf: SYS暗号化パスワード・ファイル
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone clone -sdbname TSTMSTR -sbckloc '/mnt/fss/dbbackup'  -tdbname TSTDEV -tdbhome OraDB12102_home2 -tdbport 1521 -racmod 0 -dataacfs /u02/app/oracle/oradata/TSTMSTR -redoacfs /u03/app/oracle/redo -recoacfs /u03/app/oracle/fast_recovery_area -channels 2 -noping -syspwf /opt/gDBClone/SYS.password
    このスクリプトが設定を検証し、クローン環境を設定し、クローン・データベースを作成します。
  2. テスト・マスター・データベース情報が正確であることを確認します。
    [oracle@tstmstr TSTMSTR]$ cat /etc/oratab|grep -i TSTMSTR
    
  3. gDBClone listdbsコマンドを使用してデータベースのリストを表示し、スタンバイ・データベースのロールおよび場所が正しいことを確認します。
    gDBClone listdbs -treeコマンドは、親子関係を表示する場合に使用します。
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs
    Database Name    Database Type   Database Role      Master/Snapshot  Location/Parent
    -------------    -------------   -------------      ---------------  ---------------
    ORCL_iad1hb      SINGLE          PRIMARY            n/a              ASM            
    TSTMSTR          SINGLE          PRIMARY            Master           /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/
    [root@tstmstr gDBClone]# 
    
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs -tree
    Parent	Child
    ------	-----
    TSTMSTR
    
  4. テスト・マスター・データベースのクラスタ環境パラメータを設定します。
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    [oracle@tstmstr ~]$ 
    [oracle@tstmstr ~]$ srvctl setenv database -d TSTMSTR -envs "ORACLE_UNQNAME=TSTMSTR,TZ=UTC"
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    ORACLE_UNQNAME=TSTMSTR
    TZ=UTC
    [oracle@tstmstr ~]$ 
    
    [oracle@tstmstr ~]$ . oraenv
    ORACLE_SID = [oracle] ? TSTMSTR
    The Oracle base has been set to /u01/app/oracle
    [oracle@tstmstr TSTMSTR]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    ORACLE_UNQNAME=TSTMSTR
    TZ=UTC
    [oracle@tstmstr TSTMSTR]$ srvctl config database -d TSTMSTR
    Database unique name: TSTMSTR
    Database name: 
    Oracle home: /u01/app/oracle/product/12.1.0.2/dbhome_2
    Oracle user: oracle
    Spfile: /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/TSTMSTR/TSTMSTR/spfileTSTMSTR.ora
    Password file: 
    Domain: 
    Start options: open
    Stop options: immediate
    Database role: PRIMARY
    Management policy: AUTOMATIC
    Server pools: 
    Disk Groups: 
    Mount point paths: /u02/app/oracle/oradata/TSTMSTR,/u03/app/oracle/
    Services: 
    Type: SINGLE
    OSDBA group: dba
    OSOPER group: dbaoper
    Database instance: TSTMSTR
    Configured nodes: tstmstr
    Database is administrator managed
    [oracle@tstmstr TSTMSTR]$ 
    
  5. テスト・マスター・データベースの再起動
    
    [oracle@tstmstr ~]$ srvctl stop database -d TSTMSTR
    [oracle@tstmstr ~]$ srvctl start database -d TSTMSTR
  6. テスト・マスター・データベースでTransparent Data Encryption (TDE)ウォレット・ステータスをチェックします。
    ウォレットはAUTOLOGINでOPENである必要があります。
    [oracle@tstmstr ~]$ export ORACLE_UNQNAME=TSTMSTR
    [oracle@tstmstr ~]$ sqlplus / as sysdba
    SQL*Plus: Release 12.1.0.2.0 Production on Thu Sep 30 06:44:14 2019
    Copyright (c) 1982, 2014, Oracle.  All rights reserved.
    
    
    Connected to:
    Oracle Database 12c EE High Perf Release 12.1.0.2.0 - 64bit Production
    With the Partitioning, Real Application Clusters, OLAP, Advanced Analytics
    and Real Application Testing options
    
    SQL> set linesize 180
    SQL> col wrl_parameter format a80
    SQL> select * from v$encryption_wallet;
    
    WRL_TYPE    WRL_PARAMETER					    STATUS	WALLET_TYPE	   WALLET_OR  FULLY_BAC   CON_ID
    --------    -------------------------------------------------   ----------- -------------------- ---------   ----------- -------
    FILE	 /opt/oracle/dcs/commonstore/wallets/tde/TSTMSTR/    OPEN	 AUTOLOGIN	      SINGLE     NO	   0
    
  7. テスト・マスター・データベースのステータスをチェックし、そのプラガブル・データベース(Pdb)がマウントされていることを確認します。
    TSTMSTRデータベースは読取り/書込みモードで、MOUNTED状態である必要があります。
    SQL> select name,open_mode,database_role from v$database;
    
    NAME	  OPEN_MODE	  DATABASE_ROLE
    --------- -------------------- ----------------
    TSTMSTR   READ WRITE	    PRIMARY
    SQL> 
    SQL> show pdbs
    
        CON_ID CON_NAME			 OPEN MODE  RESTRICTED
    ---------- ----------------------------- ---------- ----------
    	 2 PDB$SEED			  MOUNTED
    	 3 PDB1 			     MOUNTED
    
テスト・マスターは、ソース本番データベースの全体バックアップ・コピーです。
データベースのスナップショットを作成します。テスト・マスターが送信された場合、スナップショットを作成する前に、本番データベースからバックアップのテスト・マスター・データベースをリフレッシュします。