OGG Classic: Automatización de Procesos mediante Scripts de GGSCI

Para las implementaciones basadas en la arquitectura Classic, no contamos con una API REST. En este escenario, la automatización se realiza mediante la ejecución de comandos directos en el utilitario ggsci desde el Shell de Linux.

A continuación, el paso a paso para gestionar el ciclo de vida del Replicat de forma externa.

1. Script de Parada Controlada (Graceful Shutdown)

En la arquitectura Classic, es vital enviar el comando de parada y validar que el proceso realmente se detuvo antes de que el Target en OCI quede fuera de línea.

#!/bin/bash
# OGG Classic - Parada Programada
GG_HOME=/u01/app/oracle/product/gg_classic
REPLICAT_NAME=REP_OCI
$GG_HOME/ggsci << EOF
STOP REPLICAT $REPLICAT_NAME
EXIT
EOF
# Validación de seguridad: Verificar si el proceso OS aún existe
sleep 5
pgrep -f "replicat.*$REPLICAT_NAME" > /dev/null
if [ $? -eq 0 ]; then
echo "Alerta: El Replicat $REPLICAT_NAME no se detuvo a tiempo."
else
echo "Replicat detenido exitosamente."
fi

2. Script de Validación e Inicio (Health Check & Start)

Al igual que en Microservicios, el script debe confirmar la disponibilidad del puerto del Target (1521) antes de intentar el arranque para evitar estados de ABENDED por fallos de red.

#!/bin/bash
# OGG Classic - Validación e Inicio
TARGET_IP="129.x.x.x"
PORT="1521"
GG_HOME=/u01/app/oracle/product/gg_classic
# Validación de conectividad (TCP Health Check)
nc -zv $TARGET_IP $PORT > /dev/null 2>&1
if [ $? -eq 0 ]; then
$GG_HOME/ggsci << EOF
START REPLICAT REP_OCI
EXIT
EOF
echo "Target detectado. Proceso Replicat iniciado."
else
echo "Target sigue en Downtime. Abortando inicio."
exit 1
fi

Configuración del Programador (Crontab)

Para cerrar el ciclo de automatización, añadimos las tareas al Crontab del usuario dueño de los binarios de GoldenGate (usualmente oracle).

# Automatización OGG Classic - Ahorro de Costos
50 21 * * * /u01/app/scripts/gg_classic_stop.sh >> /var/log/gg_classic_auto.log 2>&1
10 07 * * * /u01/app/scripts/gg_classic_start.sh >> /var/log/gg_classic_auto.log 2>&1

Dejar un comentario