Gestione dei database snapshot

Gestire i database snapshot per utilizzare il database thin clone più recente ed eliminare gli snapshot obsoleti.

Crea un database snapshot

Creare un database snapshot dal database principale di test.

Se il database principale di test è un database in standby fisico, lo stato del database principale di test deve essere MOUNTED. Se è in modalità READ Only, modificarlo in MOUNTED prima di creare un database snapshot. Ciò non è necessario quando il database principale di test viene creato con la duplicazione attiva di RMAN o con il backup RMAN di produzione.
  1. Definire i parametri e creare un database snapshot.
    Utilizzare le seguenti opzioni gDBClone per definire lo snapshot:
    • -sdbname: nome del database di origine
    • -tdbname: nome del database di destinazione
    • -tdbhome: home page del database di destinazione
    • -racmod: tipo Oracle RAC. Utilizzare 0 per un database Oracle Single Instance.
    • -syspwf: password file cifrato SYS
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone snap -sdbname TSTMSTR -tdbname TSTDEV -tdbhome OraDB12102_home2 -racmod 0 -syspwf /opt/gDBClone/SYS.password
  2. Eseguire il codice SQL dello script di creazione successiva allo snapshot per abilitare i riferimenti esterni.
    
    SQL> /u01/app/oracle/product/12.1.0.2/dbhome_2/enable_external_refs_TSTDEV_jTEm.sql
  3. Riavviare il database.
    [oracle@tstmstr ~]$ srvctl stop database
          -d TSTMSTR[oracle@tstmstr ~]$ srvctl start database -d TSTMSTR
  4. Aggiornare l'ambiente per il database snapshot.
    [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. Controllare lo stato del wallet TDE nel database snapshot.
    La utility copia automaticamente i file del wallet TDE dal database principale di test al database snapshot.
    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. Controllare l'ambiente e lo stato del database dello snapshot. Convalidare il database snapshot e visualizzare i dettagli snapshot per confermare che i parametri sono corretti.
    Lo snapshot deve essere in modalità 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. Visualizzare una lista di database per confermare che lo snapshot viene visualizzato nella lista.
    [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/
    Per visualizzare la relazione padre/figlio dei database, utilizzare l'opzione -tree.
    # /opt/gDBClone/gDBClone listdbs -tree
    Parent	Child
    ------	-----
    TSTMSTR
    	      TSTDEV
  8. (Facoltativo) Modificare il nome PDB del database snapshot.
    Quando si crea uno snapshot, il database snapshot e il database di produzione hanno lo stesso nome PDB. Per gli ambienti di sviluppo e di test, è possibile modificare il nome del PDB del database snapshot in modo che corrisponda all'ambiente. Ad esempio, modificare 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
    
È possibile creare snapshot aggiuntivi, a seconda delle esigenze, e rinominare i nomi PDB in base all'ambiente.

Visualizza una lista di database snapshot

Visualizzare i dettagli dei database snapshot presenti nel file system cluster Oracle ASM (Oracle ACFS), inclusi la data di creazione, la posizione e la quantità di memoria allocata allo snapshot.

Per un numero minore di dettagli, è possibile visualizzare una lista di snapshot e il database principale di test associato. In questo esempio, TSTMSTR è il server principale di test e il database snapshot è TSTDEV.
  1. Accedere al server principale di test come opc, quindi sudo come root.
  2. Visualizza i database di snapshot presenti in 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. (Facoltativo) Visualizzare una lista di database utilizzando il comando listdbs oppure utilizzare il comando listdbs -tree per visualizzare un database principale di test e i database snap clone associati.
    Se si utilizza il comando listdbs -tree, i database vengono visualizzati in un formato struttura che mostra la relazione di database padre e figlio.
    
    [root@sdbm1 gDBClone]# /opt/gDBClone/gDBClone listdbs -tree
    Parent  Child
    ------  -----
    SDBM2
            SDBC1
    

Elimina database snapshot

Eliminare e annullare la registrazione di un database snapshot.

Per creare un nuovo snapshot dal database principale di test, eliminare lo snapshot esistente e crearne uno nuovo utilizzando il metodo configurato per copiare il database di produzione.
  1. Accedere al server principale di test come opc, quindi sudo come root.
  2. Eliminare e annullare la registrazione del database snapshot. Inserire Y per confermare che si desidera eliminare o eliminare il database.
    Se non si utilizza l'opzione -force, Oracle Database Configuration Assistant (DBCA) elimina il database.
    [root@tstmstr gDBClone]# /opt/gDBClone deldb -tdbname TESTDEV -syspwf /opt/gDBClone/SYS.password -force
  3. (Facoltativo) Visualizzare un elenco di database e confermare che il database eliminato non appare nell'elenco.
    root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs