Configurar un observador de Data Guard en Google Cloud Compute Engine
En función de tus requisitos de alta disponibilidad, puede que quieras automatizar la conmutación por error entre bases de datos. Una vez que hayas validado tu implementación de Data Guard, puedes configurar un observador de Data Guard en Compute Engine para hacerlo. Un observador es un proceso que monitoriza una configuración de Data Guard para iniciar una conmutación por error automática si las condiciones lo justifican.
En esta guía se explica cómo instalar el cliente de la base de datos Oracle 19c en una máquina virtual observadora y cómo configurar la conmutación por error de inicio rápido.
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 |
Instalar el software de cliente de Oracle Database
Crea una máquina virtual en Compute Engine que cumpla los siguientes criterios:
Sistema operativo. Red Hat Enterprise Linux 7.
Redes. Una subred con reglas de cortafuegos que permitan el acceso desde tu nube privada virtual a los hosts de Solución Bare Metal que ejecuten las bases de datos principal y de espera.
Almacenamiento -- Al menos 20 GB asignados al disco de arranque.
Inicia sesión en la VM y comprueba que el nombre de host SCAN de cada clúster de base de datos se resuelve en el DNS:
host DBDG_SITE1_SCAN_HOSTNAME host DBDG_SITE2_SCAN_HOSTNAME
Si los nombres de host no se resuelven, añade las direcciones IP de cada nombre de host SCAN al archivo
/etc/hosts
de la VM. Sustituye las direcciones IP de ejemplo por las direcciones IP de cada clúster:# Site 1 SCAN Hosts 192.0.2.10 DBDG_SITE1_SCAN_HOSTNAME 192.0.2.11 DBDG_SITE1_SCAN_HOSTNAME 192.0.2.12 DBDG_SITE1_SCAN_HOSTNAME # Site 2 SCAN Hosts 198.51.100.10 DBDG_SITE2_SCAN_HOSTNAME 198.51.100.11 DBDG_SITE2_SCAN_HOSTNAME 198.51.100.12 DBDG_SITE2_SCAN_HOSTNAME
Instala el RPM de Oracle Database. Instala solo el software. No es necesario configurar una base de datos en la VM observadora.
El RPM de Oracle Database instala el software en un directorio predefinido. Añade las siguientes entradas a
/home/oracle/.bash_profile
para añadir la ruta de inicio del software de Oracle:cat >> /home/oracle/.bash_profile << EOL export ORACLE_HOME=/opt/oracle/product/19c/dbhome_1 export PATH=\$PATH:\$ORACLE_HOME/bin EOL
Obtén las variables de entorno de Oracle en tu sesión de terminal:
source ~/.bash_profile
Configurar la conectividad de la base de datos
Configura los ajustes de Oracle Net en el archivo
$ORACLE_HOME/network/admin/tsnames.ora
:DBDG_SITE1 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE1_SCAN_HOSTNAME)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DBDG_SITE1) (UR=A) ) ) DBDG_SITE2 = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = DBDG_SITE2_SCAN_HOSTNAME)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = DBDG_SITE2) (UR=A) ) )
Oracle Database 12.2 y versiones posteriores permiten que el observador se ejecute en segundo plano. Para ello, se debe crear un monedero para realizar la autenticación sin contraseña en la base de datos. Inicia sesión como usuario de Oracle en la VM observadora y realiza las siguientes tareas para crear un monedero:
Añade las siguientes entradas a
$ORACLE_HOME/network/admin/sqlnet.ora
:WALLET_LOCATION = (SOURCE = (METHOD = FILE) (METHOD_DATA = (DIRECTORY = /home/oracle/wallet)) ) SQLNET.WALLET_OVERRIDE = TRUE
Crea el directorio de la cartera en la VM que aloja el observador:
mkdir /home/oracle/wallet
Inicializa la cartera y, a continuación, proporciona una contraseña para la cartera cuando se te solicite:
mkstore -wrl /home/oracle/wallet -create
Crea una entrada en el monedero para cada base de datos de la configuración de Data Guard. El comando
mkstore
solicitará la contraseña SYS de la base de datos, seguida de la contraseña del monedero proporcionada en el paso anterior:mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE1 sys mkstore -wrl /home/oracle/wallet -createCredential DBDG_SITE2 sys
Confirma que la cartera contiene credenciales para cada base de datos de la configuración de Data Guard. El argumento
-listCredential
demkstore
solicitará la contraseña de la cartera:mkstore -wrl /home/oracle/wallet -listCredential
Inicia sesión en la VM observadora como Oracle y, a continuación, prueba la conectividad con las bases de datos principal y de espera. Conéctate a las bases de datos principal y secundaria con SQL*Plus mediante las credenciales del monedero:
sqlplus /@DBDG_SITE1 as sysdba sqlplus /@DBDG_SITE2 as sysdba
Si la configuración de la cartera se realiza correctamente, el comando
sqlplus
inicia sesión directamente en la base de datos sin pedir una contraseña.
Configurar y habilitar la conmutación por error de inicio rápido
Crea un directorio para almacenar la configuración del observador y los archivos de registro:
mkdir /home/oracle/fsfo
Conéctate al broker de Data Guard en la base de datos principal mediante el archivo wallet:
dgmgrl CONNECT /@DBDG_SITE1;
Consulta el estado de Data Guard para comprobar que la configuración esté marcada como
SUCCESS
:SHOW CONFIGURATION;
Habilita la conmutación por error de inicio rápido (FSFO):
ENABLE FAST_START FAILOVER;
Habilitar FSFO no hace que la configuración esté lista para la conmutación por error automática. La conmutación por error automática requiere un observador.
Iniciar Data Guard Observer:
START OBSERVER observer1 IN BACKGROUND FILE IS '/home/oracle/fsfo/observer1_DBDG.dat' LOGFILE IS '/home/oracle/fsfo/observer1_DBDG.log';
En otra sesión de terminal, verifica la configuración:
SHOW CONFIGURATION VERBOSE;
En el siguiente ejemplo se muestra el modo detallado del comando
show configuration
. Si el estado de la configuración esSUCCESS
, significa que la configuración se ha completado.Configuration - DBDG Protection Mode: MaxAvailability Members: DBDG_SITE1 - Primary database DBDG_SITE2 - Physical standby database (*) Fast-Start Failover target Properties: FastStartFailoverThreshold = '30' OperationTimeout = '30' TraceLevel = 'USER' FastStartFailoverLagLimit = '45' CommunicationTimeout = '180' ObserverReconnect = '0' FastStartFailoverAutoReinstate = 'TRUE' FastStartFailoverPmyShutdown = 'TRUE' BystandersFollowRoleChange = 'ALL' ObserverOverride = 'FALSE' ExternalDestination1 = '' ExternalDestination2 = '' PrimaryLostWriteAction = 'CONTINUE' ConfigurationWideServiceName = 'DBDG_CFG' Fast-Start Failover: Enabled in Potential Data Loss Mode Lag Limit: 45 seconds Threshold: 30 seconds Active Target: DBDG_SITE2 Potential Targets: "DBDG_SITE2" DBDG_SITE2 valid Observer: observer1 Shutdown Primary: TRUE Auto-reinstate: TRUE Observer Reconnect: (none) Observer Override: FALSE Configuration Status: SUCCESS