Terminer la configuration

Configurez Oracle Data Guard, enregistrez la base de données de secours et synchronisez les mots de passe de base de données sur site et de secours.

Configurer Oracle Data Guard Broker

Configurez Oracle Data Guard en activant le paramètre dg_broker_config_file sur les bases de données principales et de secours. Pour Oracle Automatic Storage Management (Oracle ASM), placez les fichiers de configuration de broker sur des groupes de disques distincts. Pour Oracle Real Application Clusters (Oracle RAC), les fichiers de configuration de broker doivent être sur un stockage partagé.

  1. Vérifiez la valeur dg_broker_start de l'hôte de base de données sur site. Il doit être défini sur false.
    SQL> show parameter dg_broker_start;
    La sortie ressemblera à ce qui suit :
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		FALSE 
  2. Dans Oracle Database Exadata Cloud Service de secours, vérifiez les fichiers de configuration Oracle Data Guard.
    SQL> show parameter dg_broker_config_file1;
    Voici un exemple de sortie :
    NAME                                 TYPE         VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file1               string       /u02/app/oracle/product/19.0.0.0/dbhome_5/dbs/dr1DB1_phx3g7.dat
    SQL> show parameter dg_broker_config_file2;
    Voici un exemple de sortie :
    NAME                                  TYPE         VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file2                string /u02/app/oracle/product/19.0.0.0/dbhome_5/dbs/dr2DB1_phx3g7.dat
  3. Affichez les fichiers de données, puis modifiez l'emplacement vers lequel vous souhaitez stocker les fichiers. Par exemple, Oracle ASM, Oracle RAC ou des périphériques.
    SQL> select name from v$datafile;
    NAME
    --------------------------------------------------------------------------------
    +DATAC1/DB1_PHX3G7/DATAFILE/system.348.1063638053
    +DATAC1/DB1_PHX3G7/DATAFILE/sysaux.349.1063638055
    +DATAC1/DB1_PHX3G7/DATAFILE/undotbs1.350.1063638057
    +DATAC1/DB1_PHX3G7/DATAFILE/undotbs2.351.1063638057
    +DATAC1/DB1_PHX3G7/DATAFILE/users.352.1063638059
    SQL> alter system set dg_broker_config_file1='+DATAC1/DB1_PHX3G7/dr1DB1_phx3g7.dat';
    SQL> alter system set dg_broker_config_file2='+RECOC1/DB1_PHX3G7/dr2DB1_phx3g7.dat';
  4. Dans l'Oracle Exadata Database Machine principal sur site, vérifiez les fichiers de configuration Oracle Data Guard.
    SQL> show parameter dg_broker_config_file1;
    Voici un exemple de sortie :
    NAME      TYPE      VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file1             string        /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr1db1.dat.dat
    SQL> show parameter dg_broker_config_file2;
    L'exemple suivant illustre la sortie :
    
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    dg_broker_config_file2                string /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr2db1.dat
  5. Affichez les fichiers de données, puis modifiez l'emplacement où vous souhaitez stocker les fichiers.
    SQL> select name from v$datafile;
    L'exemple suivant illustre la sortie :
    NAME
    --------------------------------------------------------------------------------
    +DATAC1/DB1/DATAFILE/system.277.1063487795
    +DATAC1/DB1/DATAFILE/sysaux.270.1063487827
    +DATAC1/DB1/DATAFILE/undotbs1.259.1063487843
    +DATAC1/DB1/DATAFILE/undotbs2.275.1063487867
    +DATAC1/DB1/DATAFILE/users.269.1063487879
    Exécutez les commandes suivantes pour modifier l'emplacement du fichier de configuration :
    SQL> alter system set dg_broker_config_file1='+DATAC1/DB1/dr1db1.dat';
    SQL> alter system set dg_broker_config_file2='+RECOC1/DB1/dr2db1.dat';
    SQL> alter system set dg_broker_start=false;
    SQL> alter system set dg_broker_config_file1='+DATAC1/DB1/dr1db1.dat';
    SQL> alter system set dg_broker_config_file2='+RECOC1/DB1/dr2db1.dat';
  6. Dans l'Oracle Exadata Database Machine principal sur site, démarrez le processus Oracle Data Guard Broker.
    SQL> alter system set dg_broker_start=true;
    SQL> show parameter dg_broker_start 
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		TRUE
    SQL> select pname from v$process where pname like 'DMON%';
    PNAME 
    ----- 
    DMON 
  7. Démarrez le processus Oracle Data Guard Broker sur la base de données de secours.
    SQL> alter system set dg_broker_start=true; 
    SQL> show parameter dg_broker_start
    NAME 			TYPE 			VALUE 
    ------------------------------------ ----------- ------------------------------ 
    dg_broker_start 	boolean 		TRUE
    SQL> select pname from v$process where pname like 'DMON%';
    PNAME 
    ----- 
    DMON 

Inscrire la base de données de secours

Utilisez l'interface de ligne de commande Oracle Data Guard (DGMGRL) pour inscrire ou ajouter le profil de base de données de secours à la configuration du broker sur l'hôte principal sur site.

  1. Connectez-vous à l'hôte principal sous la forme sys.
    $ dgmgrl sys/sys password@net service name for primary database
  2. Créez une configuration utilisant le nom de la base de données principale.
    DGMGRL> CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary database name CONNECT IDENTIFIER IS primary database name;
    Par exemple :
    CREATE CONFIGURATION OnPremExaDR AS PRIMARY DATABASE IS DB1 CONNECT IDENTIFIER IS DB1;
  3. Ajoutez la base de secours.
    Assurez-vous que votre identificateur est le même que le nom du service, y compris le cas supérieur et le cas inférieur.
    DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL; 
    Par exemple :
    ADD DATABASE DB1_PHX3G7 AS CONNECT IDENTIFIER IS DB1_phx3g7 MAINTAINED AS PHYSICAL;
    Si vous recevez un message d'erreur ORA-16698, vérifiez que votre identificateur est identique au nom du service.

    Erreur : ORA-16698 : un paramètre LOG_ARCHIVE_DEST_n est associé à un jeu d'attributs SERVICE

  4. Modifiez l'état de destination de l'archive de journal.
    SQL> alter system set log_archive_dest_state_10='DEFER';
    SQL> alter system set log_archive_dest_10='';
  5. Vérifiez la destination d'archivage du journal.
    SQL> show parameter log_archive_dest;
    NAME                                TYPE           VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest                     string
    log_archive_dest_1                   string      LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=DB1_PHX3G7
    log_archive_dest_10                  string
    log_archive_dest_11                  string
    log_archive_dest_12                  string
    log_archive_dest_13                  string
    log_archive_dest_14                  string
    log_archive_dest_15                  string
    
    NAME                                 TYPE         VALUE
    ------------------------------------ ----------- ------------------------------
    log_archive_dest_16                  string
    log_archive_dest_17                  string
    log_archive_dest_18                  string
    log_archive_dest_19                  string
    log_archive_dest_2                   string     SERVICE=DB1 VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=DB1
    log_archive_dest_20                  string
    log_archive_dest_21                  string
    log_archive_dest_22                  string
    log_archive_dest_23                  string
  6. Activez la configuration.
    DGMGRL> enable configuration;
  7. Affichez la configuration.
    DGMGRL> show configuration;
    La sortie obtenue ressemble à ce qui suit :
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
        Warning: ORA-16809: multiple warnings detected for the member
        db1_phx3g7 - Physical standby database 
          Error: ORA-16532: Oracle Data Guard broker configuration does not 
    exist
    Fast-Start Failover:  Disabled
    Configuration Status:
    ERROR   (status updated 21 seconds ago)
  8. Dans Oracle Database Exadata Cloud Service de secours, connectez-vous pour vérifier la configuration.
    [oracle@exacs82-vm3sv1 ~]$ dgmgrl
    DGMGRL> connect
    Username: sys
    Password:
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
    DGMGRL> show configuration;
    Le résultat obtenu est semblable au résultat suivant :
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
        Warning: ORA-16809: multiple warnings detected for the member
        db1_phx3g7 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    Fast-Start Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 43 seconds ago

Copier les fichiers journaux de journalisation à partir de sites vers OCI

Copiez les fichiers journaux redo et les autres fichiers de base de données de la base de données sur site sur l'instance Oracle Cloud Infrastructure (OCI).

  1. Visualisez les fichiers de base de données sur site.
    select name from v$datafile;
    La sortie obtenue ressemble à ce qui suit :
    NAME
    --------------------------------------------------------------------------------
    +DATAC1/DB1/DATAFILE/system.277.1063487795
    +DATAC1/DB1/DATAFILE/sysaux.270.1063487827
    +DATAC1/DB1/DATAFILE/undotbs1.259.1063487843
    +DATAC1/DB1/DATAFILE/undotbs2.275.1063487867
    +DATAC1/DB1/DATAFILE/users.269.1063487879
  2. Affichez la taille de chaque groupe pour les fichiers de données sur site.
    select bytes, group# from v$log;
    La sortie obtenue ressemble à ce qui suit :
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    2
     209715200	    3
     209715200	    4
  3. Affichez les journaux redo des fichiers de données sur site.
    select member from v$logfile;
    La sortie obtenue ressemble à ce qui suit :
    MEMBER
    --------------------------------------------------------------------------------
    +DATAC1/DB1/ONLINELOG/group_2.272.1063449917
    +RECOC1/DB1/ONLINELOG/group_2.281.1063449917
    +DATAC1/DB1/ONLINELOG/group_1.273.1063449917
    +RECOC1/DB1/ONLINELOG/group_1.282.1063449919
    +DATAC1/DB1/ONLINELOG/group_3.268.1063450555
    +RECOC1/DB1/ONLINELOG/group_3.283.1063450557
    +DATAC1/DB1/ONLINELOG/group_4.261.1063450557
    +RECOC1/DB1/ONLINELOG/group_4.284.1063450557
  4. Ajoutez un groupe de fichiers de journalisation de secours pour chaque fichier de journalisation redo.
    Par exemple, si vous disposez de trois fichiers de journalisation redo, ajoutez trois groupes de fichiers de journalisation de secours.
    SQL> 
    alter database add standby logfile group 5 ('+DATAC1','+RECOC1');
    alter database add standby logfile group 6 ('+DATAC1','+RECOC1');
    alter database add standby logfile group 7 ('+DATAC1','+RECOC1');
  5. Visualisez les membres du fichier journal.
    SQL> select member from v$logfile;
    La sortie ressemblera à ce qui suit :
    MEMBER
    --------------------------------------------------------------------------------
    +DATAC1/DB1/ONLINELOG/group_2.272.1063449917
    +RECOC1/DB1/ONLINELOG/group_2.281.1063449917
    +DATAC1/DB1/ONLINELOG/group_1.273.1063449917
    +RECOC1/DB1/ONLINELOG/group_1.282.1063449919
    +DATAC1/DB1/ONLINELOG/group_5.264.1063812687
    +DATAC1/DB1/ONLINELOG/group_3.268.1063450555
    +RECOC1/DB1/ONLINELOG/group_3.283.1063450557
    +DATAC1/DB1/ONLINELOG/group_4.261.1063450557
    +RECOC1/DB1/ONLINELOG/group_4.284.1063450557
    +RECOC1/DB1/ONLINELOG/group_5.422.1063812687
    +DATAC1/DB1/ONLINELOG/group_6.262.1063812785
    +RECOC1/DB1/ONLINELOG/group_6.445.1063812785
    +DATAC1/DB1/ONLINELOG/group_7.263.1063812807
    +RECOC1/DB1/ONLINELOG/group_7.446.1063812807
  6. Affichez le numéro de groupe et les membres du fichier journal.
    SQL> select group#,member from v$logfile;
    La sortie ressemblera à ce qui suit :
    GROUP#                        MEMBER
    ------------      --------------------------------------------------
     2                +DATAC1/DB1/ONLINELOG/group_2.272.1063449917
     2                +RECOC1/DB1/ONLINELOG/group_2.281.1063449917
     1                +DATAC1/DB1/ONLINELOG/group_1.273.1063449917
     1                +RECOC1/DB1/ONLINELOG/group_1.282.1063449919
     5                +DATAC1/DB1/ONLINELOG/group_5.264.1063812687
     3                +DATAC1/DB1/ONLINELOG/group_3.268.1063450555
     3                +RECOC1/DB1/ONLINELOG/group_3.283.1063450557
     4                +DATAC1/DB1/ONLINELOG/group_4.261.1063450557
     4                +RECOC1/DB1/ONLINELOG/group_4.284.1063450557
     5                +RECOC1/DB1/ONLINELOG/group_5.422.1063812687
     6                +DATAC1/DB1/ONLINELOG/group_6.262.1063812785
     6                +RECOC1/DB1/ONLINELOG/group_6.445.1063812785
     7                +DATAC1/DB1/ONLINELOG/group_7.263.1063812807
     7                +RECOC1/DB1/ONLINELOG/group_7.446.1063812807
  7. Visualisez la configuration dans Oracle Data Guard.
    DGMGRL> show configuration
    La sortie ressemblera à ce qui suit :
    Configuration - onpremexadr
      Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
        db1_phx3g7 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    Fast-Start Failover:  Disabled
    Configuration Status:
               WARNING   (status updated 8 seconds ago)
  8. Sur Oracle Database Exadata Cloud Service de secours, consultez les fichiers de journalisation.
    select member from v$logfile;
    La sortie ressemblera à ce qui suit :
    MEMBER
    ---------------------------------------------------
    /opt/oracle/oradata/ORCLCDB/redo03.log
    /opt/oracle/oradata/ORCLCDB/redo02.log
    /opt/oracle/oradata/ORCLCDB/redo01.log
  9. Connectez-vous à une session d'interface de ligne de commande Oracle Data Guard (DGMGRL) sur l'instance de base de données Oracle Database Exadata Cloud Service de secours avec le nom utilisateur et le mot de passe sys.
    [oracle@droci admin]$ dgmgrl 
    DGMGRL> connect
  10. Visualisez la configuration sur la base de données de secours dans OCI.
    DGMGRL> show configuration;
    La sortie ressemblera à ce qui suit :
    Configuration - OnPremDr
    Protection Mode: MaxPerformance
      Members:
      db1        - Primary database
        db1_phx3g7 - Physical standby database 
          Warning: ORA-16809: multiple warnings detected for the member
    Fast-Start Failover:  Disabled
    Configuration Status:
    WARNING   (status updated 38 seconds ago)
  11. Modifiez l'instance de base de données de secours dans OCI et définissez l'état sur apply-off. Lorsque la commande réussit, quittez l'interface de ligne de commande.
    DGMGRL> edit database DB1_phx3g7 set state=apply-off;
    DGMGRL> exit
  12. Connectez-vous à l'instance de base de données de secours dans OCI sous la forme sysdba.
    [oracle@exacs82-vm3sv1 ~]$ sqlplus / as sysdba
  13. Affichez le numéro de groupe et les membres du fichier journal.
    SQL> select group#,member from v$logfile;
    La sortie ressemblera à ce qui suit :
        
    GROUP#
    ----------
    MEMBER
    --------------------------------------------------------------------------------
     2
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_2.354.1063638089
     3
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_3.355.1063638089
     1
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_1.353.1063638089
     4
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_4.356.1063638089
  14. Affichez la taille de chaque groupe.
    select bytes, group# from v$log;
    La sortie ressemblera à ce qui suit :
    BYTES     GROUP#
    ---------- ----------
     209715200	    1
     209715200	    2
     209715200	    3
     209715200	    4
  15. Ajoutez les groupes de fichiers journaux de secours à la base de données dans OCI.
    [oracle@exacs82-vm3sv1 ~]$ sqlplus / as sysdba
    
    alter database add standby logfile group 5 ('+DATAC1','+RECOC1');
    alter database add standby logfile group 6 ('+DATAC1','+RECOC1');
    alter database add standby logfile group 7 ('+DATAC1','+RECOC1');
  16. Affichez le numéro de groupe et les membres du fichier journal.
    SQL> select group#,member from v$logfile;
    La sortie ressemblera à ce qui suit :
        GROUP#
    ----------
    MEMBER
    --------------------------------------------------------------------------------
     2
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_2.354.1063638089
     3
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_3.355.1063638089
     1
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_1.353.1063638089
     4
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_4.356.1063638089
     5
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_5.358.1063813749
     5
    +RECOC1/DB1_PHX3G7/ONLINELOG/group_5.256.1063813749
     6
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_6.359.1063813761
     6
    +RECOC1/DB1_PHX3G7/ONLINELOG/group_6.262.1063813761
     7
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_7.360.1063813773
     7
    +RECOC1/DB1_PHX3G7/ONLINELOG/group_7.300.1063813773
  17. Dans l'instance de base de données OCI de secours, connectez-vous à une session d'interface de ligne de commande Oracle Data Guard (DGMGRL) avec le nom utilisateur et le mot de passe sys.
    [oracle@exacs82-vm3sv1 ~]$ dgmgrl
    DGMGRL> connect
    Username: sys
    Password:
    Connected to "DB1_phx3g7"
    Connected as SYSDBA.
  18. Modifiez l'instance de base de données de secours dans OCI et définissez l'état sur apply-on.
    DGMGRL> edit database db1_phx3g7 set state=apply-on;
  19. Modifiez l'instance de base de données de secours dans OCI et définissez l'état de transport sur transport-on, puis quittez l'interface de ligne de commande. Lorsque la commande réussit, quittez DGMGRL.
    DGMGRL> edit database DB1 set state=transport-on;
    DGMGRL> exit
  20. Visualisez les fichiers journaux de secours dans la base de données de secours sur OCI pour vérifier la disponibilité.
    SQL> select * from v$logfile where type='STANDBY';
  21. Affichez les fichiers de journalisation dans la base de données de secours sur OCI.
    SQL> select member from v$logfile where type != 'STANDBY';
    La sortie ressemblera à ce qui suit :
    MEMBER
    --------------------------------------------------------------------------------
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_2.354.1063638089
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_3.355.1063638089
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_1.353.1063638089
    +DATAC1/DB1_PHX3G7/ONLINELOG/group_4.356.1063638089
  22. Récupérer la base de données de secours gérée.
    SQL> recover managed standby database cancel;
    La sortie ressemblera à ce qui suit :
    Media recovery complete
  23. Affichez les fichiers avec le paramètre convert.
    SQL> show parameter convert;
    La sortie ressemblera à ce qui suit :
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    db_file_name_convert		    string       DB1, DB1_phx3g7
    log_file_name_convert		   string       DB1, DB1_phx3g7
    pdb_file_name_convert		   string
  24. Visualisez les fichiers de base de données.
    select name from v$datafile;
    La sortie ressemblera à ce qui suit :
    NAME
    --------------------------------------------------------------------------------
    +DATAC1/DB1_PHX3G7/DATAFILE/system.348.1063638053
    +DATAC1/DB1_PHX3G7/DATAFILE/sysaux.349.1063638055
    +DATAC1/DB1_PHX3G7/DATAFILE/undotbs1.350.1063638057
    +DATAC1/DB1_PHX3G7/DATAFILE/undotbs2.351.1063638057
    +DATAC1/DB1_PHX3G7/DATAFILE/users.352.1063638059
  25. Visualisez les détails de l'archive Oracle Data Guard.
    SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
    La sortie ressemblera à ce qui suit :
    
    ROLE	    THREAD#     SEQUENCE#  ACTION
    ------------------------ ---------- ---------- ------------
    RFS ping			     1	     0 IDLE
    RFS ping			     2	    62 IDLE
    RFS async		           2	    62 RECEIVING
    broker instance worker            0	     0 IDLE
    broker worker			0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive redo			 0	     0 IDLE
    archive local			0	     0 IDLE
    redo transport timer		0	     0 IDLE
    gap manager			  0	     0 IDLE
    
    ROLE	    THREAD#     SEQUENCE#  ACTION
    ------------------------ ---------- ---------- ------------
    broker monitor		      0	     0 IDLE
    broker net worker		   0 	    0 IDLE
    redo transport monitor	     0	     0 IDLE
    log writer			   0	     0 IDLE
    RFS async	                  0	   187 RECEIVING
    16 rows selected.
  26. Désactivez la récupération de la base de données de secours gérée à l'aide du fichier journal.
    SQL> recover managed standby database using current logfile disconnect;
    Media recovery complete.
  27. Affichez les fichiers avec le paramètre de destination et vérifiez.
    SQL>show parameter dest;