- Déployer une topologie DR hybride pour un Oracle Exadata sur site
- Terminer la configuration
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é.
- Vérifiez la valeur
dg_broker_startde l'hôte de base de données sur site. Il doit être défini surfalse.SQL> show parameter dg_broker_start;La sortie ressemblera à ce qui suit :NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE - Dans Oracle Database Exadata Cloud Service de secours, vérifiez les fichiers de configuration Oracle Data Guard.
Voici un exemple de sortie :SQL> show parameter dg_broker_config_file1;NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_config_file1 string /u02/app/oracle/product/19.0.0.0/dbhome_5/dbs/dr1DB1_phx3g7.dat
Voici un exemple de sortie :SQL> show parameter dg_broker_config_file2;NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_config_file2 string /u02/app/oracle/product/19.0.0.0/dbhome_5/dbs/dr2DB1_phx3g7.dat - 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.1063638059SQL> 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'; - Dans l'Oracle Exadata Database Machine principal sur site, vérifiez les fichiers de configuration Oracle Data Guard.
Voici un exemple de sortie :SQL> show parameter dg_broker_config_file1;NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_config_file1 string /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr1db1.dat.dat
L'exemple suivant illustre la sortie :SQL> show parameter dg_broker_config_file2;NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_config_file2 string /u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/dr2db1.dat - Affichez les fichiers de données, puis modifiez l'emplacement où vous souhaitez stocker les fichiers.
L'exemple suivant illustre la sortie :SQL> select name from v$datafile;
Exécutez les commandes suivantes pour modifier l'emplacement du fichier de configuration :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.1063487879SQL> 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'; - 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_startNAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean TRUESQL> select pname from v$process where pname like 'DMON%';PNAME ----- DMON - 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_startNAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean TRUESQL> 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.
- Connectez-vous à l'hôte principal sous la forme
sys.$ dgmgrl sys/sys password@net service name for primary database - Créez une configuration utilisant le nom de la base de données principale.
Par exemple :DGMGRL> CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary database name CONNECT IDENTIFIER IS primary database name;CREATE CONFIGURATION OnPremExaDR AS PRIMARY DATABASE IS DB1 CONNECT IDENTIFIER IS DB1; - 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.
Par exemple :DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL;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
- 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=''; - 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 - Activez la configuration.
DGMGRL> enable configuration; - 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) - Dans Oracle Database Exadata Cloud Service de secours, connectez-vous pour vérifier la configuration.
[oracle@exacs82-vm3sv1 ~]$ dgmgrl DGMGRL> connectUsername: sys Password: Connected to "DB1_phx3g7" Connected as SYSDBA.
Le résultat obtenu est semblable au résultat suivant :DGMGRL> show configuration;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).
- 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 - 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 - Affichez les journaux
redodes 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 - Ajoutez un groupe de fichiers de journalisation de secours pour chaque fichier de journalisation
redo.Par exemple, si vous disposez de trois fichiers de journalisationredo, 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'); - 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 - 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 - Visualisez la configuration dans Oracle Data Guard.
DGMGRL> show configurationLa 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) - 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 - 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 - 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) - 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 - Connectez-vous à l'instance de base de données de secours dans OCI sous la forme
sysdba.[oracle@exacs82-vm3sv1 ~]$ sqlplus / as sysdba - 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 - 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 - Ajoutez les groupes de fichiers journaux de secours à la base de données dans OCI.
[oracle@exacs82-vm3sv1 ~]$ sqlplus / as sysdbaalter 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'); - 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 - 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. - 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; - 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 - 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'; - 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 - 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 - 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 - 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 - 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. - 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. - Affichez les fichiers avec le paramètre de destination et vérifiez.
SQL>show parameter dest;