- 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_start
per 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.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';
- 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.1063487879
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';
- 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_start
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean TRUE
SQL> 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_start
NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean TRUE
SQL> 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> connect
Username: 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
redo
per 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 configuration
L'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 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');
- 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;