Скрипт подсчета разницы seq в primary и secondary базах.
Выводит только значение разницы, что делает его удобным для использования в Zabbix. Есть смысл присылать alert, когда значение превышает 5.
Если sqlplus выходит с ненулевым значением (например, не может подключиться), скрипт тоже выходит с errorcode 1.
Код:
#!/bin/bash
. ~/.bash_profile
output=$(sqlplus -L -S / as sysdba 2>>/dev/null<<EOF
set echo off
set pagesize 0
select max(sequence#) from v\$log_history;
EOF
)
if [ $? -ne 0 ]; then
exit 1
fi
pr_seq=$(echo "$output" | awk '{print $1}')
output=$(sqlplus -L -S sys/pwd@sun_st2 as sysdba 2>>/dev/null<<EOF
set echo off
set pagesize 0
select max(sequence#) from v\$log_history;
EOF
)
if [ $? -ne 0 ]; then
exit 1
fi
st_seq=$(echo "$output" | awk '{print $1}')
echo $(( $pr_seq-$st_seq ))