使用逻辑备份清理脚本实现逻辑备份与清理

关键字

逻辑备份与清理、人大金仓、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日志的保留天数。

3、参考资料

《KingbaseES运维工具参考手册》

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐