DB2日志文件归档脚本db2uext2的bashshell实现用户出口USEREXIT
来源:未知 责任编辑:责任编辑 发表时间:2014-03-23 22:31 点击:次
很久没发过文了,发一个!
参考官方文档:http://pic.dhe.ibm.com/infocenter/db2luw/v9r7/index.jsp?topic=%2Fcom.ibm.db2.luw.admin.ha.doc%2Fdoc%2Fc0024701.html
使用用户出口程序使日志文件归档和检索自动进行
通过创建 DB2? 数据库管理器调用来执行归档或检索操作的用户出口程序,可以自动执行日志文件归档和检索。
当 DB2 数据库管理器调用用户出口程序时,会执行下列操作:
-
数据库管理器将控制权交给用户出口程序;
-
数据库管理器将参数传递给用户出口程序;并且
-
在完成时,用户出口程序再将返回码发送回数据库管理器。
DB2系统本身带的是 C 语言的,并且比较复杂,还编译不过,研究参数之后 想办法 写了一个简单的 bash shell 脚本的
需要把脚本 db2uext2 在 root 下复制到 /home/db2inst1/sqllib/bin/ 目录下
并且修改权限,不知道不改能不能用,反正改改吧
chown bin:bin db2uext2
chmod 755 db2uext2
然后修改数据库配置
db2 get db cfg for DBNAME | grep LOGARCH
db2 update db cfg for DBNAME using LOGARCHMETH1 USEREXIT
然后重启数据库生效
目前只实现了存档功能ARCHIVE,没有实现恢复功能,数据库恢复时靠指定日志路径进行恢复
db2uext2 脚本文件的内容#!/bin/bash #db2uext2 -OSLinux -RLSQL07020 -RQARCHIVE -DBDBNAME -NN0 -LP/data/archlog/ -LNS0000123.LOG #copy archived log file to remote host, do not delete local log file!!! #do not delete local log file!!! RHOST=192.168.0.180 RROOT=/data/backup/ LROOT=/data/archlog/ DIR=/opt/admin/db2 LOG=$DIR/log/archive-log.log RQ="" DB="" LP="" LN="" for arg in "$@" do opt=${arg:1:2} val=${arg:3} if [ "$opt" = "RQ" ]; then RQ="$val" elif [ "$opt" = "DB" ]; then DB="$val" elif [ "$opt" = "LP" ]; then LP="$val" elif [ "$opt" = "LN" ]; then LN="$val" fi done now=`date +'%Y-%m-%d %H:%M:%S'` today=`date +%Y-%m-%d` LPATH=$LROOT$DB/archlog/ LFILE=$LPATH$LN if [ "$RQ" = "ARCHIVE" ]; then if [ ! -d $LPATH ]; then echo create local archive log path $LPATH mkdir -p $LPATH >> $LOG fi scp $LP$LN $LPATH >> $LOG RPATH=$RROOT$DB/$today/archlog message="$now move $LFILE -> $RHOST:$RPATH" ssh $RHOST mkdir -p $RPATH >> $LOG rsync -q -auPv $LFILE $RHOST:$RPATH >> $LOG rm $LFILE #echo $message echo $message >> $LOG else echo RESTORE fi
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>