本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7281310.html?templateId=171...
概述
如果有YCM,推荐使用YCM自动备份,详情请参考YCM官方文档。但是如果没有YCM,则可通过crontab实现自动备份。目前示例的自动备份方案是每周的周3、周6的凌晨0点做全量备份;每天的凌晨2点做增量备份;每天的凌晨4点删除15天以上的备份,可根据项目需求灵活调整。
步骤
下载脚本
下载附件的脚本:backup\_scripts.tar.gz
部署脚本
su - yashan
cd $HOME
\## 把软件包放到yashan用户的$HOME目录
tar -zxvf backup\_scripts.tar.gz
cd backup\_scripts
chmod 750 *.sh
chmod 640 db\_backup.ini yashan.cron
配置yashandb连接信息
根据数据库连接串替换DB\_HOST和DB\_PORT即可
[yashan@yashandb backup\_scripts]$ cat db\_backup.ini
DB\_HOST=127.0.0.1
DB\_PORT=1688
DB\_USER=DBBAK
DB\_PASSWORD="UDIwMjRaR0ppWVdzXzA0MDI="
初始化catalog和创建备份用户
前提条件是要求能够免密登陆yasdb,执行yasql "/ as sysdba",否则请修改脚本。备份用户和密码是dbbak/P2024ZGJiYWs\_0402,"UDIwMjRaR0ppWVdzXzA0MDI="是dbbak用户密码P2024ZGJiYWs\_0402的base64加密结果,加密命令是echo -n ${DB\_PASSWORD} | base64
./init\_yasrman.sh
初始化cron任务
crontab yashan.cron
检查cron任务
crontab -l应该有如下输出:每周的周3、周6的凌晨0点做全量备份;每天的凌晨2点做增量备份;每天的凌晨4点删除15天以上的备份(yasrman\_clean\_backup.sh脚本中存在KEEP\_DURATION=1296000设置,意味着最大保留时长15天)
[yashan@yashandb backup\_scripts]$ crontab -l
0 0 * * 3,6 /home/yashan/backup\_scripts/yasrman\_level\_0\_full.sh
0 2 * * * /home/yashan/backup\_scripts/yasrman\_level\_1\_incr.sh
0 4 * * * /home/yashan/backup\_scripts/yasrman\_clean\_backup.sh
目前示例的自动备份方案是每周的周3、周6的凌晨0点做全量备份;每天的凌晨2点做增量备份;每天的凌晨4点删除15天以上的备份,可根据项目需求灵活调整。
人工备份确认脚本正常运行
/home/yashan/backup\_scripts/yasrman\_level\_0\_full.sh # level 0的全量备份
/home/yashan/backup\_scripts/yasrman\_level\_1\_incr.sh # level 1的增量备份
/home/yashan/backup\_scripts/yasrman\_clean\_backup.sh # 删除15天以上的备份
检查人工备份是否符合预期
对上一步的人工备份检查备份是否符合预期
yasrman "dbbak/P2024ZGJiYWs\_0402" -c "list backup" -D /home/yashan/catalog
检查自动备份是否符合预期
按照自动备份方案的时间设置,检查自动备份是否符合预期
yasrman "dbbak/P2024ZGJiYWs\_0402" -c "list backup" -D /home/yashan/catalog
问题处理
1) 在麒麟操作系统,执行crontab yashan.cron可能报错
You (yashan) are not allowed to use this program (crontab)
See crontab(1) for more information
解决方法是用root执行以下命令即可
echo "yashan" >> /etc/cron.allow
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。