Crea la base de datos en espera de Data Guard
Una vez que la base de datos principal se prepara para Data Guard, estará lista para duplicarse en el sitio en espera. En la siguiente guía, se usa la duplicación activa para crear una copia coherente de la base de datos.
Te recordamos que los siguientes ejemplos se usan en esta guía:
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 suspensión |
Los servidores de la solución Bare Metal que ejecutan Oracle en esta guía se configuran con las siguientes variables de entorno:
Nombre de variable de entorno | Valor |
---|---|
ORACLE_BASE | /apps/oracle/oracle_base |
ORACLE_HOME | /apps/oracle/19.0.0/db_home1 |
Es posible que debas modificar las rutas de las variables de entorno según la configuración.
Configura la base de datos en espera
Configura la conectividad de la base de datos
Accede a cada servidor de la solución Bare Metal en la ubicación en espera y modifica el archivo $ORACLE_HOME/network/admin/tsnames.ora
para actualizar la configuración del servicio neto:
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)
)
)
Configura un objeto de escucha temporal
Para evitar que se reinicie el objeto de escucha que se usa en otras conexiones de bases de datos, la duplicación de la base de datos se realiza mediante un objeto de escucha 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. Borra este objeto de escucha temporal después de la duplicación de la base de datos.
Accede al primer servidor de la solución Bare Metal en la ubicación en espera que se 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 Net: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 objeto de escucha temporal:
lsnrctl start LISTENER_DBDG_SITE2
Prepara la base de datos en espera
Cada instancia de base de datos requiere un directorio para almacenar registros de auditoría. Crea el directorio de archivos de auditoría en cada servidor de la solución Bare Metal en la ubicación de la base de datos en espera:
mkdir -p /apps/oracle/oracle_base/admin/DBDG_SITE2/adump
Modifica el archivo
$ORACLE_HOME/dbs/initDBDG_SITE21.ora
que se copió antes en el servidor de la base de datos en espera:- Configura
db_unique_name
como el nombre de la nueva base de datos en espera. - Modifica cualquier parámetro específico de la instancia a fin de que refleje los nombres de la instancia para la base de datos en espera. Por ejemplo:
instance_number
thread
undo_tablespace
- Configura el parámetro
audit_file_dest
para usar el directorio que se creó en el paso anterior. - Si los grupos de discos de ASM en cada ubicación usan nombres diferentes, modifica los parámetros
db_file_name_convert
ylog_file_name_convert
para que coincidan con las ubicaciones de archivos nuevas. - Comenta el parámetro
control_files
.
En el siguiente ejemplo, se muestra un archivo de parámetro de base de datos actualizado con modificaciones mediante los ejemplos de esta guía. Ten en cuenta que el archivo de parámetros contendrá parámetros adicionales que son específicos de la configuración de la base de datos. Solo se muestran los parámetros que requieren modificación para la instancia en 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'
- Configura
En el archivo
/etc/oratab
, agrega una entrada a fin de que el comandooraenv
pueda establecer variables de entorno para la base de datos en espera:DBDG_SITE21:ORACLE_HOME:N
Crea la base de datos en espera
Configura la variable de entorno
ORACLE_SID
para que puedas conectarte a la base de datos en espera: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 de forma manual la instancia en espera en un nodo. Accede al primer servidor de la solución Bare Metal en la ubicación en espera, inicia SQL*Plus y, luego, inicia la base de datos en espera en
nomount mode
mediantepfile
:sqlplus / as sysdba
STARTUP NOMOUNT PFILE='/apps/oracle/19.0.0/db_home1/dbs/initDBDG_SITE21.ora';
Si se ejecuta 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 al servicio de base de datos en espera. Desde cada servidor de la solución Bare Metal en la ubicación de la base de datos principal, intenta conectarte a la instancia en espera mediante SQL*Plus. Ingresa la contraseña de acceso remoto de SYS de forma manual para conectarte correctamente a la instancia.
sqlplus sys@DBDG_SITE2_FOR_DUPLICATION as sysdba
Si se ejecuta de forma correcta, deberías recibir un mensaje de SQL*Plus estándar, en el que puedes verificar los parámetros de la instancia:
SHOW PARAMETER DB_UNIQUE_NAME;
Deberías recibir una respuesta similar a la que figura a continuación:
NAME TYPE VALUE ---------------- ----------- ------------------------------ db_unique_name string DBDG_SITE2
Sal de SQL*Plus después de verificar el parámetro
DB_UNIQUE_NAME
:EXIT;
Conéctate a Recovery Manager y, luego, ejecuta el comando
duplicate
para duplicar el modo de espera desde la base de datos principal activa:rman TARGET sys@DBDG_SITE1 AUXILIARY sys@DBDG_SITE2_FOR_DUPLICATION
DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE NOFILENAMECHECK;
Si se ejecuta de forma correcta, deberías recibir un mensaje similar al siguiente ejemplo después del procesamiento:
Finished Duplicate Db at ...
Sal del administrador de recuperación:
EXIT;
Finaliza la creación de la base de datos en 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 en espera y obtén los nuevos nombres de archivo 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 del archivo 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
Registra los nombres de archivo de control del paso anterior y reemplaza las entradas para el parámetro
control_files
en$ORACLE_HOME/dbs/initDBDG_SITE21.ora
con los valores nuevos. Si hay varios archivos de control, encapsula cada uno entre comillas simples separadas por 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
spfile
nuevo 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ña en el grupo de discos de ASM mediante 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 en espera y borra el
pfile
temporal y el archivo 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 objeto de escucha temporal usado para la duplicación de la base de datos en el primer servidor de la solución Bare Metal en la ubicación de la base de datos en espera:
lsnrctl stop LISTENER_DBDG_SITE2
Quita las entradas temporales del archivo
$ORACLE_HOME/network/admin/listener.ora
en el primer servidor de la solución Bare Metal en la ubicación de la base de datos en espera.Agrega las instancias y la base de datos en espera nuevas al registro de clústeres con 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 en espera con el comando
srvctl
:srvctl start database -db DBDG_SITE2
Próximos pasos
A continuación, configura y habilita el agente de Data Guard.