dgobserver.ksh

In an Oracle Dataguard environment with Fast-Start Failover activated, you should be able to automate the restart of an “Observer”. This exactly what the script performs.

First of all you need to prepare the environment.

  • Add the ORACLE_SID into the ORATAB

  • Create under ${DMK_ORA_ADMIN_SID} a “etc” directory

  • Source DMK to load the new configuration

  • Copy into “${DMK_ORA_ADMIN_SID}/etc” the dgobserver.cfg template

cat ${DMK_HOME}/templates/etc/dgobserver.cfg
# template dgcheck.cfg  - defines variables for  the observer monitoring script

#****************************************************************************************
# Connection string to the ConfigurationWideServiceName
# create an entry in tnsnames.ora with
# <DB_NAME>_CFG.<DB_DOMAIN>=
#  (DESCRIPTION =(ADDRESS=(PROTOCOL=TCP)(HOST=<host1>)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=<host2>)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=<db_name>_CFG.<DB_DOMAIN>)))

ConnectStringConfigWide="/@<DB_UNIQUE_NAME>.<DB_DOMAIN>"

# To use 'in background' start-option, a wallet-connect (/@alias) is required

#****************************************************************************************
# Connection string to the primary - only to specify if not using ConnectStringConfigWide
#ConnectStringPrim="sys/xxxx@<DB_UNIQUE_NAME>.<DB_DOMAIN>"

#****************************************************************************************
# Connection string to the Standby - only to specify if not using ConnectStringConfigWide
#ConnectStringStdb="sys/xxxx@<DB_UNIQUE_NAME>.<DB_DOMAIN>"

#****************************************************************************************
# Kill the Observer process once timeout has been reached (seconds)
ObserverStopHardlyTimeOut=30

#****************************************************************************************
# This parameter specify how long the script retries to reach
# the databases in order to start the observer (seconds)
ObserverRebootRetryTime=600

It is recommended to connect to the configuration wide service name

DGMGRL> show configuration ConfigurationWideServiceName

This service is registered by all running database sites with the local listener. It is recommended to create a tnsnames alias <DB_UNIQUE_NAME>.<DB_DOMAIN> using this service (per default <db_name>_CFG.<db_domain>).

As highlighted by the above configuration the script tries to reach at least one database instance (regardless of the database role) in order to start/stop the observer and enter in a loop which retries to connect to the database for about 10minutes.

This is especially useful in case of a reboot; mostly the database servers needs more time to complete the boot sequence. Therefore the script loops for 10min before it gives-up.

Syntax

dgobserver.ksh [start|stop|status] [SID]

Do not forget to add the script into the “${DMK_HOME}/etc/service_start_stop.cfg” configuration file in order to start/ the observer in case of a reboot.

Last updated