En infraestructuras críticas, es necesario establecer ventanas de mantenimiento o periodos de inactividad operativa. Oracle GoldenGate 26ai permite gestionar la detención y el arranque de procesos de forma externa, asegurando que la replicación se reanude exactamente en el punto de interrupción.
A continuación, se detalla el procedimiento para automatizar estas tareas utilizando la REST API y el planificador de tareas del sistema operativo.
Implementación Técnica: Automatización con API REST
La arquitectura de Microservicios de 26ai expone endpoints específicos para el control de procesos. Esto elimina la necesidad de scripts interactivos y permite una integración directa con el Shell de Linux.
1. Script de Detención Programada (Scheduled Stop)
Este script realiza un cierre ordenado del Replicat, permitiendo que las transacciones en vuelo se completen antes de cambiar el estado del proceso.
#!/bin/bash# GG 26ai - Scheduled Process StopUSER="admin"PASS="TuPassword"# Endpoint para el servicio de administraciónURL="https://localhost:443/deployments/primary/services/v2/receivers/REP_TARGET/action/stop"# Ejecución del comando PATCH con tiempo de espera (Timeout)curl -s -u "$USER:$PASS" -X PATCH "$URL" \ -H "Content-Type: application/json" \ -d '{"timeout": 60}'echo "Proceso Replicat detenido siguiendo el cronograma establecido."
2. Script de Arranque Programado (Scheduled Start)
Una vez finalizada la ventana de mantenimiento, el siguiente script reactiva la replicación. Se incluye una validación previa de conectividad hacia el nodo destino.
#!/bin/bash# GG 26ai - Scheduled Process StartTARGET_HOST="192.168.1.100"PORT="1521"USER="admin"PASS="TuPassword"# Validación de disponibilidad del Target (Health Check)nc -zv $TARGET_HOST $PORT > /dev/null 2>&1if [ $? -eq 0 ]; then curl -s -u "$USER:$PASS" -X PATCH \ "https://localhost:443/deployments/primary/services/v2/receivers/REP_TARGET/action/start" \ -H "Content-Type: application/json" echo "Conectividad validada. Proceso Replicat iniciado exitosamente."else echo "Error: El destino no responde. Abortando inicio programado." exit 1fi
Configuración del Programador de Tareas (Crontab)
Para que el ciclo sea autónomo, definimos las horas de ejecución en el archivo crontab. Esto asegura que los procesos se detengan y arranquen sin intervención manual.
| Acción | Hora | Comando |
| Stop | 22:00 | /u01/app/scripts/gg_stop.sh |
| Start | 06:00 | /u01/app/scripts/gg_start.sh |
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 26ai00 22 * * * /u01/app/scripts/gg_stop.sh >> /var/log/gg_26ai_auto.log 2>&100 06 * * * /u01/app/scripts/gg_start.sh >> /var/log/gg_26ai_auto.log 2>&1
Dejar un comentario