- Distribuire una topologia DR ibrida per un database 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.
Configura broker Oracle Data Guard
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 del database in locale. Dovrebbe essere impostato su false.SQL> show parameter dg_broker_start;L'output sarà simile al seguente:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE - Controllare i file Oracle Data Guard per il database in locale.
SQL> show parameter dg_broker_config_file1; SQL> show parameter dg_broker_config_file2; - Se si dispone di Oracle RAC o Oracle ASM, è possibile modificare la posizione del file di configurazione.
SQL> alter system set dg_broker_config_file1=broker_config_file location; SQL> alter system set dg_broker_config_file2=broker_config_file location; - Avviare il processo Broker Oracle Data Guard nel database primario.
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 - Controllare il valore
dg_broker_startper l'host del database in standby. Deve essere impostato sufalse.SQL> show parameter dg_broker_start;L'output sarà simile al seguente:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE - Controllare i file Oracle Data Guard nel database in standby.
SQL> show parameter dg_broker_config_file1; SQL> show parameter dg_broker_config_file2; - Se si dispone di Oracle RAC o Oracle ASM, è possibile modificare la posizione del file di configurazione.
SQL> alter system set dg_broker_config_file1=broker_config_file location; SQL> alter system set dg_broker_config_file2=broker_config_file location; - Avviare il processo Oracle Data Guard Broker sul 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 Oracle Data Guard (DGMGRL) per registrare o aggiungere il profilo del database in standby alla configurazione del broker sull'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.
DGMGRL> CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary database name CONNECT IDENTIFIER IS primary database name; - Aggiungere il database in standby.
DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL; - Abilita la configurazione.
DGMGRL> enable configuration; - Visualizzare la configurazione.
DGMGRL> show configuration;L'output sarà simile al seguente:Configuration - OnPremDr Protection Mode: MaxPerformance Members: ORCLCDB - Primary database Warning: ORA-16789: standby redo logs configured incorrectly orclcdb_iad1s3 - Physical standby database Error: ORA-16810: multiple errors or warnings detected for the member Fast-Start Failover: Disabled Configuration Status: ERROR (status updated 10 seconds ago)
Copia i redo log file da on premise in OCI
Copiare i file di log redo e gli 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 al seguente:NAME -------------------------------------------------------------------- /opt/oracle/oradata/ORCLCDB/system01.dbf /opt/oracle/oradata/ORCLCDB/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/users01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf - Visualizzare le dimensioni di ciascun gruppo per i file di dati in locale.
select bytes, group# from v$log;L'output sarà simile al seguente:BYTES GROUP# ---------- ---------- 209715200 1 209715200 2 209715200 3 - Visualizzare i log
redoper i file di dati in locale.select member from v$logfile;L'output sarà simile al seguente:MEMBER --------------------------------------------------- /opt/oracle/oradata/ORCLCDB/redo03.log /opt/oracle/oradata/ORCLCDB/redo02.log /opt/oracle/oradata/ORCLCDB/redo01.log - Aggiungere un gruppo di file di log in standby per ogni log
redo.Ad esempio, se sono presenti tre file di logredo, aggiungere tre gruppi di file di log in standby.SQL> alter database add standby logfile group 4('/opt/oracle/oradata/ORCLCDB/redo_sb04.log') size 209715200; Database altered. SQL> alter database add standby logfile group 5('/opt/oracle/oradata/ORCLCDB/redo_sb05.log') size 209715200; Database altered. SQL> alter database add standby logfile group 6('/opt/oracle/oradata/ORCLCDB/redo_sb06.log') size 209715200; Database altered. - Visualizza il numero di gruppo e i membri del file di log.
SQL> select group#,member from v$logfile;L'output sarà simile al seguente:GROUP# MEMBER -------------------------------------------------------------------- 3 /opt/oracle/oradata/ORCLCDB/redo03.log 2 /opt/oracle/oradata/ORCLCDB/redo02.log 1 /opt/oracle/oradata/ORCLCDB/redo01.log 4 /opt/oracle/oradata/ORCLCDB/redo_sb04.log 5 /opt/oracle/oradata/ORCLCDB/redo_sb05.log 6 /opt/oracle/oradata/ORCLCDB/redo_sb06.log 6 rows selected. - Visualizzare la configurazione in Oracle Data Guard.
DGMGRL> show configurationL'output sarà simile al seguente:Configuration - OnPremDr Protection Mode: MaxPerformance Members: ORCLCDB - Primary database orclcdb_iad1s3 - Physical standby database Fast-Start Failover: Disabled Configuration Status: SUCCESS (status updated 60 seconds ago) - Visualizzare i redo log nell'istanza di database OCI in standby.
select member from v$logfile;L'output sarà simile al seguente: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 DGMGRL (Oracle Data Guard CommandLine Interface) nell'istanza di database OCI in standby con il nome utente e la password
sys.[oracle@droci admin]$ dgmgrl DGMGRL> connect Username: sys Password:L'output sarà simile al seguente:. . . Welcome to DGMGRL, type "help" for information. Connected to "ORCLCDB_iad1s3" Connected as SYSDBA. - Visualizzare la configurazione sul database in standby in OCI.
DGMGRL> show configuration;L'output sarà simile al seguente:Configuration - OnPremDr Protection Mode: MaxPerformance Members: ORCLCDB - Primary database orclcdb_iad1s3 - Physical standby database Warning: ORA-16809: multiple warnings detected for the member Fast-Start Failover: Disabled Configuration Status: WARNING (status updated 50 seconds ago) - Modificare l'istanza di database in standby in OCI e impostare lo stato su
apply-off, quindi uscire dall'interfaccia della riga di comando.DGMGRL> edit database orclcdb_iad1s3 set state=apply-off;Succeeded.DGMGRL> exit - Eseguire il login all'istanza del database in standby in OCI.
[oracle@droci admin]$ sqlplus / as sysdba - Visualizza il numero di gruppo e i membri del file di log.
SQL> select group#,member from v$logfile;L'output sarà simile al seguente:GROUP# MEMBER -------------------------------------------------------------------- 3 /opt/oracle/oradata/ORCLCDB/redo03.log 2 /opt/oracle/oradata/ORCLCDB/redo02.log 1 /opt/oracle/oradata/ORCLCDB/redo01.log - Visualizzare la dimensione di ciascun gruppo.
select bytes, group# from v$log;L'output sarà simile al seguente:BYTES GROUP# ---------- ---------- 209715200 1 209715200 3 209715200 2 - Aggiungere i gruppi di file di log in standby al database in OCI.
SQL> alter database add standby logfile group 4('/opt/oracle/oradata/ORCLCDB/redo_sb04.log') size 209715200; Database altered. SQL> alter database add standby logfile group 5('/opt/oracle/oradata/ORCLCDB/redo_sb05.log') size 209715200; Database altered. SQL> alter database add standby logfile group 6('/opt/oracle/oradata/ORCLCDB/redo_sb06.log') size 209715200; Database altered. - Visualizza il numero di gruppo e i membri del file di log.
SQL> select group#,member from v$logfile;L'output sarà simile al seguente:GROUP# MEMBER -------------------------------------------------------------------- 3 /opt/oracle/oradata/ORCLCDB/redo03.log 2 /opt/oracle/oradata/ORCLCDB/redo02.log 1 /opt/oracle/oradata/ORCLCDB/redo01.log 4 /opt/oracle/oradata/ORCLCDB/redo_sb04.log 5 /opt/oracle/oradata/ORCLCDB/redo_sb05.log 6 /opt/oracle/oradata/ORCLCDB/redo_sb06.log 6 rows selected. - Eseguire il login a una sessione DGMGRL (Oracle Data Guard CommandLine Interface) nell'istanza di database OCI in standby con il nome utente e la password
sys.[oracle@droci admin]$ dgmgrl DGMGRL> connect Username: sys Password:. . . Welcome to DGMGRL, type "help" for information. Connected to "ORCLCDB_iad1s3" Connected as SYSDBA. - Modificare l'istanza di database in standby in OCI e impostare lo stato su
apply-on.DGMGRL> edit database orclcdb_iad1s3 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.DGMGRL> edit database orclcdb_iad1s3 set state=transport-on;Succeeded.DGMGRL> exit - Visualizzare i file di log in standby nel database in standby su OCI.
SQL> select * from v$logfile where type='STANDBY';L'output sarà simile al seguente:GROUP# STATUS TYPE ---------- ------- ------- MEMBER -------------------------------------------------------------------- IS_ CON_ID --- ---------- 4 STANDBY /opt/oracle/oradata/ORCLCDB/redo_sb04.log NO 0 5 STANDBY /opt/oracle/oradata/ORCLCDB/redo_sb05.log NO 0 6 STANDBY /opt/oracle/oradata/ORCLCDB/redo_sb06.log NO 0 - Visualizzare i redo log file nel database in standby su OCI.
SQL> select member from v$logfile where type != 'STANDBY';L'output sarà simile al seguente:MEMBER -------------------------------------------------------------------- /opt/oracle/oradata/ORCLCDB/redo03.log /opt/oracle/oradata/ORCLCDB/redo02.log /opt/oracle/oradata/ORCLCDB/redo01.log - Recuperare il database in standby gestito.
SQL> recover managed standby database cancel;L'output sarà simile al seguente:Media recovery complete - Visualizzare i file con il parametro
convert.SQL> show parameter convert;L'output sarà simile al seguente:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_file_name_convert string log_file_name_convert string pdb_file_name_convert string - Visualizzare i file di database.
select name from v$datafile;L'output sarà simile al seguente:NAME -------------------------------------------------------------------- /opt/oracle/oradata/ORCLCDB/system01.dbf /opt/oracle/oradata/ORCLCDB/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/system01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/users01.dbf /opt/oracle/oradata/ORCLCDB/pdbseed/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/system01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/sysaux01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/undotbs01.dbf /opt/oracle/oradata/ORCLCDB/ORCLPDB1/users01.dbf - Visualizzare il SCN (System Change Number) del database.
SQL> select current_scn from v$database;L'output sarà simile al seguente:CURRENT_SCN ----------- 2906060 - Visualizzare i dettagli dell'archivio Oracle Data Guard.
SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;L'output sarà simile al seguente:ROLE THREAD# SEQUENCE# ACTION ------------------------ ---------- ---------- ------------ RFS archive 0 0 IDLE RFS archive 0 0 IDLE RFS async 1 18 RECEIVING RFS ping 1 18 IDLE broker monitor 0 0 IDLE broker instance slave 0 0 IDLE archive redo 0 0 IDLE archive local 0 0 IDLE redo transport timer 0 0 IDLE gap manager 0 0 IDLE log writer 0 0 IDLE broker net slave 0 0 IDLE broker worker 0 0 IDLE archive redo 0 0 IDLE archive redo 0 0 IDLE redo transport monitor 0 0 IDLE 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 il SCN (System Change Number) del database.
SQL> select current_scn from v$database;L'output sarà simile al seguente:CURRENT_SCN ----------- 2906060 - Visualizzare i file con il parametro di destinazione.
SQL>show parameter dest;L'output sarà simile al seguente:NAME TYPE VALUE ------------------------------------ ----------- ------------------- cursor_bind_capture_destination string memory+disk db_create_online_log_dest_1 string /u03/app/oracle/redo/ db_create_online_log_dest_2 string db_create_online_log_dest_3 string db_create_online_log_dest_4 string db_create_online_log_dest_5 string db_recovery_file_dest_size big integer 238G log_archive_dest_1 string log_archive_dest_10 string log_archive_dest_11 string log_archive_dest_12 string - Visualizzare i commenti dal recupero.
SQL> select comments from v$recovery_progress;L'output sarà simile al seguente:COMMENTS -------------------------------------------------------------------- RCVID: 4165711446800375620 SCN: 2907015 COMMENTS -------------------------------------------------------------------- RCVID: 12395680609799335065 SCN: 2906061 - Visualizzare la data di recupero.
SQL> select START_TIME,comments from v$recovery_progress order by 1;L'output sarà simile al seguente:START_TIM --------- COMMENTS -------------------------------------------------------------------- 03-SEP-20 03-SEP-20 03-SEP-20 RCVID: 2657984638848411078 START_TIM --------- COMMENTS -------------------------------------------------------------------------------- 03-SEP-20