- Distribuire una topologia DR ibrida per un Oracle Exadata in locale
- Completare la configurazione
Completare la configurazione
Configurare Oracle Data Guard, registrare il database in standby e sincronizzare le password del database in locale e in standby.
Configurare Oracle Data Guard Broker
Configurare Oracle Data Guard abilitando il parametro dg_broker_config_file sui database primario e in standby. Per Oracle Automatic Storage Management (Oracle ASM), posizionare i file di configurazione del broker su gruppi di dischi separati. Per Oracle Real Application Clusters (Oracle RAC), i file di configurazione del broker devono trovarsi nella memoria condivisa.
- Controllare il valore
dg_broker_startper l'host di database in locale. Deve essere impostato sufalse.SQL> show parameter dg_broker_start;L'output sarà simile a quanto segue:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE - In Oracle Database Exadata Cloud Service in standby, controllare i file di configurazione di Oracle Data Guard.
Di seguito è riportato l'output di esempio.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
Di seguito è riportato l'output di esempio.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 - Visualizzare i file di dati, quindi modificare la posizione in cui si desidera memorizzare i file. Ad esempio, Oracle ASM, Oracle RAC o dispositivi.
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'; - Nella Oracle Exadata Database Machine locale principale, controllare i file di configurazione di Oracle Data Guard.
Di seguito è riportato l'output di esempio.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
Viene visualizzato un output di esempio.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 - Visualizzare i file di dati, quindi modificare la posizione in cui si desidera memorizzare i file.
Viene visualizzato un output di esempio.SQL> select name from v$datafile;
Eseguire i comandi riportati di seguito per modificare la posizione del file di configurazione.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'; - In Oracle Exadata Database Machine locale primario avviare il processo 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 - Avviare il processo Oracle Data Guard Broker nel database in standby.
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
Registra il database in standby
Utilizzare l'interfaccia della riga di comando di Oracle Data Guard (DGMGRL) per registrare o aggiungere il profilo del database in standby alla configurazione del broker nell'host primario in locale.
- Eseguire il login all'host primario come
sys.$ dgmgrl sys/sys password@net service name for primary database - Creare una configurazione che utilizzi il nome del database primario.
Ad esempio: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; - Aggiungere il database in standby.Assicurarsi che l'identificativo sia uguale al nome del servizio, inclusi maiuscole e minuscole.
Ad esempio: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;Se si riceve un messaggio di errore ORA-16698, verificare che l'identificativo sia uguale al nome del servizio.Errore: ORA-16698: il membro dispone di un parametro LOG_ARCHIVE_DEST_n con set di attributi SERVICE
- Modificare lo stato di destinazione dell'archivio di log.
SQL> alter system set log_archive_dest_state_10='DEFER';SQL> alter system set log_archive_dest_10=''; - Verificare la destinazione dell'archivio di log.
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 - Abilitare la configurazione.
DGMGRL> enable configuration; - Visualizzare la configurazione.
DGMGRL> show configuration;L'output sarà simile a quanto riportato di seguito.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) - In Oracle Database Exadata Cloud Service in standby eseguire il login per verificare la configurazione.
[oracle@exacs82-vm3sv1 ~]$ dgmgrl DGMGRL> connectUsername: sys Password: Connected to "DB1_phx3g7" Connected as SYSDBA.
L'output sarà simile a quanto riportato di seguito.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
Copiare i redo log file da locale a OCI
Copiare i file di log redo e altri file di database dal database in locale nell'istanza OCI (Oracle Cloud Infrastructure).
- Visualizzare i file di database in locale.
select name from v$datafile;L'output sarà simile a quanto riportato di seguito.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 - Visualizzare le dimensioni di ciascun gruppo per i file di dati in locale.
select bytes, group# from v$log;L'output sarà simile a quanto riportato di seguito.BYTES GROUP# ---------- ---------- 209715200 1 209715200 2 209715200 3 209715200 4 - Visualizzare i log
redoper i file di dati in locale.select member from v$logfile;L'output sarà simile a quanto riportato di seguito.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 - Aggiungere un gruppo di file di log in standby per ogni log
redo.Ad esempio, se si dispone di tre file di logredo, aggiungere tre gruppi di file di log in standby.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'); - Visualizzare i membri del file di log.
SQL> select member from v$logfile;L'output sarà simile a quanto riportato di seguito.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 - Visualizzare il numero di gruppo e i membri del file di log.
SQL> select group#,member from v$logfile;L'output sarà simile a quanto riportato di seguito.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 - Visualizzare la configurazione in Oracle Data Guard.
DGMGRL> show configurationL'output sarà simile a quanto riportato di seguito.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) - In Oracle Database Exadata Cloud Service in standby, visualizzare i redo log.
select member from v$logfile;L'output sarà simile a quanto riportato di seguito.MEMBER --------------------------------------------------- /opt/oracle/oradata/ORCLCDB/redo03.log /opt/oracle/oradata/ORCLCDB/redo02.log /opt/oracle/oradata/ORCLCDB/redo01.log - Eseguire il login a una sessione dell'interfaccia della riga di comando Oracle Data Guard (DGMGRL) nell'istanza di database Oracle Database Exadata Cloud Service in standby con il nome utente e la password
sys.[oracle@droci admin]$ dgmgrl DGMGRL> connect - Visualizzare la configurazione nel database in standby in OCI.
DGMGRL> show configuration;L'output sarà simile a quanto riportato di seguito.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) - Modificare l'istanza di database in standby in OCI e impostare lo stato su
apply-off. Quando il comando riesce, uscire dall'interfaccia della riga di comando.DGMGRL> edit database DB1_phx3g7 set state=apply-off;DGMGRL> exit - Eseguire il login all'istanza di database in standby in OCI come
sysdba.[oracle@exacs82-vm3sv1 ~]$ sqlplus / as sysdba - Visualizzare il numero di gruppo e i membri del file di log.
SQL> select group#,member from v$logfile;L'output sarà simile a quanto riportato di seguito.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 - Visualizzare le dimensioni di ogni gruppo.
select bytes, group# from v$log;L'output sarà simile a quanto riportato di seguito.BYTES GROUP# ---------- ---------- 209715200 1 209715200 2 209715200 3 209715200 4 - Aggiungere i gruppi di file di log in standby al database in 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'); - Visualizzare il numero di gruppo e i membri del file di log.
SQL> select group#,member from v$logfile;L'output sarà simile a quanto riportato di seguito.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 - Nell'istanza di database OCI in standby eseguire il login a una sessione dell'interfaccia da riga di comando (DGMGRL) di Oracle Data Guard con il nome utente e la password
sys.[oracle@exacs82-vm3sv1 ~]$ dgmgrl DGMGRL> connect Username: sys Password:Connected to "DB1_phx3g7" Connected as SYSDBA. - Modificare l'istanza di database in standby in OCI e impostare lo stato su
apply-on.DGMGRL> edit database db1_phx3g7 set state=apply-on; - Modificare l'istanza di database in standby in OCI e impostare lo stato di trasporto su
transport-on, quindi uscire dall'interfaccia della riga di comando. Quando il comando riesce, uscire da DGMGRL.DGMGRL> edit database DB1 set state=transport-on;DGMGRL> exit - Visualizzare i file di log in standby nel database in standby su OCI per verificare il database in standby.
SQL> select * from v$logfile where type='STANDBY'; - Visualizzare i redo log file nel database in standby su OCI.
SQL> select member from v$logfile where type != 'STANDBY';L'output sarà simile a quanto riportato di seguito.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 - Recuperare il database in standby gestito.
SQL> recover managed standby database cancel;L'output sarà simile a quanto riportato di seguito.Media recovery complete - Visualizzare i file con il parametro
convert.SQL> show parameter convert;L'output sarà simile a quanto riportato di seguito.NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_file_name_convert string DB1, DB1_phx3g7 log_file_name_convert string DB1, DB1_phx3g7 pdb_file_name_convert string - Visualizzare i file di database.
select name from v$datafile;L'output sarà simile a quanto riportato di seguito.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 - Visualizzare i dettagli dell'archivio Oracle Data Guard.
SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;L'output sarà simile a quanto riportato di seguito.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. - Disabilitare il recupero del database in standby gestito utilizzando il file di log.
SQL> recover managed standby database using current logfile disconnect;Media recovery complete. - Visualizzare i file con il parametro di destinazione e verificare.
SQL>show parameter dest;