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


    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • db2管理工具小结
    • DB2数据库的导出与导入(Windows客户端)
    • db2 CLP中如何换行
    • DB2查看表结构及所用表语句
    • DB2 · CREATE TABLESPACE
    • 使用DB2对象:创建模式、表和视图
    • DB2数据库逻辑卷的复制
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1