Fundamentos de Sincronización en Oracle Data Guard


Oracle Data Guard garantiza alta disponibilidad mediante una base standby que replica los cambios desde la primaria. En entornos como Oracle RAC, Exadata o nubes (OCI), esta replicación puede verse afectada por red, transporte de redo logs o errores de configuración.
Verifica siempre:
Que los
db_unique_name
estén bien configuradosQue los archivos
tnsnames.ora
ylistener.ora
estén definidosQue los destinos
LOG_ARCHIVE_DEST_n
estén activos y sin errores
🧪 Comandos Clave por Versión
🔹 Oracle 11g (NO multitenant, sin CDB/PDB)
-- Abrir en modo solo lectura (para validaciones)
ALTER DATABASE OPEN READ ONLY;
-- Cancelar recuperación gestionada (mantenimiento)
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
-- Reanudar recuperación
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
🔹 Oracle 12c (Soporta CDB/PDB, Broker funcional)
-- Arrancar instancia en modo MOUNT (standby)
STARTUP MOUNT;
-- Activar recuperación gestionada
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
🔹 Oracle 19c, 21c, 23ai (Real-Time Apply y Broker completo)
-- Real-Time Apply recomendado
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;
-- Modo normal también válido
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;
🔍 Validaciones con SQL
📌 Script estado_dataguard.sql
SET LINES 200
COL dest_name FOR A20
COL destination FOR A50
COL error FOR A15
COL db_unique_name FOR A15
COL name FOR A100
SELECT dest_id, dest_name, target, name_space, destination, status, error, db_unique_name
FROM v$archive_dest
WHERE destination IS NOT NULL;
SELECT dest_id, dest_name, status, type, srl, recovery_mode
FROM v$archive_dest_status
WHERE dest_id = 2;
EXIT;
📌 Script dg_sync.sql
SET LINE 180
SET PAGES 30
COLUMN LOGON_TIME FORMAT A20
COLUMN USERNAME FORMAT A15
COLUMN OSUSER FORMAT A20
SELECT
ARCH.THREAD# "Thread",
ARCH.SEQUENCE# "Last Sequence Received",
APPL.SEQUENCE# "Last Sequence Applied",
(ARCH.SEQUENCE# - APPL.SEQUENCE#) "Difference"
FROM
(SELECT THREAD#, SEQUENCE#
FROM V$ARCHIVED_LOG
WHERE (THREAD#, FIRST_TIME) IN
(SELECT THREAD#, MAX(FIRST_TIME) FROM V$ARCHIVED_LOG GROUP BY THREAD#)) ARCH,
(SELECT THREAD#, SEQUENCE#
FROM V$LOG_HISTORY
WHERE (THREAD#, FIRST_TIME) IN
(SELECT THREAD#, MAX(FIRST_TIME) FROM V$LOG_HISTORY GROUP BY THREAD#)) APPL
WHERE
ARCH.THREAD# = APPL.THREAD#
ORDER BY 1;
EXIT;
🛠️ Script Bash desde Primaria: sync_dg_botica.sh
#!/bin/bash
. /home/oracle/BOTICADB.env
sqlplus -s / as sysdba <<EOF
SET PAGESIZE 50
SET LINESIZE 180
PROMPT === Estado de sincronización Data Guard ===
@/home/oracle/scripts/dg_sync.sql
EOF
Puedes programarlo en cron
o integrarlo con Zabbix/Nagios.
Data Guard Broker (DGMGRL) — desde Oracle 12c+
⚙️ Paso 1: Habilitar Broker
ALTER SYSTEM SET DG_BROKER_START=true SCOPE=BOTH;
🔗 Paso 2: Crear Configuración
dgmgrl sys/password@primaria
CREATE CONFIGURATION 'DGCFG_BOTICA' AS
PRIMARY DATABASE IS PRIMARIA_DB
CONNECT IDENTIFIER IS primaria;
ADD DATABASE STANDBY_DB AS
CONNECT IDENTIFIER IS standby
MAINTAINED AS PHYSICAL;
ENABLE CONFIGURATION;
🔍 Validaciones
SHOW CONFIGURATION;
SHOW DATABASE VERBOSE PRIMARIA_DB;
SHOW DATABASE VERBOSE STANDBY_DB;
⟲ Switchover
dgmgrl
CONNECT /
SWITCHOVER TO 'STANDBY_DB';
Failover (desastre)
FAILOVER TO 'STANDBY_DB' IMMEDIATE;
🔄 Reinicio Automático con systemd
Archivo: /etc/systemd/system/syncdg-botica.service
[Unit]
Description=Revisión automática de sincronización Oracle Data Guard
[Service]
User=oracle
ExecStart=/home/oracle/scripts/sync_dg_botica.sh
Restart=on-failure
[Install]
WantedBy=multi-user.target
Activar:
sudo systemctl daemon-reexec
sudo systemctl daemon-reload
sudo systemctl enable syncdg-botica.service
sudo systemctl start syncdg-botica.service
🧠 Tips de la Botica
Usa
VALIDATE DATABASE VERBOSE
solo en versiones 12c+.Documenta cada
switchover
yfailover
cuidadosamente.Nunca dejes el
observer
sin monitorear (FSFO).En OCI, aprovecha FastConnect o Private Endpoints para baja latencia.
📧 admin@laboticadeldba.com — ¡Consulta casos específicos de HA, rendimiento o DR!
¿Tienes un caso específico o un entorno complejo que quieres revisar? Escríbeme en los comentarios o comunicate directo la casilla de correos Admin@LaBoticaDelDBA.com ¡En la botica siempre hay un elixir de soluciones para cada casuística, problema de rendimiento o alta disponibilidad!
Subscribe to my newsletter
Read articles from Mauricio Muñoz Palma directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Mauricio Muñoz Palma
Mauricio Muñoz Palma
Bienvenidos a "La Botica del DBA" Donde la pasión por las bases de datos Oracle se transforma en conocimiento y excelencia. Este espacio está diseñado para ser el laboratorio de ideas, soluciones y estrategias que todo DBA necesita para optimizar, innovar y liderar en el mundo de las bases de datos. Desde los fundamentos hasta las últimas tendencias, aquí encontrarás guías prácticas, análisis profundos y herramientas que impulsarán tu carrera y tus proyectos al siguiente nivel.