人大金仓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
相关推荐
范什么特西9 小时前
回答知识总结04(redis)
数据库·redis·缓存
码农颜9 小时前
5.4.1 锁分类
java·数据库·mysql
云深处@10 小时前
【数据库】MySQL 入门
数据库·学习·mysql
梦远星帆10 小时前
SQLyog社区版下载
数据库·mysql·sqlyog
果果燕10 小时前
实习笔记(一):NFS、Samba、VNC、Git、CMake、systemd、内核、交叉编译
linux·arm开发·c++·笔记·git
科力锐品牌君11 小时前
行业龙头|科力锐全链路防勒索 + 多中心容灾方案,构筑河南翔宇医疗业务安全闭环!
网络·数据库·分布式·安全·数据安全·备份
zyplayer-doc12 小时前
zyplayer-doc企业知识库能做什么:从文档创建、权限管理到AI问答的完整能力
大数据·javascript·数据库·人工智能·pdf·word
Zguigo12 小时前
第25-26讲:计算机操作系统存储管理——分页机制、页表与快表(TLB)
linux·windows·笔记
爱音乐的marlon12 小时前
FastAPI 学习笔记03|core 核心层:config 是总控制台,database 是整个工程的地基
笔记·学习·fastapi
会编程的吕洞宾13 小时前
LangChain4j Tool Calling 实战:让大模型自动查数据库发邮件,一句话搞定复杂任务
数据库·人工智能