对于Informix的备份,NetVault采用onbar作为接口。Onbar是informix数据库中专门为第三方软件提供的接口,是informix数据备份和恢复的重要工具。
当informix中的逻辑日志写满时,informix会自动启动$INFORMIX/etc/log_full.sh来进行逻辑日志的备份,而log-full.sh实际上是调用onbar –l 命令实现备份的。这样当onbar将数据传送给NetVault的时候,在NetVault的数据库中会为该任务生成一个唯一的任务ID,即jobID。那么当onbar将大量的逻辑日志发送给NetVault的时候,在NVDB中将产生大量的关于逻辑日志的ID,这会影响到NetVault的性能。
为了避免这种情况的出现,需要进行如下的设置:
1) 在NetVault中设置关于informix log的备份任务,并将该任务的schedule设为trigger方式。
2) 定义informix log 备份到指定的磁带的target set
3) 在informix APM中定义该target set
4) 修改$INFORMIXDIR/etc/log_full.sh 文件中的内容,使informix在调用onbar –l 命令时,直接调用nvtrigger命令实现informix log 备份。
$ vi $INOFRMIXDIR/etc/log_full.sh
PROG=`basename $0`
USER_LIST=informix
BACKUP_CMD="/usr/NetVault6/util/nvtrigger -server C240 infxlog" ->替换默认的“ onbar –l ”; -server 变量后面为netvault server的名字。
EXIT_STATUS=0
EVENT_SEVERITY=$1
EVENT_CLASS=$2
EVENT_MSG="$3"
EVENT_ADD_TEXT="$4"
EVENT_FILE="$5"
case "$EVENT_CLASS" in
23)
# onbar assumes no operator is present,
# so all messages are written to the activity
# log and there shouldn't be any output, but
# send everything to /dev/null just in case
$BACKUP_CMD 2>&1 >> /dev/null
EXIT_STATUS=$?
;;
# One program is shared by all event alarms. If this ever gets expanded to
# handle more than just archive events, uncomment the following:
*)
# EXIT_STATUS=1
;;
esac
exit $EXIT_STATUS
这样,当informix 的逻辑日志满时,informix 会调用NetVault的nvtrigger 命令进行相应的informix log 备份。



