2023年7月30日发(作者:)
Linux中kingbase数据库定时⾃动备份(crontab命令)1.新建shell脚本vim /opt/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"#
数据库访问ipkdb_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_PATHfor 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 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}. ${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}. 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}
doneexit 0
3.给权限chmod 777 //777为最⾼权限,视⾃⼰情况修改权限4.启动crontab计时器服务service crond start5.编辑crontab[root@localhost opt]# crontab -e6.写⼊命令,让数据库在每周的周⼆,周四,周六的23:30⾃动备份数据库30 23 * * 2,4,6 /opt/分 时 ⽇ ⽉ 周 commandwq 保存命令,操作⽅式与vim编辑器相同b -l 查看任务列表[root@localhost opt]# crontab -l30 23 * * 2,4,6 /opt/8.可以通过cd /var/spool/mail/⽤户⽂件 查看执⾏情况crontab计时器的详细⽤法见kingbase还原数据库语句ksql -h ip -U ⽤户名 -W 密码 -d 库名 -f 备份路径/
发布者:admin,转转请注明出处:http://www.yc00.com/web/1690655951a387879.html
评论列表(0条)