管理快照数据库

管理快照数据库以使用最新的瘦克隆数据库并删除过时的快照。

创建快照数据库

从测试主项目创建快照数据库。

如果测试主项目是物理备用数据库 , 则测试主项目数据库必须处于已装载状态。如果处于“只读”模式,则在创建快照数据库之前将其更改为“已装载”。当使用来自生产的 RMAN 活动复制或 RMAN 备份创建测试主项目时,不需要此项。
  1. 定义参数并创建快照数据库。
    使用以下 gDBClone 选项定义快照:
    • -sdbname:源数据库名称
    • -tdbname:目标数据库名称
    • -tdbhome:目标数据库主目录
    • -racmodOracle RAC 类型。用 0 表示 Oracle 单实例数据库。
    • -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 Wallet 状态。
    该实用程序自动将 TDE Wallet 文件从测试主项目复制到快照数据库。
    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 名称以与环境匹配。例如,将 Pdbs 更改为 pdba。
    
    [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