- Despliegue de una topología de DR híbrida para una base de datos local
- Finalizar la configuración
Finalizar la configuración
Configure Oracle Data Guard, registre la base de datos en espera y sincronice las contraseñas de la base de datos local y en espera.
Configurar Oracle Data Guard Broker
Configure Oracle Data Guard activando el parámetro dg_broker_config_file
en las bases de datos primaria y en espera. Para Oracle Automatic Storage Management (Oracle ASM), coloque los archivos de configuración del broker en grupos de discos separados. Para Oracle Real Application Clusters (Oracle RAC), los archivos de configuración de broker deben estar en almacenamiento compartido.
- Compruebe el valor
dg_broker_start
del host de base de datos local. Se debe establecer en falso.SQL> show parameter dg_broker_start;
La salida será similar a la siguiente:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE
- Compruebe los archivos Oracle Data Guard de la base de datos local.
SQL> show parameter dg_broker_config_file1; SQL> show parameter dg_broker_config_file2;
- Si tiene Oracle RAC u Oracle ASM, puede cambiar la ubicación del archivo de configuración.
SQL> alter system set dg_broker_config_file1=broker_config_file location; SQL> alter system set dg_broker_config_file2=broker_config_file location;
- Inicie el proceso de Oracle Data Guard Broker en la base de datos primaria.
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
- Compruebe el valor
dg_broker_start
del host de la base de datos en espera. Se debe definir enfalse
.SQL> show parameter dg_broker_start;
La salida será similar a la siguiente:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE
- Compruebe los archivos Oracle Data Guard en la base de datos en espera.
SQL> show parameter dg_broker_config_file1; SQL> show parameter dg_broker_config_file2;
- Si tiene Oracle RAC u Oracle ASM, puede cambiar la ubicación del archivo de configuración.
SQL> alter system set dg_broker_config_file1=broker_config_file location; SQL> alter system set dg_broker_config_file2=broker_config_file location;
- Inicie el proceso de Oracle Data Guard Broker en la base de datos en espera.
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
Registrar la base de datos en espera
Utilice la interfaz de línea de comandos de Oracle Data Guard (DGMGRL) para registrar o agregar el perfil de base de datos en espera a la configuración del broker en el host principal local.
- Inicie sesión en el host principal como
sys
.$ dgmgrl sys/sys password@net service name for primary database
- Cree una configuración que utilice el nombre de la base de datos primaria.
DGMGRL> CREATE CONFIGURATION configuration_name AS PRIMARY DATABASE IS primary database name CONNECT IDENTIFIER IS primary database name;
- Agregue la base de datos en espera.
DGMGRL> ADD DATABASE standby unique database name AS CONNECT IDENTIFIER IS standby unique database name MAINTAINED AS PHYSICAL;
- Active la configuración.
DGMGRL> enable configuration;
- Mostrar la configuración.
DGMGRL> show configuration;
La salida será similar a la siguiente: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)
Copiar los archivos Redo Log de los Archivos On-Premises en OCI
Copie los archivos log redo
y otros archivos de base de datos de la base de datos local en la instancia de Oracle Cloud Infrastructure (OCI).
- Consulta de los archivos de base de datos locales.
select name from v$datafile;
La salida será similar a la siguiente: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
- Ver el tamaño de cada grupo para los archivos de datos locales.
select bytes, group# from v$log;
La salida será similar a la siguiente:BYTES GROUP# ---------- ---------- 209715200 1 209715200 2 209715200 3
- Consulte los logs
redo
para los archivos de datos locales.select member from v$logfile;
La salida será similar a la siguiente:MEMBER --------------------------------------------------- /opt/oracle/oradata/ORCLCDB/redo03.log /opt/oracle/oradata/ORCLCDB/redo02.log /opt/oracle/oradata/ORCLCDB/redo01.log
- Agregue un grupo de archivos log en espera para cada log
redo
.Por ejemplo, si tiene tres archivos logredo
, agregue tres grupos de archivos log en espera.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.
- Ver el número de grupo y los miembros del archivo log.
SQL> select group#,member from v$logfile;
La salida será similar a la siguiente: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.
- Visualice la configuración en Oracle Data Guard.
DGMGRL> show configuration
La salida será similar a la siguiente: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)
- Visualice los redo logs en la instancia de base de datos OCI en espera.
select member from v$logfile;
La salida será similar a la siguiente:MEMBER --------------------------------------------------- /opt/oracle/oradata/ORCLCDB/redo03.log /opt/oracle/oradata/ORCLCDB/redo02.log /opt/oracle/oradata/ORCLCDB/redo01.log
- Conéctese a una sesión de interfaz de línea de comandos (DGMGRL) de Oracle Data Guard en la instancia de base de datos OCI en espera con el nombre de usuario y la contraseña
sys
.[oracle@droci admin]$ dgmgrl DGMGRL> connect Username: sys Password:
La salida será similar a la siguiente:. . . Welcome to DGMGRL, type "help" for information. Connected to "ORCLCDB_iad1s3" Connected as SYSDBA.
- Ver la configuración en la base de datos en espera en OCI.
DGMGRL> show configuration;
La salida será similar a la siguiente: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)
- Edite la instancia de base de datos en espera en OCI y defina el estado en
apply-off
y, a continuación, salga de la interfaz de línea de comandos.DGMGRL> edit database orclcdb_iad1s3 set state=apply-off;
Succeeded.
DGMGRL> exit
- Inicie sesión en la instancia de base de datos en espera en OCI.
[oracle@droci admin]$ sqlplus / as sysdba
- Ver el número de grupo y los miembros del archivo log.
SQL> select group#,member from v$logfile;
La salida será similar a la siguiente:GROUP# MEMBER -------------------------------------------------------------------- 3 /opt/oracle/oradata/ORCLCDB/redo03.log 2 /opt/oracle/oradata/ORCLCDB/redo02.log 1 /opt/oracle/oradata/ORCLCDB/redo01.log
- Ver el tamaño de cada grupo.
select bytes, group# from v$log;
La salida será similar a la siguiente:BYTES GROUP# ---------- ---------- 209715200 1 209715200 3 209715200 2
- Agregue los grupos de archivos log en espera a la base de datos de 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.
- Ver el número de grupo y los miembros del archivo log.
SQL> select group#,member from v$logfile;
La salida será similar a la siguiente: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.
- Conéctese a una sesión de interfaz de línea de comandos (DGMGRL) de Oracle Data Guard en la instancia de base de datos OCI en espera con el nombre de usuario y la contraseña
sys
.[oracle@droci admin]$ dgmgrl DGMGRL> connect Username: sys Password:
. . . Welcome to DGMGRL, type "help" for information. Connected to "ORCLCDB_iad1s3" Connected as SYSDBA.
- Edite la instancia de base de datos en espera en OCI y defina el estado en
apply-on
.DGMGRL> edit database orclcdb_iad1s3 set state=apply-on;
- Edite la instancia de base de datos en espera en OCI y defina el estado de transporte en
transport-on
y, a continuación, salga de la interfaz de línea de comandos.DGMGRL> edit database orclcdb_iad1s3 set state=transport-on;
Succeeded.
DGMGRL> exit
- Visualice los archivos log en espera en la base de datos en espera en OCI.
SQL> select * from v$logfile where type='STANDBY';
La salida será similar a la siguiente: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
- Visualice los archivos redo log en la base de datos en espera en OCI.
SQL> select member from v$logfile where type != 'STANDBY';
La salida será similar a la siguiente:MEMBER -------------------------------------------------------------------- /opt/oracle/oradata/ORCLCDB/redo03.log /opt/oracle/oradata/ORCLCDB/redo02.log /opt/oracle/oradata/ORCLCDB/redo01.log
- Recuperar la base de datos gestionada en espera.
SQL> recover managed standby database cancel;
La salida será similar a la siguiente:Media recovery complete
- Visualice los archivos con el parámetro
convert
.SQL> show parameter convert;
La salida será similar a la siguiente:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_file_name_convert string log_file_name_convert string pdb_file_name_convert string
- Ver los archivos de la base de datos.
select name from v$datafile;
La salida será similar a la siguiente: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
- Consulta del número de cambio del sistema de base de datos (SCN).
SQL> select current_scn from v$database;
La salida será similar a la siguiente:CURRENT_SCN ----------- 2906060
- Consulta de los detalles del archivo Oracle Data Guard.
SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
La salida será similar a la siguiente: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.
- Desactive la recuperación de la base de datos en espera gestionada mediante el archivo log.
SQL> recover managed standby database using current logfile disconnect;
Media recovery complete.
- Consulta del número de cambio del sistema de base de datos (SCN).
SQL> select current_scn from v$database;
La salida será similar a la siguiente:CURRENT_SCN ----------- 2906060
- Mostrar los archivos con el parámetro de destino.
SQL>show parameter dest;
La salida será similar a la siguiente: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
- Mostrar los comentarios de la recuperación.
SQL> select comments from v$recovery_progress;
La salida será similar a la siguiente:COMMENTS -------------------------------------------------------------------- RCVID: 4165711446800375620 SCN: 2907015 COMMENTS -------------------------------------------------------------------- RCVID: 12395680609799335065 SCN: 2906061
- Consulta de la fecha de recuperación.
SQL> select START_TIME,comments from v$recovery_progress order by 1;
La salida será similar a la siguiente:START_TIM --------- COMMENTS -------------------------------------------------------------------- 03-SEP-20 03-SEP-20 03-SEP-20 RCVID: 2657984638848411078 START_TIM --------- COMMENTS -------------------------------------------------------------------------------- 03-SEP-20