定期备份kingbase数据库

原文链接:https://blog.csdn.net/weixin_47387140/article/details/128584537

1.书写备份数据脚本

/bin/bash
#date:0106
#managed_by:mzh
bakdir=/var/lib/kingbase
if [ ! -d $bakdir ] ; then
mkdir -p $bakdir
fi
processing(){
clear
for ((i=0;$i<=100;i+=5))
do
echo -e "\e[6;9H[processing...$i%]"
sleep 0.2
done
}

kingabse_bak(){
cd /opt/Kingbase/ES/V8/
./Server/bin/sys_dump -U system -p 7701 dbname -f ${bakdir}/dbname`date+"%y%m%d-%H%M"`.sql
if [ $? -eq 0 ]; then
echo "dbname 备份完成."
fi
}

clear_bak(){
ls -lt $bakdir/* |awk 'NR>=3'|xargs rm -rf --

}

#显示进度条
processing
#备份库
kingbase_bak
#保留最近2次备份
clear_bak
1.1 遇到问题

1.1.1 执行clear_bak时报错 : rm: invalid option -- w ##解决 添加 -- 结束 rm 的参数

1.1.2 在我执行kingbase_bak时,发现不能正常执行 : 1) 当 su - dbuser后,因为bakdir目录的属主,属组不是dbuser ,用户无法写入文件 ;2) 切换到dbuser身份后,并不能继续执行属主属组为root的备份脚本 ##解决: 以root身份执行备份命令

2.为脚本添加执行权限 chmod +x sqlbak.sh

3.添加脚本路径到环境变量

export PATH=${PATH}:/root/scripts/sqlbak.sh

sed -i '$a export PATH=${PATH}:/root/scripts/sqlbak.sh' /etc/profile

source /etc/profile

4.备份脚本添加到计划任务

00 17 * * 5 bash sqlbak.sh

ls -t /data/backup | awk '$0~/tar.gz/' | awk 'NR>3' | xargs rm -rf
posted @   枫树湾河桥  阅读(103)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
Live2D
欢迎阅读『定期备份kingbase数据库』
剑桥
21:14发布
剑桥
21:14发布
0°
西南风
3级
空气质量
相对湿度
28%
今天
-10°/0°
周二
多云
-3°/8°
周三
大雨
4°/12°
点击右上角即可分享
微信分享提示