1. 金仓数据库逻辑备份与恢复概述
作为一名数据库管理员,我深知数据备份的重要性。金仓数据库作为国产数据库的代表之一,在企业级应用中越来越普及。不同于物理备份直接复制数据文件,逻辑备份通过导出数据库对象定义和数据,具有更好的跨平台兼容性。在实际工作中,我发现很多DBA对逻辑备份的细节掌握不够深入,导致恢复时遇到各种问题。本文将详细分享我在金仓V8版本上实施逻辑备份与恢复的完整方案。
逻辑备份特别适合以下场景:
- 需要跨版本迁移数据时
- 只需要备份部分表或特定schema时
- 需要将数据导入到不同硬件架构的服务器时
- 进行数据库结构变更前的安全备份
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 备份前准备工作
2.1 配置免密登录
在生产环境中,我们通常需要配置脚本自动执行备份任务。为了避免在脚本中明文存储密码,我推荐先配置本地免密登录:
bash复制cd /opt/Kingbase/ES/V8/Server/bin
./sys_encpwd -H * -P 54321 -D * -U system -W password
参数说明:
-H:允许连接的主机IP,*表示所有主机-P:数据库服务端口-D:数据库名称,*表示所有数据库-U:数据库用户名-W:对应用户密码
重要提示:执行此命令后会在$HOME目录下生成.pgpass文件,务必设置该文件权限为600,防止其他用户读取:
bash复制chmod 600 ~/.pgpass
2.2 备份目录规划
合理的备份目录结构能极大提高管理效率。我通常采用以下目录结构:
code复制/sqlBack/
├── daily/ # 每日备份
├── weekly/ # 每周全量备份
├── monthly/ # 月度归档备份
└── logs/ # 备份日志
创建目录并设置权限:
bash复制mkdir -p /sqlBack/{daily,weekly,monthly,logs}
chown -R kingbase:kingbase /sqlBack
chmod -R 750 /sqlBack
3. 备份脚本详解
3.1 基础备份脚本
以下是经过生产验证的备份脚本kingbaseSqlBack.sh:
bash复制#!/bin/bash
# 金仓数据库逻辑备份脚本
# 版本:v2.1
# 作者:DBA经验分享
# 环境变量配置
export LD_LIBRARY_PATH=/opt/Kingbase/ES/V8/ClientTools/lib:$LD_LIBRARY_PATH
export PATH=/opt/Kingbase/ES/V8/ClientTools/bin:$PATH
# 数据库配置
DB_HOST="localhost"
DB_PORT="54321"
DB_USER="system"
DB_NAME="production_db"
BACKUP_DIR="/sqlBack/daily"
LOG_DIR="/sqlBack/logs"
KEEP_DAYS=30
# 创建目录
mkdir -
