使用逻辑备份清理脚本实现逻辑备份与清理
关键字
逻辑备份与清理、人大金仓、KingbaseES
1、问题描述
逻辑备份清理脚本可以实现不同类型的数据库逻辑备份、备份集清理、归档清理、基本信息收集、备份导入数据库等工作。bin/logic_backup_manager.sh为主脚本文件,解析配置文件,执行备份、清理等工作;share/ logic_backup_manager.conf为主配置文件。
2、操作步骤
2.1 准备.job文件
为了满足不同客户现场的不同的逻辑备份任务,同时统一规范管理这些任务,因此将备份任务划分为不同的类型,目前支持Job1、Job2、Job3、Job4、Job5、Job6六种类型的任务。
job1:备份指定模式,可多个模式
job2:备份指定表,可多个表
job3:备份全库,排除指定模式或指定表
job4:备份指定表。
job5:备份整个数据库。
job6:备份打包指定目录下N天前的旧文件并删除旧文件,可用于清理sys_log目录或者脚本日志目录。
例如新建a.job,内容为_dump_all="yes",类型为job4。并将该文件放到bin/kdb_backup/jobs/路径下。
2.2 编辑share/logic_backup_manager.conf配置文件
根据自己的配置修改该文件,其中_log_level表示日志级别,0代表debug,1代表info,2代表warn,3代表error;_kdb_connect_timeout表示链接数据库的超时秒数,最小为2(设置为1时至也为2s超时)负数或0代表永不超时;_older_files_age表示执行job6任务时的旧文件保留天数。
2.3 运行bin/logic_backup_manager.conf脚本
该脚本主要包括如下命令:
- logic_backup_manager.sh backup # 执行所有.job备份任务
- logic_backup_manager.sh backup a.job # 执行某个具体的备份任务
- logic_backup_manager.sh restore #执行所有备份还原任务
- logic_backup_manager.sh restore starttime-endtime #执行指定时间备份还原任务,时间格式为yyyymmdd
- logic_backup_manager.sh clean # 清理逻辑备份内容
- logic_backup_manager.sh clean a.job # 清理某个具体备份任务的备份内容
- logic_backup_manager.sh clean archived-wal # 清理wal文件
- logic_backup_manager.sh show-auto # 输出自动备份清理的crontab内容
- logic_backup_manager.sh backup-clean "a.job b.job" # 清理归档,执行job备份和清除
- logic_backup_manager.sh collect-info # 收集数据库和OS信息
1、例如在执行bakup任务时:
添加.job文件并配置好conf文件后,执行logic_backup_manager.sh backup或logic_backup_manager.sh backup a.job,即可完成所有任务或a.job的备份,备份文件在bin/kdb_backup/databackup/kdb_daily_dump/2023/08/31/a.job/路径下可以看到,并且在/home/liujie2/KES/bin/kdb_backup/databackup/log/下生成daily20230831.log文件,在log文件中,如果_log_level设置为0,那么日志文件中将会按照debug模式打印信息:
如果_log_level设置为1,那么日志文件中将只显示相应的info信息:
如果_log_level设置为2或3,那么日志文件中将按照warn和error的模式打印信息。如果没有warn和error,将只打印备份文件:
2、在执行clean任务时:
执行logic_backup_manager.sh clean或logic_backup_manager.sh clean a.job,即可完成所有备份或a.job的备份清理。清理过程中脚本将根据_keep_count的值来保留备份数量。如果该值为0时表示将备份全部删除,如果大于等于当前备份数量的值,表示保留所有备份;
3、在执行clean archived-wal任务时:
执行logic_backup_manager.sh clean archived-wal命令可以实现wal日志的清理。清理过程中脚本将根据_archived_wal_age的值来清理wal归档日志,该值表示归档wal日志的保留天数。