人大金仓OS_Core数据库自动备份实施笔记(银河麒麟Linux)
2026/7/29 8:20:51 网站建设 项目流程

一、环境信息

  • 操作系统:银河麒麟 Linux
  • 数据库:人大金仓 KingbaseES V8
  • 数据库名:OS_Core
  • 端口:9988
  • 登录账号:system
  • 密码:Afj4*S@1sd%d
  • 工具路径:/data/kingbase/es/v8/Server/bin/
  • 备份目录:/data/kbbak
  • 保留周期:7天(备份包+日志统一7天自动清理)
  • 执行系统用户:kingbase
  • 定时触发:root定时任务每日02:00执行

二、备份脚本文件

文件路径:/data/kbbak/kb_backup.sh

#!/bin/bash# KingbaseES 自动备份脚本 银河麒麟LinuxexportLANG=en_US.UTF-8# 金仓密码环境变量exportKINGBASE_PASSWORD="xxxxxxxxx"# ======================【配置区域】======================DB_HOST="127.0.0.1"DB_PORT="54321"DB_USER="system"DB_NAME="OS_Core"BAK_DIR="/data/kbbak"LOG_FILE="/data/kbbak/backup_task_log.txt"RETENTION_DAY=7# 金仓工具绝对路径SYS_DUMP="/data/kingbase/es/v8/Server/bin/sys_dump"SYS_RESTORE="/data/kingbase/es/v8/Server/bin/sys_restore"# =======================================================# 创建备份目录mkdir-p"${BAK_DIR}"echo"==================================================">>"${LOG_FILE}"echo"Task Start Time:$(date'+%Y-%m-%d %H:%M:%S')">>"${LOG_FILE}"# 生成备份文件名BAK_FILE="${BAK_DIR}/${DB_NAME}_Full_$(date+%Y-%m-%d_%H_%M).dump"echo"Backup 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}"2>&1DUMP_RET=$?# 校验备份文件(等价SQLServer RESTORE VERIFYONLY,仅校验不恢复)echo"Start verify backup file">>"${LOG_FILE}""${SYS_RESTORE}"-l"${BAK_FILE}">>"${LOG_FILE}"2>&1VERIFY_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天前备份包与日志文件echo"Start clean backup & log files older than${RETENTION_DAY}days">>"${LOG_FILE}"find"${BAK_DIR}"-maxdepth1\(-name"*.dump"-o-name"backup_task_log.txt"\)-typef-mtime+${RETENTION_DAY}-deleteecho"Task Finish Time:$(date'+%Y-%m-%d %H:%M:%S')">>"${LOG_FILE}"echo"">>"${LOG_FILE}"

三、部署操作命令

1、创建脚本

mkdir/data/kbbak&&vi/data/kbbak/kb_backup.sh# 粘贴上面完整脚本,保存退出

2、权限配置

chmod+x /data/kbbak/kb_backup.shchownkingbase:kingbase /data/kbbak/kb_backup.sh

3、手动测试(必须执行)

su- kingbase-c"/data/kbbak/kb_backup.sh"# 查看运行日志cat/data/kbbak/backup_task_log.txt

成功标识:日志末尾打印OS_Core backup finished and verified successfully

4、定时任务配置(root用户,kingbase禁止直接使用crontab)

crontab-e-uroot# 添加定时规则:每日凌晨02:00执行02* * *su- kingbase-c"/data/kbbak/kb_backup.sh"

四、关键说明

  1. 备份格式-Fc:自定义压缩格式,支持单表恢复,生产推荐;
  2. 文件校验逻辑sys_restore -l列出备份内对象,无报错代表备份文件完好;
  3. 自动清理规则.dump备份包 +backup_task_log.txt超过7天自动删除;
  4. 执行用户说明:定时任务由root发起,切换为kingbase执行,规避kingbase无crontab权限问题;
  5. 密码机制:使用环境变量KINGBASE_PASSWORD传入,无需交互式输入;

五、应急手动备份单行命令

exportKINGBASE_PASSWORD="Afj4*S@1sd%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

六、故障排查要点

  1. 报错连接拒绝:检查kingbase.conf监听地址、pg_hba.conf访问策略;
  2. 权限报错:确认脚本归属kingbase:kingbase,备份目录读写权限;
  3. 定时任务不执行:查看系统crontab日志/var/log/cron
  4. 日志持续膨胀:脚本自带7天自动清理,无需人工干预。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询