Créer une base de données maître de test

Déterminez la meilleure méthode de clonage des données pour chaque environnement de développement et de test en fonction de la fréquence et de la vitesse de mise à jour des informations.

Passez en revue les instructions de fréquence d'actualisation des données suivantes afin de vous aider à déterminer la meilleure méthode de clonage de votre base de données de production pour créer votre base de données maître de test :

  • Achats fréquents (quotidiens, hebdomadaires) : création d'un maître de test en tant que base de données de secours physique
  • Régénérations régulières (par quinzaine ou mensuelle) : créez un maître de test à partir d'une base de données active à l'aide de RMAN DUPLICATE
  • Régénération occasionnelle (trimestrielle, semestrielle) : créez un maître de test à l'aide de la sauvegarde complète de la base de données RMAN

Création d'une base de données maître de test en tant que base de données de secours physique

Créez une base de données maître de test qui est une base de données de secours physique lorsque vous devez toujours être synchronisé avec la production.

La base de données de secours physique est le maître de test utilisé pour créer des clichés, n'utilisez pas le maître de test pour la récupération après sinistre. Les clichés sont créés sur le même serveur que le maître de test sur Oracle ACFS.

Cet exemple utilise Oracle Database version 12.1.0.2 avec les noms suivants :

  • Instance de base de données de production source : PRODDB (le nom de la base de données pluggable est PDB1)
  • Tester l'instance de base de données maître : TSTMSTR (le nom de base de données pluggable est PDB1)
Ajoutez l'entrée de nom d'hôte maître de test au répertoire /etc/hosts de la base de données de production, configurez les ports sur le maître de test et configurez Oracle Data Guard entre les bases de données maître de production et de test.
  1. Clonez la base de données de production pour créer un maître de test en tant que base de données de secours physique.

    Utilisez les options gDBClone suivantes pour créer une base de données de secours physique :

    • -sdbname : nom de la base de données source
    • -sdbscan : nom SCAN d'hôte de base de données source
    • -sdbport : port d'écoute SCAN source (par défaut, 1521)
    • -tdbname : nom de la base de données cible
    • -tdbhome : répertoire de base de la base de données cible
    • -tdbport : port de processus d'écoute SCAN cible (valeur par défaut : 1521)
    • -racmod : type Oracle RAC, utilisez 0 pour une base de données mono-instance Oracle
    • -dataacfs : fichiers de données de base de données cible de stockage Oracle ACFS
    • -redoacfs : fichier de journalisation de base de données cible Stockage Oracle ACFS (par défaut dataacfs)
    • -recoacfs : stockage Oracle ACFS de cible de récupération de base de données (par défaut dataacfs)
    • -channels : canaux alloués à RMAN (valeur par défaut : 3)
    • -standby : le clone (snap) est une base de données de secours physique.
    • -pmode : les options de mode de secours sont maxperf, maxavail et maxprot (valeur par défaut : maxperf)
    • -activedg : Activer Active Data Guard
    • -syspwf : fichier de mots de passe cryptés SYS
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone clone -sdbname PRODDB_iad1df.bass1.ebsvcn.examplevcn.com -sdbscan proddb.bass1.ebsvcn.examplevcn.com sdbport 1521 -tdbname TSTMSTR -tdbhome OraDB12102_home2 -tdomain bass1.ebsvcn.examplevcn.com -tdbport 1521 -racmod 0 -dataacfs /u02/app/oracle/oradata/TSTMSTR -redoacfs /u03/app/oracle/redo -recoacfs /u03/app/oracle/fast_recovery_area -channels 2 -standby -pmode maxperf -activedg -rtapply -noping -syspwf /opt/gDBClone/SYS.password
  2. Vérifiez que les informations sur la base de données maître de test sont exactes.
    [oracle@tstmstr TSTMSTR]$ cat /etc/oratab|grep -i TSTMSTR
  3. Affichez la liste des bases de données à l'aide de la commande gDBClone listdbs pour confirmer que le rôle et l'emplacement sont corrects pour la base de données de secours.
    Utilisez la commande gDBClone listdbs -tree pour afficher les relations parent-enfant.
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs
    Database Name    Database Type   Database Role      Master/Snapshot  Location/Parent
    -------------    -------------   -------------      ---------------  ---------------
    ORCL_iad1hb      SINGLE          PRIMARY            n/a              ASM            
    TSTMSTR          SINGLE          PHYSICAL_STANDBY   Master           /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/
    
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs -tree
    Parent	Child
    ------	-----
    TSTMSTR
  4. Définissez les variables d'environnement de cluster pour le maître de test.
    Configurez le maître de test en tant que base de données de secours physique en lecture seule.
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    [oracle@tstmstr ~]$ 
    [oracle@tstmstr ~]$ srvctl setenv database -d TSTMSTR -envs "ORACLE_UNQNAME=TSTMSTR,TZ=UTC"
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    ORACLE_UNQNAME=TSTMSTR
    TZ=UTC
    [oracle@tstmstr ~]$ 
    
    [oracle@tstmstr ~]$ . oraenv
    ORACLE_SID = [oracle] ? TSTMSTR
    The Oracle base has been set to /u01/app/oracle
    [oracle@tstmstr ~]$ srvctl config database -d TSTMSTR
    Database unique name: TSTMSTR
    Database name: 
    Oracle home: /u01/app/oracle/product/12.1.0.2/dbhome_2
    Oracle user: oracle
    Spfile: /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/TSTMSTR/TSTMSTR/spfileTSTMSTR.ora
    Password file: 
    Domain: bass1.ebsvcn.examplevcn.com
    Start options: read only
    Stop options: immediate
    Database role: PHYSICAL_STANDBY
    Management policy: AUTOMATIC
    Server pools: 
    Disk Groups: 
    Mount point paths: /u02/app/oracle/oradata/TSTMSTR,/u03/app/oracle/
    Services: 
    Type: SINGLE
    OSDBA group: dba
    OSOPER group: dbaoper
    Database instance: TSTMSTR
    Configured nodes: tstmstr
    Database is administrator managed
    [oracle@tstmstr ~]$
  5. Redémarrez la base de données maître de test.
    
    [oracle@tstmstr ~]$ srvctl stop database -d TSTMSTR
    [oracle@tstmstr ~]$ srvctl start database -d TSTMSTR
  6. Vérifiez le statut du portefeuille TDE dans la base de données maître de test.
    Le statut du portefeuille doit être OPEN et le type de portefeuille doit être AUTOLOGIN.
    [oracle@tstmstr ~]$ export 
    ORACLE_UNQNAME=TSTMSTR
    [oracle@tstmstr ~]$ sqlplus / as sysdba
    SQL*Plus: Release 12.1.0.2.0 Production on Thu Sep 30 06:44:14 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> set linesize 180
    SQL> col wrl_parameter format a80
    SQL> select * from v$encryption_wallet;
    
    WRL_TYPE   WRL_PARAMETER                                      STATUS       WALLET_TYPE  WALLET_OR  FULLY_BAC   CON_ID
    --------  ------------ -------------------------------------  -----------  -----------  ---------  ---------   -------
    FILE      /opt/oracle/dcs/commonstore/wallets/tde/TSTMSTR/    OPEN         AUTOLOGIN    SINGLE     NO         0
    
  7. Vérifiez le statut de la base de données maître de test.
    SQL> select name,open_mode,database_role from v$database;
    
    NAME	  OPEN_MODE	       DATABASE_ROLE
    --------- -------------------- ----------------
    PRODDB	  MOUNTED	       PHYSICAL STANDBY
    
    SQL> show pdbs
    
        CON_ID CON_NAME			  OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
    	 2 PDB$SEED			  MOUNTED
    	 3 PDB1 			     MOUNTED
    
  8. Vérifiez que la base de données de secours physique est synchronisée avec la production.
    Vous pouvez changer de fichier journal en production et vérifier si redo est transporté et appliqué à la base de données maître de test.
    SQL> select sequence#,archived,applied from v$archived_log order by sequence#;
    
La base de données maître de test est une base de données de secours physique et synchronisée avec la base de données de production. Vous pouvez créer un cliché de la base de données à tout moment.

Création d'une base de données maître de test à partir d'une base de données active

Créez un clone de base de données à partir d'une base de données de production en ligne à l'aide d'Oracle Recovery Manager (RMAN) Active Duplication lorsque vous devez actualiser régulièrement un environnement de test.

Cet exemple utilise Oracle Database version 12.1.0.2 avec les noms suivants :

  • Instance de base de données de production source : PRODDB (le nom de la base de données pluggable est PDB1)
  • Tester l'instance de base de données maître : TSTMSTR (le nom de base de données pluggable est PDB1)
Ajoutez le maître de test à l'annuaire, configurez le port et configurez Oracle Data Guard sur l'instance de base de données de production.
  1. Créez une base de données maître de test à l'aide de la duplication active RMAN.

    Utilisez les options gDBClone suivantes pour créer une base de données de secours physique :

    • -sdbname : nom de la base de données source
    • -sdbscan : nom SCAN d'hôte de base de données source
    • -sdbport : port d'écoute SCAN source (par défaut, 1521)
    • -tdbname : nom de la base de données cible
    • -tdbhome : répertoire de base de la base de données cible
    • -tdbport : port de processus d'écoute SCAN cible (valeur par défaut : 1521)
    • -racmod : type Oracle RAC, utilisez 0 pour une base de données mono-instance Oracle
    • -dataacfs : fichiers de données de base de données cible de stockage Oracle ACFS
    • -redoacfs : fichier de journalisation de base de données cible Stockage Oracle ACFS (par défaut dataacfs)
    • -recoacfs : stockage Oracle ACFS de cible de récupération de base de données (par défaut dataacfs)
    • -channels : canaux alloués à RMAN (valeur par défaut : 3)
    • -standby : le clone (snap) est une base de données de secours physique.
    • -pmode : les options de mode de secours sont maxperf, maxavail et maxprot (valeur par défaut : maxperf)
    • -activedg : Activer Active Data Guard
    • -syspwf : fichier de mots de passe cryptés SYS
    root@tstmstr gDBClone]# /opt/gDBClone/gDBClone clone -sdbname PRODDB_iad1df.bassubad1.ebsvcn.oraclevcn.com -sdbscan proddb.bassubad1.ebsvcn.oraclevcn.com sdbport 1521 -tdbname TSTMSTR -tdbhome OraDB12102_home2 -tdomain bassubad1.ebsvcn.oraclevcn.com -tdbport 1521 -racmod 0 -dataacfs /u02/app/oracle/oradata/TSTMSTR -redoacfs /u03/app/oracle/redo -recoacfs /u03/app/oracle/fast_recovery_area -channels 2 -noping -syspwf /opt/gDBClone/SYS.password
    
  2. Vérifiez que les informations sur la base de données maître de test sont exactes.
    [oracle@tstmstr TSTMSTR]$ cat /etc/oratab|grep -i TSTMSTR
  3. Affichez la liste des bases de données à l'aide de la commande gDBClone listdbs pour confirmer que le rôle et l'emplacement sont corrects pour la base de données de secours.
    Utilisez la commande gDBClone listdbs -tree pour afficher les relations parent-enfant.
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs
    Database Name    Database Type   Database Role      Master/Snapshot  Location/Parent
    -------------    -------------   -------------      ---------------  ---------------
    ORCL_iad1hb      SINGLE          PRIMARY            n/a              ASM            
    TSTMSTR          SINGLE          PRIMARY            Master           /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/
    
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs -tree
    Parent	Child
    ------	-----
    TSTMSTR
  4. Définissez les variables d'environnement de cluster pour le maître de test.
    Configurez le maître de test en tant que base de données de secours physique en lecture seule.
    
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    [oracle@tstmstr ~]$ 
    [oracle@tstmstr ~]$ srvctl setenv database -d TSTMSTR -envs "ORACLE_UNQNAME=TSTMSTR,TZ=UTC"
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    ORACLE_UNQNAME=TSTMSTR
    TZ=UTC
    [oracle@tstmstr ~]$ 
    
    [oracle@tstmstr ~]$ . oraenv
    ORACLE_SID = [oracle] ? TSTMSTR
    The Oracle base has been set to /u01/app/oracle
    [oracle@tstmstr TSTMSTR]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    ORACLE_UNQNAME=TSTMSTR
    TZ=UTC
    [oracle@tstmstr TSTMSTR]$ srvctl config database -d TSTMSTR
    Database unique name: TSTMSTR
    Database name: 
    Oracle home: /u01/app/oracle/product/12.1.0.2/dbhome_2
    Oracle user: oracle
    Spfile: /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/TSTMSTR/TSTMSTR/spfileTSTMSTR.ora
    Password file: 
    Domain: 
    Start options: open
    Stop options: immediate
    Database role: PRIMARY
    Management policy: AUTOMATIC
    Server pools: 
    Disk Groups: 
    Mount point paths: /u02/app/oracle/oradata/TSTMSTR,/u03/app/oracle/
    Services: 
    Type: SINGLE
    OSDBA group: dba
    OSOPER group: dbaoper
    Database instance: TSTMSTR
    Configured nodes: tstmstr
    Database is administrator managed
    [oracle@tstmstr TSTMSTR]$ 
    
  5. Redémarrez la base de données maître de test.
    [oracle@tstmstr ~]$ srvctl stop database -d TSTMSTR
    [oracle@tstmstr ~]$ srvctl start database -d TSTMSTR
  6. Vérifiez le statut du portefeuille Transparent Data Encryption (TDE) dans la base de données maître de test.
    Le statut du portefeuille doit être OPEN et le type de portefeuille doit être AUTOLOGIN.
    [oracle@tstmstr ~]$ export ORACLE_UNQNAME=TSTMSTR
    [oracle@tstmstr ~]$ sqlplus / as sysdba
    SQL*Plus: Release 12.1.0.2.0 Production on Thu Sep 30 06:44:14 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> set linesize 180
    SQL> col wrl_parameter format a80
    SQL> select * from v$encryption_wallet;
    
    WRL_TYPE   WRL_PARAMETER					   STATUS	WALLET_TYPE   WALLET_OR   FULLY_BAC   CON_ID
    --------   -------------------------------------------------  ----------- -------------  ---------   ----------- -------
    FILE	/opt/oracle/dcs/commonstore/wallets/tde/TSTMSTR/   OPEN	 AUTOLOGIN      SINGLE      NO	   0
    
  7. Vérifiez le statut de la base de données maître de test et assurez-vous que les bases de données pluggables (PDB) sont montées.
    SQL> select name,open_mode,database_role from v$database;
    
    NAME	  OPEN_MODE	       DATABASE_ROLE
    --------- -------------------- ----------------
    TSTMSTR   READ WRITE	       PRIMARY
    
    SQL> show pdbs
    
        CON_ID CON_NAME			  OPEN MODE  RESTRICTED
    ---------- ------------------------------ ---------- ----------
    	 2 PDB$SEED			  MOUNTED
    	 3 PDB1 			     MOUNTED
    
Lorsque le maître de test est disponible, vous pouvez créer une base de données de clone léger (cliché). Lorsque le maître de test est obsolète, actualisez la base de données maître de test clone à partir de la base de données de production avant de créer un cliché.

Création d'une base de données maître de test à partir d'une sauvegarde de base de données complète

Créez une copie de sauvegarde complète de votre base de données de production source sur le service Oracle Cloud Infrastructure File Storage lorsque votre maître de test exige des régénérations ponctuelles. Créez la sauvegarde avec la duplication active Oracle Recovery Manager (RMAN) et montez-la sur le serveur maître de test.

Cet exemple utilise Oracle Database version 12.1.0.2 avec les noms suivants :

  • Instance de base de données de production source : PRODDB (le nom de la base de données pluggable est PDB1)
  • Tester l'instance de base de données maître : TSTMSTR (le nom de base de données pluggable est PDB1)
  1. Créer une sauvegarde de base de données de production en configurant l'environnement clone et en clonant la base de données à l'aide de RMAN.
    Utilisez les options gDBClone suivantes :
    • -sdbname : nom de la base de données source
    • -sbckloc : emplacement de sauvegarde complète RMAN source
    • -tdbname : nom de la base de données cible
    • -tdbhome : répertoire de base de la base de données cible
    • -sdbport : port d'écoute SCAN source (par défaut, 1521)
    • -racmod : modèle Oracle Real Application Clusters (Oracle RAC), utilisez 0 pour une base de données à instance unique Oracle
    • -dataacfs : stockage des fichiers de données cible de la base de données Oracle ASM Cluster File System (Oracle ACFS)
    • -redoacfs : la base de données redo consigne le stockage Oracle ACFS cible (valeur par défaut : dataacfs)
    • -recoacfs : stockage Oracle ACFS de cible de récupération de base de données (par défaut dataacfs)
    • -channels : canaux alloués à RMAN (valeur par défaut : 3)
    • -syspwf : fichier de mots de passe cryptés SYS
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone clone -sdbname TSTMSTR -sbckloc '/mnt/fss/dbbackup'  -tdbname TSTDEV -tdbhome OraDB12102_home2 -tdbport 1521 -racmod 0 -dataacfs /u02/app/oracle/oradata/TSTMSTR -redoacfs /u03/app/oracle/redo -recoacfs /u03/app/oracle/fast_recovery_area -channels 2 -noping -syspwf /opt/gDBClone/SYS.password
    Le script valide la configuration, configure l'environnement clone et crée une base de données clone.
  2. Vérifiez que les informations sur la base de données maître de test sont exactes.
    [oracle@tstmstr TSTMSTR]$ cat /etc/oratab|grep -i TSTMSTR
    
  3. Affichez la liste des bases de données à l'aide de la commande gDBClone listdbs pour confirmer que le rôle et l'emplacement sont corrects pour la base de données de secours.
    Utilisez la commande gDBClone listdbs -tree pour afficher les relations parent-enfant.
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs
    Database Name    Database Type   Database Role      Master/Snapshot  Location/Parent
    -------------    -------------   -------------      ---------------  ---------------
    ORCL_iad1hb      SINGLE          PRIMARY            n/a              ASM            
    TSTMSTR          SINGLE          PRIMARY            Master           /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/
    [root@tstmstr gDBClone]# 
    
    [root@tstmstr gDBClone]# /opt/gDBClone/gDBClone listdbs -tree
    Parent	Child
    ------	-----
    TSTMSTR
    
  4. Définissez les paramètres d'environnement de cluster pour la base de données maître de test.
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    [oracle@tstmstr ~]$ 
    [oracle@tstmstr ~]$ srvctl setenv database -d TSTMSTR -envs "ORACLE_UNQNAME=TSTMSTR,TZ=UTC"
    [oracle@tstmstr ~]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    ORACLE_UNQNAME=TSTMSTR
    TZ=UTC
    [oracle@tstmstr ~]$ 
    
    [oracle@tstmstr ~]$ . oraenv
    ORACLE_SID = [oracle] ? TSTMSTR
    The Oracle base has been set to /u01/app/oracle
    [oracle@tstmstr TSTMSTR]$ srvctl getenv database -d TSTMSTR
    TSTMSTR:
    ORACLE_UNQNAME=TSTMSTR
    TZ=UTC
    [oracle@tstmstr TSTMSTR]$ srvctl config database -d TSTMSTR
    Database unique name: TSTMSTR
    Database name: 
    Oracle home: /u01/app/oracle/product/12.1.0.2/dbhome_2
    Oracle user: oracle
    Spfile: /u02/app/oracle/oradata/TSTMSTR/.ACFS/snaps/TSTMSTR/TSTMSTR/spfileTSTMSTR.ora
    Password file: 
    Domain: 
    Start options: open
    Stop options: immediate
    Database role: PRIMARY
    Management policy: AUTOMATIC
    Server pools: 
    Disk Groups: 
    Mount point paths: /u02/app/oracle/oradata/TSTMSTR,/u03/app/oracle/
    Services: 
    Type: SINGLE
    OSDBA group: dba
    OSOPER group: dbaoper
    Database instance: TSTMSTR
    Configured nodes: tstmstr
    Database is administrator managed
    [oracle@tstmstr TSTMSTR]$ 
    
  5. Redémarrer la base de données maître de test
    
    [oracle@tstmstr ~]$ srvctl stop database -d TSTMSTR
    [oracle@tstmstr ~]$ srvctl start database -d TSTMSTR
  6. Vérifiez le statut du portefeuille Transparent Data Encryption (TDE) dans la base de données maître de test.
    Le portefeuille doit être OPEN avec AUTOLOGIN.
    [oracle@tstmstr ~]$ export ORACLE_UNQNAME=TSTMSTR
    [oracle@tstmstr ~]$ sqlplus / as sysdba
    SQL*Plus: Release 12.1.0.2.0 Production on Thu Sep 30 06:44:14 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> set linesize 180
    SQL> col wrl_parameter format a80
    SQL> select * from v$encryption_wallet;
    
    WRL_TYPE    WRL_PARAMETER					    STATUS	WALLET_TYPE	   WALLET_OR  FULLY_BAC   CON_ID
    --------    -------------------------------------------------   ----------- -------------------- ---------   ----------- -------
    FILE	 /opt/oracle/dcs/commonstore/wallets/tde/TSTMSTR/    OPEN	 AUTOLOGIN	      SINGLE     NO	   0
    
  7. Vérifiez le statut de la base de données maître de test et assurez-vous que les bases de données pluggables sont montées.
    La base de données TSTMSTR doit être en mode lecture/écriture et a l'état MOUNTED.
    SQL> select name,open_mode,database_role from v$database;
    
    NAME	  OPEN_MODE	  DATABASE_ROLE
    --------- -------------------- ----------------
    TSTMSTR   READ WRITE	    PRIMARY
    SQL> 
    SQL> show pdbs
    
        CON_ID CON_NAME			 OPEN MODE  RESTRICTED
    ---------- ----------------------------- ---------- ----------
    	 2 PDB$SEED			  MOUNTED
    	 3 PDB1 			     MOUNTED
    
La base de données maître de test est une copie de sauvegarde complète de la base de données de production source.
Créez un cliché de la base de données. Lorsque le maître de test est obsolète, régénérez la base de données maître de test de sauvegarde à partir de la base de données de production avant de créer un cliché.