)
一、环境信息操作系统银河麒麟 Linux数据库人大金仓 KingbaseES V8数据库名OS_Core端口9988登录账号system密码Afj4*S1sd%d工具路径/data/kingbase/es/v8/Server/bin/备份目录/data/kbbak保留周期7天备份包日志统一7天自动清理执行系统用户kingbase定时触发root定时任务每日02:00执行二、备份脚本文件文件路径/data/kbbak/kb_backup.sh#!/bin/bash# KingbaseES 自动备份脚本 银河麒麟LinuxexportLANGen_US.UTF-8# 金仓密码环境变量exportKINGBASE_PASSWORDxxxxxxxxx# 【配置区域】DB_HOST127.0.0.1DB_PORT54321DB_USERsystemDB_NAMEOS_CoreBAK_DIR/data/kbbakLOG_FILE/data/kbbak/backup_task_log.txtRETENTION_DAY7# 金仓工具绝对路径SYS_DUMP/data/kingbase/es/v8/Server/bin/sys_dumpSYS_RESTORE/data/kingbase/es/v8/Server/bin/sys_restore# # 创建备份目录mkdir-p${BAK_DIR}echo${LOG_FILE}echoTask Start Time:$(date%Y-%m-%d %H:%M:%S)${LOG_FILE}# 生成备份文件名BAK_FILE${BAK_DIR}/${DB_NAME}_Full_$(date%Y-%m-%d_%H_%M).dumpechoBackup File Path:${BAK_FILE}${LOG_FILE}# 执行数据库备份${SYS_DUMP}-h${DB_HOST}-p${DB_PORT}-U${DB_USER}-d${DB_NAME}-Fc-f${BAK_FILE}${LOG_FILE}21DUMP_RET$?# 校验备份文件等价SQLServer RESTORE VERIFYONLY仅校验不恢复echoStart verify backup file${LOG_FILE}${SYS_RESTORE}-l${BAK_FILE}${LOG_FILE}21VERIFY_RET$?# 判断备份校验结果if[${DUMP_RET}-eq0][${VERIFY_RET}-eq0];thenecho${DB_NAME}backup finished and verified successfully${LOG_FILE}elseecho!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${LOG_FILE}echo${DB_NAME}backup OR verify FAILED !!${LOG_FILE}echo!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!${LOG_FILE}fi# 清理7天前备份包与日志文件echoStart clean backup log files older than${RETENTION_DAY}days${LOG_FILE}find${BAK_DIR}-maxdepth1\(-name*.dump-o-namebackup_task_log.txt\)-typef-mtime${RETENTION_DAY}-deleteechoTask Finish Time:$(date%Y-%m-%d %H:%M:%S)${LOG_FILE}echo${LOG_FILE}三、部署操作命令1、创建脚本mkdir/data/kbbakvi/data/kbbak/kb_backup.sh# 粘贴上面完整脚本保存退出2、权限配置chmodx /data/kbbak/kb_backup.shchownkingbase:kingbase /data/kbbak/kb_backup.sh3、手动测试必须执行su- kingbase-c/data/kbbak/kb_backup.sh# 查看运行日志cat/data/kbbak/backup_task_log.txt成功标识日志末尾打印OS_Core backup finished and verified successfully4、定时任务配置root用户kingbase禁止直接使用crontabcrontab-e-uroot# 添加定时规则每日凌晨02:00执行02* * *su- kingbase-c/data/kbbak/kb_backup.sh四、关键说明备份格式-Fc自定义压缩格式支持单表恢复生产推荐文件校验逻辑sys_restore -l列出备份内对象无报错代表备份文件完好自动清理规则.dump备份包 backup_task_log.txt超过7天自动删除执行用户说明定时任务由root发起切换为kingbase执行规避kingbase无crontab权限问题密码机制使用环境变量KINGBASE_PASSWORD传入无需交互式输入五、应急手动备份单行命令exportKINGBASE_PASSWORDAfj4*S1sd%d/data/kingbase/es/v8/Server/bin/sys_dump-h127.0.0.1-p9988-Usystem-dOS_Core-Fc-f/data/kbbak/OS_Core_Temp_$(date%Y%m%d_%H%M).dump六、故障排查要点报错连接拒绝检查kingbase.conf监听地址、pg_hba.conf访问策略权限报错确认脚本归属kingbase:kingbase备份目录读写权限定时任务不执行查看系统crontab日志/var/log/cron日志持续膨胀脚本自带7天自动清理无需人工干预。