Skip to main content

Command Palette

Search for a command to run...

[OCI-OGG] Auto start Ogg en Linux

Updated
3 min read
[OCI-OGG] Auto start Ogg en Linux
D

Ingeniero informático, Oracle ACE, DBA y Arquitecto OCI, con más de 15 años de experiencia en plataformas Oracle. Certificado en OCI Certified Architect Professional y OCI Migration and Integration Certified Professional.

Vamos a definir un servicio para nuestro golden gate arranque en linux de manera automática cuando el sistema se reinicia. Para ello necesitamos definir lo siguiente:

  • Ficheros de parámetros para golden gate.

  • Sh para gestionar el arranque/parada del golden gate.

  • Un enlace simbólico para el binario ggsci.

  • El servicio de linux para golden gate.

El primer paso que vamos hacer es definir los ficheros de parámetros que serán invocados para arrancar/parar nuestro golden gate:

  • start_ogg
start manager
exit

Aquí solo arrancamos el manager, porque especificamos en el manager que arranquen los procesos al arrancar el manager (AUTOSTART ER *) o reintentar en caso de algún fallo (AUTORESTART ER *, RETRIES 4, WAITMINUTES 2), seria así:

PORT 7809
AUTOSTART ER *
AUTORESTART ER *, RETRIES 4, WAITMINUTES 2
  • stop_ogg
stop extract *
stop replicat *
stop manager !
exit

El siguiente paso que vamos hacer es definir un shell script para gestionar el arranque/parada de nuestro golden gate. Este script recibirá un parámetro de entrada y esperara los siguientes valores:

  • 1 (Arranque)

  • 0 (Parada)

Este será nuestro script:

#!/bin/bash

. /home/ogg/.bashrc

function ogg_start {
  INFO=`$OGG_HOME/ggsci PARAMFILE $OGG_HOME/start_ogg`
  echo ${INFO}
}


function ogg_stop {
  INFO=`$OGG_HOME/ggsci PARAMFILE $OGG_HOME/stop_ogg`
  echo ${INFO}
}


case $1 in
  "1" )
    ogg_start
    ;;
  "0" )
    ogg_stop
    ;;
  * )
    ;;
esac

El siguiente paso es definir el enlace simbólico para el binario de nuestro golden gate:

[root@system]# ln -s /ogg/19.1/ggsci /usr/local/bin/ggsci
[root@system]# ls -lstra /usr/local/bin/ggsci

Y por último definimos el fichero de configuración del servicio, para ello tendremos que ir al directorio /etc/systemd/system como usuario root.

El contenido del fichero de configuración tendrá lo siguiente:

[Unit]
Description=OGG
[Service]
Type=forking
RemainAfterExit=yes
Environment=PATH=/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/oracle/.local/bin:/ogg/19.1
WorkingDirectory=/home/ogg/scripts
User=ogg
ExecStart=/home/ogg/scripts/srv_ogg.sh 1
ExecStop=/home/ogg/scripts/srv_ogg.sh 0
[Install]
WantedBy=multi-user.target

Ejecutamos los siguientes comandos:

  • systemctl daemon-reload para recargar la configuración del demonio systemd. Es necesario realizarlo para asegurarnos que systemctl sea consciente del servicio que vamos a crear.

  • systemctl enable iniciamos el servicio.

  • systemctl restart reiniciar el servicio.

  • systemctl status para comprobar el estado del servicio.

[root@system]# systemctl daemon-reload
[root@system]# systemctl enable ogg.service
[root@system]# systemctl restart ogg.service
[root@system]# systemctl status ogg
● ogg.service - OGG
   Loaded: loaded (/etc/systemd/system/ogg.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2025-03-02 01:01:33 CET; 57s ago
  Process: 13521 ExecStop=/home/ogg/scripts/srv_ogg.sh 0 (code=exited, status=0/SUCCESS)
  Process: 17592 ExecStart=/home/ogg/scripts/srv_ogg.sh 1 (code=exited, status=0/SUCCESS)
 Main PID: 17617 (mgr)
    Tasks: 116 (limit: 79998)
   Memory: 4.2G
   CGroup: /system.slice/ogg.service
           ├─17617 ./mgr PARAMFILE /ogg/19.1/dirprm/mgr.prm REPORTFILE /ogg/19.1/dirrpt/MGR.rpt PROCESSID MGR
...
...
Mar 02 01:01:27 sbngecmprod69 systemd[1]: Starting OGG...
Mar 02 01:01:33 sbngecmprod69 systemd[1]: Started OGG.

Reiniciamos y comprobamos que OGG ha arrancado de manera automática

Revisamos el servicio

[root@sbngecmprod69 ~]# last reboot | head -1
reboot   system boot  5.4.17-2136.326. Sun Mar  2 12:16   still running
wtmp begins Tue Oct  1 11:47:00 2024
[root@sbngecmprod69 ~]# systemctl status ogg
● ogg.service - OGG
   Loaded: loaded (/etc/systemd/system/ogg.service; enabled; vendor preset: disabled)
   Active: active (running) since Sun 2025-03-02 12:16:38 CET; 20s ago
  Process: 1807 ExecStart=/home/ogg/scripts/srv_ogg.sh 1 (code=exited, status=0/SUCCESS)
 Main PID: 5935 (mgr)
    Tasks: 4 (limit: 820237)
   Memory: 209.9M
   CGroup: /system.slice/ogg.service
           └─5935 ./mgr PARAMFILE /ogg/19.1/dirprm/mgr.prm REPORTFILE /ogg/19.1/dirrpt/MGR.rpt PROCESSID MGR

Mar 02 12:16:25 sbngecmprod69 systemd[1]: Starting OGG...
Mar 02 12:16:38 sbngecmprod69 systemd[1]: Started OGG.

Listo. ¡Espero que os sirva!

Dejo por aquí los scripts utilizados

https://github.com/dbaenlasombra/srvc-ogg