近期发现一个奇怪的问题,生产环境正常运行,突然数据库的逻辑日志就不能备份了,后经过询问得知是启动数据库主进程所在目录被删除。
数据库备份逻辑日志的大概流程为
ALARMPROGRAM /opt/gbase330/etc/log_full_bak.sh
该参数监听数据库时间,当发生逻辑日志切换时,会捕获该事件,然后执行配置的脚本进行备份操作,为了定位问题,将debug输出到日志文件
#!/bin/sh
exec 2>/home/gbasedbt/test.log
set -x
LOGDIR=/home/gbasedbt/test.log
PROG=`basename $0`
USER_LIST=gbasedbt
BACKUP_CMD="ontape -a -d"
EXIT_STATUS=0
PWD=$(pwd)
EVENT_SEVERITY=$1
EVENT_CLASS=$2
EVENT_MSG="$3"
EVENT_ADD_TEXT="$4"
EVENT_FILE="$5"
case "$EVENT_CLASS" in
23)
$BACKUP_CMD
EXIT_STATUS=$?
;;
*)
;;
esac
exit $EXIT_STATUS
当数据库启动目录被删除时,日志信息如下
+ LOGDIR=/home/gbasedbt/test.log
++ basename /opt/gbase330/etc/log_full_bak.sh
+ PROG=log_full_bak.sh
+ USER_LIST=gbasedbt
+ BACKUP_CMD='ontape -a -d'
+ EXIT_STATUS=0
+ EVENT_SEVERITY=2
+ EVENT_CLASS=23
+ EVENT_MSG='Logical Log 131 Complete, timestamp: 0x7cf0e5d.'
+ EVENT_ADD_TEXT='Logical Log 131 Complete, timestamp: 0x7cf0e5d.'
+ EVENT_FILE=
+ case "$EVENT_CLASS" in
+ ontape -a -d
could not fork server connection, SQLCODE -922+ EXIT_STATUS=1
+ exit 1
可以发现备份命令报错了
922 的错误就是不能获取当前的工作目录
811

被折叠的 条评论
为什么被折叠?



