【YashanDB知识库】非YCM方式的自动备份方案示例
本文内容来自YashanDB官网,原文内容请见 https://www.yashandb.com/newsinfo/7281310.html?templateId=1718516
概述
如果有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
问题处理
- 在麒麟操作系统,执行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

浙公网安备 33010602011771号