管理您的快照資料庫

管理您的快照資料庫,以使用最新的精簡型複製資料庫,並刪除過時的快照。

建立快照資料庫

從「測試主要資料庫」建立快照資料庫。

如果「測試主要資料庫」是實體待命資料庫,「測試主要資料庫」必須為「已掛載」狀態。如果位於「唯讀」模式,請在建立快照資料庫之前,將它變更成「已掛載」。使用 RMAN 作用中的重複或 RMAN 備份建立「測試主要資料庫」時,不需要輸入此選項。
  1. 定義參數並建立快照資料庫。
    請使用下列 gDBClone 選項來定義快照:
    • -sdbname:來源資料庫名稱
    • -tdbname:目標資料庫名稱
    • -tdbhome:目標資料庫本位目錄
    • -racmodOracle 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 名稱以符合環境。例如,將 PDB1 變更為 pdbdv。
    
    [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 是「測試主要伺服器」,而快照資料庫為 TSTDEV。
  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 命令顯示「測試主要資料庫」和相關的 Snap Clone 資料庫。
    如果您使用 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