人大金仓KingbaseES V8 手动单库备份&恢复操作笔记

基础信息汇总

  • 数据库版本:KingbaseES V8
  • 数据库地址:127.0.0.1
  • 数据库端口:9988
  • 管理员账号:system
  • 账号密码:xxxxxxx
  • 待备份数据库:OS_CoreOS_Core_GPS
  • 工具目录:/data/kingbase/Server/bin
  • 备份文件输出目录:/home/kingbase/
  • 备份格式:-Fc 自定义压缩dmp(生产推荐,支持选择性恢复、高压缩)

一、完整备份操作分步详解(逐条命令解释)

步骤1:切换金仓操作系统用户(必做)

bash 复制代码
su - kingbase

说明

  1. 人大金仓数据库程序、数据、配套工具全部归属操作系统用户kingbase;root用户执行备份会出现权限不足、文件读写失败、密码文件不识别等问题。
  2. su - kingbase 带横杠代表完整切换用户环境,自动加载kingbase家目录环境变量、家目录路径,区别于su kingbase(仅切换身份,不切换环境)。
  3. 执行后会要求输入操作系统kingbase用户密码,输入无提示,输完回车。

步骤2:创建数据库免密登录文件 .kbpass

bash 复制代码
echo "127.0.0.1:9988:*:system:xxxxxxx" > ~/.kbpass

字段格式解析(固定格式:主机:端口:数据库:用户名:密码)

127.0.0.1 9988 * system xxxxxxx
数据库IP 数据库端口 *代表匹配所有数据库 数据库登录账号 账号密码

补充说明

  1. ~ 代表当前kingbase用户家目录,即/home/kingbase/
  2. > 为重定向输出,将拼接好的密码字符串覆盖写入.kbpass文件;
  3. 不加此文件:执行sys_dump备份时,命令行会弹窗交互输入数据库密码,无法一键执行;
  4. 文件名为固定.kbpass,金仓客户端工具(sys_dump、ksql、sys_restore)会自动识别该文件。

步骤3:设置密码文件权限(强制要求,否则失效)

bash 复制代码
chmod 600 ~/.kbpass

说明

  1. Linux安全机制:密码文件不能让其他用户读取,权限大于600时金仓会直接忽略该文件;
  2. 600权限含义:仅文件所有者kingbase拥有读写权限,同组用户、其他用户无任何权限;
  3. 权限设置错误常见报错:备份时仍然提示输入密码。

步骤4:进入金仓客户端工具bin目录

bash 复制代码
cd /data/kingbase/Server/bin

说明

  1. 该目录存放所有备份、恢复客户端工具:sys_dumpsys_restoreksql
  2. 不进入此目录也可以写绝对路径执行/data/kingbase/Server/bin/sys_dump,cd切换后命令更简短;
  3. 若提示No such file or directory,核对金仓实际安装路径。

步骤5:备份第一个库 OS_Core

bash 复制代码
./sys_dump -h 127.0.0.1 -p 9988 -U system -d OS_Core -Fc -Z9 -E UTF8 -f /home/kingbase/OS_Core_$(date +%Y%m%d).dmp

所有参数逐条拆解

参数 含义
./sys_dump 当前目录下执行备份工具
-h 127.0.0.1 指定数据库服务IP
-p 9988 指定数据库端口
-U system 指定登录数据库用户名
-d OS_Core 指定要备份的目标数据库名
-Fc 备份格式:自定义二进制压缩格式,后缀.dmp;支持单表、单schema单独恢复,生产首选
-Z9 压缩等级9,最高压缩,备份文件体积最小
-E UTF8 指定备份字符集,避免中文乱码
-f 文件路径 指定备份文件输出位置和文件名
$(date +%Y%m%d) 动态拼接当天日期,例:OS_Core_20260715.dmp,区分每日备份,防止覆盖旧文件

步骤6:备份第二个库 OS_Core_GPS

bash 复制代码
./sys_dump -h 127.0.0.1 -p 9988 -U system -d OS_Core_GPS -Fc -Z9 -E UTF8 -f /home/kingbase/OS_Core_GPS_$(date +%Y%m%d).dmp

说明

逻辑和上一条完全一致,仅修改-d后的数据库名、输出文件名,单独生成独立备份包,两个库完全隔离,恢复互不影响。

备份执行成功判断标准

命令执行完成无红色报错,终端无提示密码输入,/home/kingbase/目录生成对应.dmp文件,文件大小不为0。


二、对应备份文件恢复完整命令(配套笔记)

前置条件

  1. 依旧使用su - kingbase切换用户;
  2. 无需重复创建.kbpass(仅首次备份创建一次,永久生效);
  3. 恢复前需提前在数据库中创建空数据库(名称和原库一致)。

1. 先登录数据库创建空库(恢复前必执行)

bash 复制代码
cd /data/kingbase/Server/bin
# 登录数据库客户端
./ksql -h 127.0.0.1 -p 9988 -U system

登录成功后执行建库SQL:

sql 复制代码
-- 创建OS_Core空库
CREATE DATABASE OS_Core ENCODING UTF8;
-- 创建OS_Core_GPS空库
CREATE DATABASE OS_Core_GPS ENCODING UTF8;
-- 退出ksql客户端
\q

2. 恢复 OS_Core 库 dmp备份包

bash 复制代码
cd /data/kingbase/Server/bin
./sys_restore -h 127.0.0.1 -p 9988 -U system -d OS_Core /home/kingbase/OS_Core_20260715.dmp

参数说明

  • sys_restore:dmp压缩包专用恢复工具(不能用ksql恢复Fc格式文件)
  • -d OS_Core:目标恢复到哪个空数据库
  • 最后一段为你的备份文件完整路径,需要替换成实际生成的文件名

3. 恢复 OS_Core_GPS 库 dmp备份包

bash 复制代码
cd /data/kingbase/Server/bin
./sys_restore -h 127.0.0.1 -p 9988 -U system -d OS_Core_GPS /home/kingbase/OS_Core_GPS_20260715.dmp

补充:如果是纯SQL备份文件(-Fp格式)恢复命令

若以后导出.sql文本备份,使用ksql恢复:

bash 复制代码
./ksql -h 127.0.0.1 -p 9988 -U system -d OS_Core -f /home/kingbase/xxx.sql

三、常见故障排查笔记

  1. 提示输入数据库密码

    原因:.kbpass不存在 / 权限不是600 / IP、端口、账号密码填写错误

    解决:重新执行创建密码文件+chmod 600命令

  2. ./sys_dump: No such file or directory

    原因:cd目录错误,核对/data/kingbase/Server/bin真实路径

  3. 权限不足,无法写入/home/kingbase/

    原因:未执行su - kingbase,使用root用户备份;切换kingbase用户重试

  4. 恢复时报库不存在

    原因:未提前执行CREATE DATABASE创建空库,先登录ksql新建对应数据库再恢复

  5. 中文乱码

    备份、恢复均添加参数-E UTF8,数据库编码统一UTF8

四、极简一键备份整合(可一次性复制全部执行)

bash 复制代码
su - kingbase
echo "127.0.0.1:9988:*:system:xxxxxx" > ~/.kbpass
chmod 600 ~/.kbpass
cd /data/kingbase/Server/bin
./sys_dump -h 127.0.0.1 -p 9988 -U system -d OS_Core -Fc -Z9 -E UTF8 -f /home/kingbase/OS_Core_$(date +%Y%m%d).dmp
./sys_dump -h 127.0.0.1 -p 9988 -U system -d OS_Core_GPS -Fc -Z9 -E UTF8 -f /home/kingbase/OS_Core_GPS_$(date +%Y%m%d).dmp
相关推荐
zhangrelay18 小时前
消费电子原装锂电池服役8–20年且健康度>40%公开实测案例完整调研分析报告
笔记·学习
疯狂打码的少年18 小时前
【软件工程】软件测试:黑盒测试(等价类/边界值/因果图)
笔记·软件工程
圣光SG19 小时前
Java Web入门基础知识笔记
java·前端·笔记
夏贰四19 小时前
数据库迁移怎样降低人力投入?数据库迁移怎么实现全量增量同步?
数据库·数据库迁移
汇智信科19 小时前
图谱、向量、关键词、SQL多路一体,FastKG垂域召回率100%拉满
网络·数据库·ai编程·汇智信科·hsim·fastclaw·汇智龙虾
笨蛋不要掉眼泪21 小时前
MySQL架构揭秘:慢查询日志详解
数据库·mysql·架构
pulinzt21 小时前
Tableau的基础使用
数据库·numpy
糖果店的幽灵21 小时前
【langgraph 从入门到精通graphApi 篇】LangGraphAPI 方式调用 - 初识与核心概念
数据库·人工智能·langgraph
TlSfoward1 天前
TLSFOWARD TLS指纹
开发语言·数据库·爬虫·搜索引擎·https·php