Snapshot-Datenbanken verwalten

Verwalten Sie Ihre Snapshot-Datenbanken, um die aktuelle Thin Clone-Datenbank zu verwenden und veraltete Snapshots zu löschen.

Snapshot-Datenbank erstellen

Erstellen Sie eine Snapshot-Datenbank aus dem Testmaster.

Wenn der Testmaster eine physische Standbydatenbank ist, muss sich die Testmasterdatenbank im Status MOUNTED befinden. Wenn er sich im Modus Schreibgeschützt befindet, setzen Sie ihn auf MOUNTED, bevor Sie eine Snapshot-Datenbank erstellen. Dies ist nicht erforderlich, wenn der Testmaster mit aktiver RMAN-Duplizierung oder RMAN-Backup aus der Produktionsumgebung erstellt wird.
  1. Definieren Sie die Parameter, und erstellen Sie eine Snapshot-Datenbank.
    Verwenden Sie die folgenden gDBClone-Optionen, um den Snapshot zu definieren:
    • -sdbname: Quelldatenbankname
    • -tdbname: Zieldatenbankname
    • -tdbhome: Standardverzeichnis der Zieldatenbank
    • -racmod: Oracle RAC-Typ. Verwenden Sie 0 für eine Oracle-Einzelinstanzdatenbank.
    • -syspwf: Mit SYS verschlüsselte Kennwortdatei
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone snap -sdbname TSTMSTR -tdbname TSTDEV -tdbhome OraDB12102_home2 -racmod 0 -syspwf /opt/gDBClone/SYS.password
  2. Führen Sie das Post-Snapshot-Erstellungsskript SQL aus, um externe Referenzen zu aktivieren.
    
    SQL> /u01/app/oracle/product/12.1.0.2/dbhome_2/enable_external_refs_TSTDEV_jTEm.sql
  3. Starten Sie die Datenbank neu.
    [oracle@tstmstr ~]$ srvctl stop database
          -d TSTMSTR[oracle@tstmstr ~]$ srvctl start database -d TSTMSTR
  4. Aktualisieren Sie die Umgebung für die Snapshot-Datenbank.
    [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. Prüfen Sie den TDE-Wallet-Status in der Snapshot-Datenbank.
    Das Utility kopiert automatisch die TDE-Wallet-Dateien aus dem Testmaster in die Snapshot-Datenbank.
    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. Prüfen Sie Umgebung und Status der Snapshot-Datenbank. Validieren Sie die Snapshot-Datenbank, und zeigen Sie Snap-Details an, um zu bestätigen, dass die Parameter korrekt sind.
    Der Snapshot muss sich im READ WRITE-Modus befinden.
    [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. Zeigen Sie eine Liste der Datenbanken an, um zu bestätigen, dass der Snapshot in der Liste angezeigt wird.
    [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/
    Um die übergeordnete/untergeordnete Beziehung der Datenbanken anzuzeigen, verwenden Sie die Option -tree.
    # /opt/gDBClone/gDBClone listdbs -tree
    Parent	Child
    ------	-----
    TSTMSTR
    	      TSTDEV
  8. (Optional) Ändern Sie den PDB-Namen der Snapshot-Datenbank.
    Wenn Sie einen Snapshot erstellen, haben die Snapshot-Datenbank und die Production-Datenbank denselben PDB-Namen. Für Entwicklungs- und Testumgebungen können Sie den PDB-Namen der Snapshot-Datenbank so ändern, dass er mit der Umgebung übereinstimmt. Beispiel: Ändern Sie PDB1 in 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
    
Sie können nach Bedarf zusätzliche Snapshots erstellen und die PDB-Namen umbenennen, um die Umgebung wiederzugeben.

Liste der Snapshot-Datenbanken anzeigen

Zeigen Sie Details zu den Snapshot-Datenbanken in Oracle ASM Cluster File System (Oracle ACFS) an, einschließlich Erstellungsdatum, Speicherort und Umfang des Speichers, der dem Snapshot zugewiesen ist.

Für weniger Details können Sie eine Liste der Snapshots und den zugehörigen Testmaster anzeigen. In diesem Beispiel ist TSTMSTR der Testmasterserver und die Snapshot-Datenbank ist TSTDEV.
  1. Melden Sie sich bei dem Testmasterserver als opc und dann als sudo bei Root an.
  2. Zeigen Sie die Snapshot-Datenbanken in Oracle ACFS an.
    [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. (Optional) Zeigen Sie eine Liste mit Datenbanken mit dem Befehl listdbs an, oder verwenden Sie den Befehl listdbs -tree, um eine Testmasterdatenbank und die zugehörigen Snap Clone-Datenbanken anzuzeigen.
    Wenn Sie den Befehl listdbs -tree verwenden, werden die Datenbanken in einem Baumformat angezeigt, in dem die Beziehung zwischen über- und untergeordneten Datenbanken angegeben wird.
    
    [root@sdbm1 gDBClone]# /opt/gDBClone/gDBClone listdbs -tree
    Parent  Child
    ------  -----
    SDBM2
            SDBC1
    

Snapshot-Datenbank löschen

Löschen Sie eine Snapshot-Datenbank, und heben Sie die Registrierung auf.

Um einen neuen Snapshot aus dem Testmaster zu erstellen, löschen Sie den vorhandenen Snapshot und erstellen einen neuen Snapshot mit der Methode, die Sie für das Klonen der Produktionsdatenbank konfiguriert haben.
  1. Melden Sie sich bei dem Testmasterserver als opc und dann als sudo bei Root an.
  2. Löschen Sie die Snapshot-Datenbank, und heben Sie die Registrierung auf. Geben Sie Y ein, um zu bestätigen, dass Sie die Datenbank löschen oder löschen möchten.
    Wenn Sie die Option -force nicht verwenden, löscht Oracle Database Configuration Assistant (DBCA) die Datenbank.
    [root@tstmstr gDBClone]# /opt/gDBClone deldb -tdbname TESTDEV -syspwf /opt/gDBClone/SYS.password -force
  3. (Optional) Zeigen Sie eine Liste mit Datenbanken an, und bestätigen Sie, dass die gelöschte Datenbank nicht in der Liste angezeigt wird.
    root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs