linux系统金仓数据库定时备份

1.新建shell脚本

vim /opt/KingbaseAutoback.sh

2.数据库定时备份脚本如下:

#!/bin/bash
####################################################################################################################
###
###Descipt: this script is used for kingbase database backup,before you run it,you should set the variables such as
###         kdb_home,kdbback_dest,kdb_user,kdb_pass,kdb_host,kdb_port,kdb_list,keep_time and so on.
###
####################################################################################################################
####################### variable define ##########################

# 数据库安装目录
kdb_home="/opt/Kingbase/ES/V8/Server"

# 数据库备份的目标路径
kdbback_dest="/opt/kingbaseback"

# 数据库用户名
kdb_user="thams"

# 数据库用户密码
kdb_pass="123"

# 数据库端口号
kdb_port="54321"

# 数据库访问ip
kdb_host="192.168.216.131"

# 数据库的模式,多个模式可用逗号分隔,如"TEST,SAMPLE"
kdb_list="thams"

# 保留时间
keep_time="7"
 
date=$(date '+%Y%m%d%H')
kdbback_final="${kdbback_dest}/kdbback_final"
LD_LIBRARY_PATH="${kdb_home}/unixodbc/lib:${kdb_home}/lib:${kdb_home}/bin"
 
####################### kingbase backup dest test ##################
 
[ -d ${kdbback_dest} ] || mkdir -p ${kdbback_dest}
[ -d ${kdbback_final} ] || mkdir -p ${kdbback_final}
 
 
####################### kingbase backup start  #######################
 
cd ${kdbback_dest}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH
for db in `echo $kdb_list | sed 's/,/ /g'`; do
	[ -d ${db} ] || mkdir -p ${db}
        cd ${db}
	##### kingbase server check as follows
        ${kdb_home}/bin/ksql -h ${kdb_host} -p ${kdb_port} -U ${kdb_user} -W ${kdb_pass}  -c "select now();" TEMPLATE2 > /dev/null 2>&1
        if [ $? -ne 0 ] ;then
	    echo "${date} sorry, please run the script in a kingbase server" >> backup_${db}_${date}.log 
	    mv backup_${db}_${date}.log ${kdbback_final}
	    exit 1
        else
	    echo "${date} kingbase server is ok,kingbase backup ${db} is beginning ..." >> backup_${db}_${date}.log
        fi
	##### end
        ##### kingbase backup files process as follows
	${kdb_home}/bin/sys_dump -p ${kdb_port} -U ${kdb_user} -W ${kdb_pass} -h ${kdb_host} -f ${db}_${date}.dmp ${db} >> backup_${db}_${date}.log 2>&1
        if [ $? -eq 0 ] ;then
            tar zcvf ${db}_${date}.tar.gz ${db}_${date}.dmp*
            if [ $? -eq 0 ] ;then
               rm -f ${db}_${date}.dmp*
            else
               mv ${db}_${date}.dmp* ${kdbback_final} 
            fi
            find . -mtime +${keep_time} -name ${db}'_*' | xargs -I {} rm {}
        else
	    rm -f ${db}_${date}.dmp*
        fi
        ###### end
        ###### kingbase backup log files process as follows
	tar zcvf backup_log_${db}_${date}.tar.gz backup_${db}_${date}.log
        if [ $? -eq 0 ] ;then
	       rm -f backup_${db}_${date}.log
	else
	       mv backup_${db}_${date}.log ${kdbback_final}
        fi
        find . -mtime +${keep_time} -name backup_log_${db}'_*' | xargs -I {} rm {}
        ###### end
        cd ${kdbback_dest} 
done
exit 0
 

3.给权限

chmod 777 KingbaseAutoback.sh //777为最高权限,视自己情况修改权限

4.启动crontab计时器服务

service crond start

5.编辑crontab

[root@localhost opt]# crontab -e

6.写入命令,让数据库在每周的周二,周四,周六的23:30自动备份数据库

30 23 * * 2,4,6 /opt/KingbaseAutoback.sh
 分 时 日 月 周 command

wq 保存命令,操作方式与vim编辑器相同

7.crontab -l 查看任务列表

[root@localhost opt]# crontab -l
30 23 * * 2,4,6 /opt/KingbaseAutoback.sh

8.可以通过cd /var/spool/mail/用户文件 查看执行情况

crontab计时器的详细用法见crontab命令 – 定时执行任务
定时执行任务

kingbase还原数据库语句
ksql -h ip -U 用户名 -W 密码 -d 库名 -f 备份路径/xxx.sql

金仓V8_R6:
以下为金仓V8_R6备份工具
R6logical_1.zip
1.修改backup8.conf文件中的连接信息为对应的连接信息

2,可用过执行backup8.sh运行

3.定时备份任务可参考以上第5,6,7,8条

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值