- Despliegue de una topología de DR híbrida para Oracle Exadata local
- Complete la configuración
Completar 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 del broker deben estar en almacenamiento compartido.
- Compruebe el valor
dg_broker_start
del host de base de datos local. Debe definirse enfalse
.SQL> show parameter dg_broker_start;
La salida se verá similar a la siguiente:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ dg_broker_start boolean FALSE
- En Oracle Database Exadata Cloud Service en espera, compruebe los archivos de configuración de Oracle Data Guard.
A continuación se muestra la salida de ejemplo: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
A continuación se muestra la salida de ejemplo: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
- Muestre los archivos de datos y, a continuación, cambie la ubicación a la que desea almacenar los archivos. Por ejemplo, Oracle ASM, Oracle RAC o dispositivos.
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';
- En Oracle Exadata Database Machine local principal, compruebe los archivos de configuración de Oracle Data Guard.
A continuación se muestra la salida de ejemplo: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
A continuación, se muestra un ejemplo de la respuesta: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
- Visualice los archivos de datos y, a continuación, cambie la ubicación a la que desea almacenar los archivos.
A continuación, se muestra un ejemplo de la respuesta:SQL> select name from v$datafile;
Ejecute los siguientes comandos para cambiar la ubicación del archivo de configuración: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';
- En Oracle Exadata Database Machine local principal, inicie el proceso 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
- 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 (DGMGRL) de Oracle Data Guard para registrar o agregar el perfil de la base de datos en espera a la configuración del broker en el host principal local.
- Conéctese al 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.
Por ejemplo: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;
- Agregar Base de Datos en Espera.Asegúrese de que el identificador es el mismo que el nombre del servicio, incluidas las mayúsculas y minúsculas.
Por ejemplo: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 recibe un mensaje de error de ORA-16698, verifique que el identificador es el mismo que el nombre de servicio.Error: ORA-16698: el miembro tiene un parámetro LOG_ARCHIVE_DEST_n con el juego de atributos SERVICE
- Cambie el estado de destino del archivo log.
SQL> alter system set log_archive_dest_state_10='DEFER';
SQL> alter system set log_archive_dest_10='';
- Verifique el destino del archivo 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
- Active la configuración.
DGMGRL> enable configuration;
- Mostrar la configuración.
DGMGRL> show configuration;
La salida se verá similar a la siguiente: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)
- En Oracle Database Exadata Cloud Service en Espera, conéctese para verificar la configuración.
[oracle@exacs82-vm3sv1 ~]$ dgmgrl DGMGRL> connect
Username: sys Password: Connected to "DB1_phx3g7" Connected as SYSDBA.
La salida será similar a la siguiente: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
Copiar los archivos Redo Log de las remesas locales 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).
- Visualice los archivos de base de datos locales.
select name from v$datafile;
La salida se verá similar a la siguiente: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
- Consulta del tamaño de cada grupo para los archivos de datos locales.
select bytes, group# from v$log;
La salida se verá similar a la siguiente:BYTES GROUP# ---------- ---------- 209715200 1 209715200 2 209715200 3 209715200 4
- Consulte los logs
redo
para los archivos de datos locales.select member from v$logfile;
La salida se verá similar a la siguiente: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
- 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 5 ('+DATAC1','+RECOC1'); alter database add standby logfile group 6 ('+DATAC1','+RECOC1'); alter database add standby logfile group 7 ('+DATAC1','+RECOC1');
- Ver los miembros del archivo log.
SQL> select member from v$logfile;
La salida se verá similar a la siguiente: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
- Ver el número de grupo y los miembros del archivo log.
SQL> select group#,member from v$logfile;
La salida se verá similar a la siguiente: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
- Ver la configuración en Oracle Data Guard.
DGMGRL> show configuration
La salida se verá similar a la siguiente: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)
- En Oracle Database Exadata Cloud Service en espera, consulte los redo logs.
select member from v$logfile;
La salida se verá 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 Oracle Database Exadata Cloud Service en espera con el nombre de usuario y la contraseña
sys
.[oracle@droci admin]$ dgmgrl DGMGRL> connect
- Ver la configuración de la base de datos en espera en OCI.
DGMGRL> show configuration;
El resultado es similar al siguiente: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)
- Edite la instancia de base de datos en espera en OCI y defina el estado en
apply-off
. Cuando el comando es correcto, salga de la interfaz de línea de comandos.DGMGRL> edit database DB1_phx3g7 set state=apply-off;
DGMGRL> exit
- Conéctese a la instancia de base de datos en espera en OCI como
sysdba
.[oracle@exacs82-vm3sv1 ~]$ sqlplus / as sysdba
- Consulte el número de grupo y los miembros del archivo log.
SQL> select group#,member from v$logfile;
El resultado es similar al siguiente: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
- Consulta del tamaño de cada grupo.
select bytes, group# from v$log;
El resultado es similar al siguiente:BYTES GROUP# ---------- ---------- 209715200 1 209715200 2 209715200 3 209715200 4
- Agregue los grupos de archivos log en espera a la base de datos en 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');
- Consulte el número de grupo y los miembros del archivo log.
SQL> select group#,member from v$logfile;
El resultado es similar al siguiente: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
- En la instancia de base de datos OCI en espera, inicie sesión en una interfaz de línea de comandos de Oracle Data Guard (DGMGRL) con el nombre de usuario y la contraseña
sys
.[oracle@exacs82-vm3sv1 ~]$ dgmgrl DGMGRL> connect Username: sys Password:
Connected to "DB1_phx3g7" Connected as SYSDBA.
- Edite la instancia de base de datos en espera en OCI y defina el estado en
apply-on
.DGMGRL> edit database db1_phx3g7 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. Cuando el comando es correcto, salga de DGMGRL.DGMGRL> edit database DB1 set state=transport-on;
DGMGRL> exit
- Consulte los archivos log en espera en la base de datos en espera de OCI para verificar la espera.
SQL> select * from v$logfile where type='STANDBY';
- Ver los archivos redo log en la base de datos en espera en OCI.
SQL> select member from v$logfile where type != 'STANDBY';
El resultado es similar al siguiente: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
- Recuperar la base de datos en espera gestionada.
SQL> recover managed standby database cancel;
El resultado es similar al siguiente:Media recovery complete
- Visualice los archivos con el parámetro
convert
.SQL> show parameter convert;
La salida se verá similar a la siguiente:NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_file_name_convert string DB1, DB1_phx3g7 log_file_name_convert string DB1, DB1_phx3g7 pdb_file_name_convert string
- Ver los archivos de base de datos.
select name from v$datafile;
La salida se verá similar a la siguiente: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
- Consulte los detalles del archivo Oracle Data Guard.
SQL> SELECT ROLE, THREAD#, SEQUENCE#, ACTION FROM V$DATAGUARD_PROCESS;
La salida se verá similar a la siguiente: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.
- 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.
- Muestre los archivos con el parámetro de destino y verifique.
SQL>show parameter dest;