Crear la base de datos de espera de Data Guard
Una vez que la base de datos principal se haya preparado para Data Guard, se podrá duplicar en el sitio de standby. En la siguiente guía se utiliza la duplicación activa para crear una copia coherente de la base de datos.
Te recordamos que en esta guía se usan los siguientes ejemplos:
Nombre único de la base de datos | Nombres de host del servidor | Nombres de instancias de RAC | Rol |
---|---|---|---|
DBDG_SITE1 | site1db1, site1db2 | DBDG_SITE11, DBDG_SITE12 | Principal |
DBDG_SITE2 | site2db1, site2db2 | DBDG_SITE21, DBDG_SITE22 | En espera |
Los servidores de la solución Bare Metal que ejecutan Oracle en esta guía están configurados con las siguientes variables de entorno:
Nombre de la variable de entorno | Valor |
---|---|
ORACLE_BASE | /apps/oracle/oracle_base |
ORACLE_HOME | /apps/oracle/19.0.0/db_home1 |
Es posible que tengas que modificar las rutas de las variables de entorno en función de tu configuración.
Configurar la base de datos de espera
Configurar la conectividad de la base de datos
Inicia sesión en cada servidor de Bare Metal Solution de la ubicación de espera y modifica el archivo $ORACLE_HOME/network/admin/tsnames.ora
para actualizar la configuración del servicio de red:
DBDG_SITE2 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE2_SCAN_HOSTNAME)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DBDG_SITE2) (UR=A)
)
)
DBDG_SITE1 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE1_SCAN_HOSTNAME)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = DBDG_SITE1)
)
)
Configurar un detector temporal
Para evitar reiniciar el listener usado para otras conexiones de bases de datos, la duplicación de la base de datos se realiza mediante un listener temporal. En este ejemplo se usa el puerto 1523, pero puedes usar cualquier puerto que esté abierto para la comunicación entre los clústeres. Eliminas este listener temporal después de duplicar la base de datos.
Inicia sesión en el primer servidor de Solución Bare Metal de la ubicación de espera que se va a usar durante el proceso de duplicación de la base de datos. Modifica el archivo
$ORACLE_HOME/network/admin/listener.ora
para actualizar la configuración del servicio de red:LISTENER_DBDG_SITE2 = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = site1db1)(PORT = 1523)) ) ) SID_LIST_LISTENER_DBDG_SITE2 = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = DBDG_SITE2_DGMGRL) (ORACLE_HOME = ORACLE_HOME) (SID_NAME = DBDG_SITE21) ) ) ADR_BASE_LISTENER = /apps/oracle/oracle_base
Inicia el escucha temporal:
lsnrctl start LISTENER_DBDG_SITE2
Preparar la base de datos de espera
Cada instancia de base de datos requiere un directorio para almacenar los registros de auditoría. Crea el directorio del archivo de auditoría en cada servidor de Solución Bare Metal de la ubicación de la base de datos de espera:
mkdir -p /apps/oracle/oracle_base/admin/DBDG_SITE2/adump
Modifica el archivo
$ORACLE_HOME/dbs/initDBDG_SITE21.ora
que se ha copiado en el servidor de base de datos de espera anteriormente:- Asigna el valor
db_unique_name
al nuevo nombre de la base de datos de espera. - Modifica los parámetros específicos de la instancia para que reflejen los nombres de la instancia de la base de datos de espera. Por ejemplo:
instance_number
thread
undo_tablespace
- Define el parámetro
audit_file_dest
para usar el directorio creado en el paso anterior. - Si los grupos de discos de ASM de cada ubicación usan nombres diferentes, modifica los parámetros
db_file_name_convert
ylog_file_name_convert
para que coincidan con las nuevas ubicaciones de los archivos. - Comenta el parámetro
control_files
.
En el siguiente ejemplo se muestra un archivo de parámetros de base de datos actualizado con las modificaciones que se han realizado siguiendo los ejemplos de esta guía. Ten en cuenta que el archivo de parámetros contendrá parámetros adicionales específicos de la configuración de tu base de datos. Solo se muestran los parámetros que requieren una modificación para el modo de espera:
*.db_unique_name='DBDG_SITE2' DBDG_SITE21.instance_number=1 DBDG_SITE22.instance_number=2 DBDG_SITE21.thread=1 DBDG_SITE22.thread=2 DBDG_SITE21.undo_tablespace='UNDOTBS1' DBDG_SITE22.undo_tablespace='UNDOTBS2' *.audit_file_dest='/apps/oracle/oracle_base/admin/DBDG_SITE2/adump' #*.control_files='+DATA/DBDG_SITE1/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE1/CONTROLFILE/current.257.1091317089'
- Asigna el valor
En el archivo
/etc/oratab
, añade una entrada para que el comandooraenv
pueda definir variables de entorno para la base de datos de espera:DBDG_SITE21:ORACLE_HOME:N
Crear la base de datos de espera
Define la variable de entorno
ORACLE_SID
para que puedas conectarte a la base de datos de reserva:source oraenv <<< "DBDG_SITE21"
Deberías recibir la respuesta
The Oracle base has been set to /apps/oracle/oracle_base
.Antes de duplicar la base de datos principal, debes iniciar manualmente la instancia de espera en un nodo. Inicia sesión en el primer servidor de Bare Metal Solution de la ubicación de espera, inicia SQL*Plus y, a continuación, inicia la base de datos de espera en
nomount mode
mediante el comandopfile
:sqlplus / as sysdba
STARTUP NOMOUNT PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
Si la solicitud se hace correctamente, deberías recibir una respuesta similar a la del siguiente ejemplo:
ORACLE instance started. Total System Global Area 1.2885E+10 bytes Fixed Size 15988824 bytes Variable Size 1845493760 bytes Database Buffers 1.1006E+10 bytes Redo Buffers 17563648 bytes
Sal de SQL*Plus después de iniciar la instancia:
EXIT;
Verifica la conectividad con el servicio de base de datos de espera. Desde cada servidor de Solución Bare Metal de la ubicación de la base de datos principal, intenta conectarte a la instancia de espera mediante SQL*Plus. Introduce manualmente la contraseña de inicio de sesión remoto de SYS para conectarte correctamente a la instancia.
sqlplus sys@DBDG_SITE2_FOR_DUPLICATION as sysdba
Si la operación se realiza correctamente, deberías recibir un mensaje estándar de SQL*Plus, donde puedes comprobar los parámetros de la instancia:
SHOW PARAMETER DB_UNIQUE_NAME;
Deberías recibir una respuesta similar a la siguiente:
NAME TYPE VALUE ---------------- ----------- ------------------------------ db_unique_name string DBDG_SITE2
Sal de SQL*Plus después de comprobar el parámetro
DB_UNIQUE_NAME
:EXIT;
Conéctate a Recovery Manager y ejecuta el comando
duplicate
para duplicar la base de datos principal activa en la de espera:rman TARGET sys@DBDG_SITE1 AUXILIARY sys@DBDG_SITE2_FOR_DUPLICATION
DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE NOFILENAMECHECK;
Si se completa correctamente, después del procesamiento deberías recibir un mensaje similar al siguiente:
Finished Duplicate Db at ...
Salir del Gestor de recuperación:
EXIT;
Finalizar la creación de la base de datos de espera
Durante la duplicación de la base de datos, ASM crea nuevos archivos de control para la base de datos en espera. Conéctate a la nueva instancia de espera y obtén los nombres de los nuevos archivos de control. En el siguiente ejemplo se muestran dos archivos de control almacenados en los grupos de discos
+DATA
y+RECO
:sqlplus / as sysdba
SET LINESIZE 140 COLUMN NAME FORMAT a15 COLUMN VALUE FORMAT a125 SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME='control_files';
Los nombres de los archivos de control se muestran en el campo "Valor":
NAME VALUE --------------- ---------------------------------------------------------------------------------------------------- control_files +DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089, +RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089
Anota los nombres de los archivos de control del paso anterior y sustituye las entradas del parámetro
control_files
en$ORACLE_HOME/dbs/initDBDG_SITE21.ora
por los nuevos valores. Si hay varios archivos de control, encierra cada uno entre comillas simples y sepáralos con comas:*.control_files='+DATA/DBDG_SITE2/CONTROLFILE/current.258.1091317089','+RECO/DBDG_SITE2/CONTROLFILE/current.257.1091317089'
Conéctate a la base de datos en espera con SQL*Plus y crea un nuevo
spfile
a partir delpfile
modificado:sqlplus / as sysdba
CREATE SPFILE='+DATA/DBDG_SITE2/spfileDBDG_SITE2' FROM PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
Copia el archivo de contraseñas en el grupo de discos de ASM con el comando
asmcmd
:asmcmd cp /apps/oracle/19.0.0/db_home1/dbs/orapwDBDG_SITE21.ora +DATA/DBDG_SITE2/orapwDBDG_SITE2
Cierra la instancia de base de datos de espera y elimina los archivos temporales
pfile
y de contraseña:sqplus / as sysdba
SHUTDOWN IMMEDIATE; EXIT;
rm $ORACLE_HOME/dbs/orapwDBDG_SITE21.ora $ORACLE_HOME/dbs/initDBDG_SITE2.ora
Detén el listener temporal que se usa para duplicar la base de datos en el primer servidor de Bare Metal Solution de la ubicación de la base de datos de espera:
lsnrctl stop LISTENER_DBDG_SITE2
Elimina las entradas temporales del archivo
$ORACLE_HOME/network/admin/listener.ora
en el primer servidor de Solución Bare Metal de la ubicación de la base de datos de reserva.Añade la nueva base de datos de espera y las instancias al registro del clúster mediante el comando
srvctl
:srvctl add database \ -db DBDG_SITE2 \ -oraclehome /apps/oracle/19.0.0/db_home1 \ -spfile +DATA/DBDG_SITE2/spfileDBDG_SITE2 \ -pwfile +DATA/DBDG_SITE2/orapwDBDG_SITE2 \ -role PHYSICAL_STANDBY \ -startoption MOUNT srvctl add instance \ -db DBDG_SITE2 \ -instance DBDG_SITE21 \ -node site2db1 srvctl add instance \ -db DBDG_SITE2 \ -instance DBDG_SITE22 \ -node site2db2
Inicia la base de datos de espera con el comando
srvctl
:srvctl start database -db DBDG_SITE2
Pasos siguientes
A continuación, configure y habilite el broker de Data Guard.