スナップショット・データベースの管理

スナップショット・データベースを管理して、最新のシン・クローン・データベースを使用し、期限切れのスナップショットを削除します。

スナップショット・データベースの作成

テスト・マスターからスナップショット・データベースを作成します。

テスト・マスターがフィジカル・スタンバイの場合、テスト・マスター・データベースはMOUNTED状態である必要があります。読取り専用モードの場合、スナップショット・データベースを作成する前に「マウント済」に変更します。RMANのアクティブな複製または本番からのRMANバックアップを使用してテスト・マスターを作成する場合、これは必要ありません。
  1. パラメータを定義し、スナップショット・データベースを作成します。
    次のgDBCloneオプションを使用してスナップショットを定義します。
    • -sdbname:ソース・データベース名
    • -tdbname:ターゲット・データベース名
    • -tdbhome:ターゲット・データベース・ホーム
    • -racmod: Oracle RACタイプ。Oracleの単一インスタンス・データベースの場合、0 (ゼロ)を使用します。
    • -syspwf: SYS暗号化パスワード・ファイル
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone snap -sdbname TSTMSTR -tdbname TSTDEV -tdbhome OraDB12102_home2 -racmod 0 -syspwf /opt/gDBClone/SYS.password
  2. スナップショット後作成スクリプトのSQLを実行して、外部参照を有効にします。
    
    SQL> /u01/app/oracle/product/12.1.0.2/dbhome_2/enable_external_refs_TSTDEV_jTEm.sql
  3. データベースを再起動します。
    [oracle@tstmstr ~]$ srvctl stop database
          -d TSTMSTR[oracle@tstmstr ~]$ srvctl start database -d TSTMSTR
  4. スナップショット・データベースの環境を更新します。
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTDEV
    TSTDEV:
    [oracle@tstmstr ~]$ srvctl setenv database -d TSTDEV -envs "ORACLE_UNQNAME=TSTDEV,TZ=UTC"
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTDEV
    TSTDEV:
    ORACLE_UNQNAME=TSTDEV
    TZ=UTC
  5. スナップショット・データベースのTDEウォレットのステータスをチェックします。
    ユーティリティによって、TDEウォレット・ファイルがテスト・マスターからスナップショット・データベースに自動的にコピーされます。
    SQL> set linesize 180
    SQL> col wrl_parameter format a80
    SQL> 
    SQL> select * from v$encryption_wallet;
    
    WRL_TYPW  WRL_PARAMETER					    STATUS   WALLET_TYPE  WALLET_OR FULLY_BAC CON_ID
    -------- --------------------------------------------------  ------- ------------- --------- ----------- ------
    FILE	/opt/oracle/dcs/commonstore/wallets/tde/TSTDEV/    OPEN     UNKNOWN      SINGLE     NO         0
    SQL> 
  6. スナップショット・データベースの環境およびステータスを確認します。スナップショット・データベースを検証し、スナップの詳細を表示してパラメータが正しいことを確認します。
    スナップショットはREAD WRITEモードである必要があります。
    [oracle@tstmstr ~]$ . oraenv
    ORACLE_SID = [oracle] ? TSTDEV
    The Oracle base has been set to /u01/app/oracle
    [oracle@tstmstr ~]$ sqlplus / as sysdba
    
    SQL> select name,open_mode from v$database;
    
    SQL> select file_name from dba_data_files;
  7. データベースのリストを表示して、スナップショットがリストに表示されることを確認します。
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs
    Database Name    Database Type   Database Role      Master/Snapshot  Location/Parent
    -------------    -------------   -------------      ---------------  ---------------
    TSTDEV           SINGLE          PRIMARY            Snapshot         TSTMSTR        
    ORCL_iad1hb      SINGLE          PRIMARY            n/a              ASM            
    TSTMSTR          SINGLE          PRIMARY            Master           /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/
    データベースの親子関係を表示するには、-treeオプションを使用します。
    # /opt/gDBClone/gDBClone listdbs -tree
    Parent	Child
    ------	-----
    TSTMSTR
    	      TSTDEV
  8. (オプション)スナップショット・データベースのPDB名を変更します。
    スナップショットを作成すると、スナップショット・データベースと本番データベースのPDB名が同じになります。開発およびテスト環境の場合、スナップショット・データベースのPDB名を環境に一致するように変更できます。たとえば、Pdb 1をPDBDEVに変更します。
    
    [oracle@tstmstr ~]$ sqlplus / as sysdba
    
    SQL*Plus: Release 12.1.0.2.0 Production on Thu Oct 3 07:52:30 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> select name,open_mode from v$database;
    
    NAME	  OPEN_MODE
    --------- --------------------
    TSTDEV   READ WRITE
    
    SQL> alter pluggable database PDB1 close immediate;
    
    Pluggable database altered.
    
    SQL> alter pluggable database PDB1 open restricted;
    
    Pluggable database altered.
    
    SQL> alter session set container=PDB1;
    
    Session altered.
    
    SQL> alter pluggable database PDB1 rename global_name to PDBDEV;
    
    Pluggable database altered.
     
    SQL> connect / as sysdba
    Connected.
    SQL> show pdbs
    
        CON_ID CON_NAME		       OPEN MODE  RESTRICTED
    ---------- ---------------------------- ---------- ----------
    	 2 PDB$SEED			  MOUNTED
    	 3 PDBDEV			    READ WRITE YES
    SQL> alter pluggable database PDBDEV close immediate;
    
    Pluggable database altered.
    
    SQL> alter pluggable database PDBDEV open;
    
    Pluggable database altered.
    
    SQL> show pdbs
    
        CON_ID CON_NAME			  OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
    	 2 PDB$SEED			  MOUNTED
    	 3 PDBDEV			  READ WRITE NO
    
必要に応じて追加のスナップショットを作成し、PDB名を変更して環境を反映できます。

スナップショット・データベースのリストの表示

Oracle ASMクラスタ・ファイルシステム(Oracle ACFS)上のスナップショット・データベースの詳細(作成日、場所およびスナップショットに割り当てられる記憶域の量など)を表示します。

詳細が少ない場合は、スナップショットのリストおよび関連付けられたテスト・マスターを表示できます。この例では、TSTMSTRはテスト・マスター・サーバーで、スナップショット・データベースはtstddevです。
  1. テスト・マスター・サーバーにopcとしてログインし、sudoをルートにログインします。
  2. Oracle ACFS上のスナップショット・データベースを表示します。
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listsnaps -dataacfs /u02/app/oracle/oradata/TSTMSTR 
    snapshot name: TSTMSTR
    snapshot location: /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/TSTMSTR
    RO snapshot or RW snapshot: RW
    parent name: /u02/app/oracle/oradata/TSTMSTR
    snapshot creation time: Wed Oct  9 07:42:06 2019
    file entry table allocation: 8650752 ( 8.25 MB )
    storage added to snapshot:   4295647232 ( 4.00 GB )
    
    snapshot name: TSTDEV
    snapshot location: /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/TSTDEV
    RO snapshot or RW snapshot: RW
    parent name: TSTMSTR
    snapshot creation time: Wed Oct  9  07:58:14 2019
    file entry table allocation: 8650752   ( 8.25 MB )
    storage added to snapshot: 250892288   ( 239.27 MB )    
    number of snapshots: 2    
    snapshot space usage: 4550168576  ( 4.24 GB )
    [root@tstmstr gDBClone]#
        
  3. (オプション) listdbsコマンドを使用してデータベースのリストを表示するか、listdbs -treeコマンドを使用してテスト・マスター・データベースおよび関連するスナップ・クローン・データベースを表示します。
    listdbs -treeコマンドを使用すると、データベースがツリー形式で表示され、親データベースと子データベースの関係が示されます。
    
    [root@sdbm1 gDBClone]# /opt/gDBClone/gDBClone listdbs -tree
    Parent  Child
    ------  -----
    SDBM2
            SDBC1
    

スナップショット・データベースの削除

スナップショット・データベースを削除および登録解除します。

テスト・マスターから新しいスナップショットを作成するには、既存のスナップショットを削除し、本番データベースのクローンを作成するように構成した方法を使用して新しいスナップショットを作成します。
  1. テスト・マスター・サーバーにopcとしてログインし、sudoをルートにログインします。
  2. スナップショット・データベースを削除および登録解除します。データベースの削除(削除)を確認する場合は、「Y」と入力します。
    -forceオプションを使用しない場合、Oracle Database Configuration Assistant (DBCA)はデータベースを削除します。
    [root@tstmstr gDBClone]# /opt/gDBClone deldb -tdbname TESTDEV -syspwf /opt/gDBClone/SYS.password -force
  3. (オプション)データベースのリストを表示し、削除されたデータベースがリストに表示されないことを確認します。
    root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs