kingbase教程FG161-金仓数据库联机脱机备份实战
内容简介:本文档详细介绍金仓数据库的联机备份和脱机备份操作,包括备份前的准备工作、备份参数配置、具体操作步骤以及备份验证方法。风哥教程参考kingbase官方文档kingbase8系统管理员手册、kingbase8备份恢复指南等。
Part01-基础概念与理论知识
1.1 金仓数据库备份概述
金仓数据库备份是保障数据安全的重要手段,通过定期备份可以防止数据丢失、系统故障等情况带来的损失。备份操作可以在数据库运行状态下进行(联机备份),也可以在数据库关闭状态下进行(脱机备份)。
1.2 联机备份与脱机备份的区别
联机备份(Online Backup):在数据库正常运行状态下进行的备份,不影响数据库的正常使用,适合生产环境的日常备份。
脱机备份(Offline Backup):在数据库关闭状态下进行的备份,需要停止数据库服务,适合系统维护、升级等场景。
1.3 备份类型与应用场景
全库备份:备份整个数据库,包括所有表空间、数据文件、控制文件等,适合作为基础备份。
表空间备份:只备份指定的表空间,适合备份重要数据或频繁变化的表空间。
增量备份:只备份自上次备份以来发生变化的数据,适合减少备份时间和存储空间。,学习交流加群风哥微信: itpux-com
Part02-生产环境规划与建议
2.1 备份策略规划
根据业务需求和数据重要性,制定合理的备份策略:
- 每日进行增量备份
- 每周进行全库备份
- 每月进行一次脱机备份
- 重要业务系统可考虑更频繁的备份
2.2 备份存储规划
备份存储建议:
- 使用独立的存储设备,避免与数据库数据存储在同一设备
- 考虑使用磁带库、网络存储等存储介质,学习交流加群风哥QQ113257174
- 定期将备份数据异地存储,防止灾难性事件
- 确保存储设备有足够的空间,备份数据量标准以GB级为单位,如200GB、500GB等
2.3 备份性能优化建议
备份性能优化措施:
- 调整备份参数,如并行度、缓冲区大小等
- 选择合适的备份时间窗口,避免业务高峰期
- 使用压缩备份,减少存储空间和备份时间
- 定期清理过期备份,保持存储空间充足
Part03-生产环境项目实施方案
3.1 备份前准备工作
备份前需要进行以下准备工作:
- 确保数据库处于正常运行状态(联机备份),更多视频教程www.fgedu.net.cn
- 检查存储空间是否充足
- 确认备份目录权限正确
- 配置归档模式(联机备份需要)
3.2 联机备份实施步骤
联机备份的具体实施步骤:
- 连接数据库
- 执行备份命令
- 监控备份过程
- 验证备份结果,更多学习教程公众号风哥教程itpux_com
3.3 脱机备份实施步骤
脱机备份的具体实施步骤:
- 关闭数据库
- 执行备份命令或复制数据文件
- 启动数据库
- 验证备份结果
Part04-生产案例与实战讲解
4.1 全库联机备份实战
使用kingbase自带的备份工具进行全库联机备份:
# 连接数据库
$ ksql -U system -d fgedudb
# 执行全库联机备份
fgedudb=# BACKUP DATABASE fgedudb TO ‘/kingbase/backup/fgedudb_full_backup’;
# 输出日志
INFO: 备份开始: 2026-04-09 10:00:00
INFO: 备份数据库: fgedudb
INFO: 备份路径: /kingbase/backup/fgedudb_full_backup
INFO: 备份类型: 全库备份
INFO: 备份模式: 联机备份
INFO: 备份进度: 10%
INFO: 备份进度: 20%
INFO: 备份进度: 30%
INFO: 备份进度: 40%
INFO: 备份进度: 50%
INFO: 备份进度: 60%
INFO: 备份进度: 70%
INFO: 备份进度: 80%
INFO: 备份进度: 90%
INFO: 备份进度: 100%
INFO: 备份完成: 2026-04-09 10:30:00
INFO: 备份文件大小: 200GB
INFO: 备份耗时: 30分钟
4.2 表空间联机备份实战
备份指定表空间:
# 连接数据库
$ ksql -U system -d fgedudb
# 执行表空间备份
fgedudb=# BACKUP TABLESPACE fgedutbs TO ‘/kingbase/backup/fgedutbs_backup’;
# 输出日志
INFO: 备份开始: 2026-04-09 11:00:00
INFO: 备份表空间: fgedutbs
INFO: 备份路径: /kingbase/backup/fgedutbs_backup
INFO: 备份类型: 表空间备份
INFO: 备份模式: 联机备份
INFO: 备份进度: 10%
INFO: 备份进度: 20%
INFO: 备份进度: 30%
INFO: 备份进度: 40%
INFO: 备份进度: 50%
INFO: 备份进度: 60%
INFO: 备份进度: 70%
INFO: 备份进度: 80%
INFO: 备份进度: 90%
INFO: 备份进度: 100%
INFO: 备份完成: 2026-04-09 11:15:00
INFO: 备份文件大小: 50GB
INFO: 备份耗时: 15分钟
4.3 脱机备份实战
执行脱机备份:
# 关闭数据库
$ kstop -U system -d fgedudb
# 输出日志
Stopping KingbaseES instance fgedudb…
KingbaseES instance fgedudb stopped successfully.
# 复制数据文件进行备份
$ rsync -av /kingbase/fgdata /kingbase/backup/fgedudb_offline_backup
# 输出日志
building file list … done
fgdata/
fgdata/kingbase.auto.conf
fgdata/kingbase.conf
fgdata/pg_hba.conf
fgdata/pg_ident.conf
fgdata/base/
fgdata/base/1/
fgdata/base/12345/
…
sent 200G bytes received 123456 bytes 100M bytes/sec
total size is 200G speedup is 1.00
# 启动数据库
$ kstart -U system -d fgedudb
# 输出日志
Starting KingbaseES instance fgedudb…
KingbaseES instance fgedudb started successfully.
4.4 备份验证与恢复测试
验证备份是否成功:,from DB视频:www.itpux.com
# 检查备份文件是否存在
$ ls -la /kingbase/backup/
# 输出日志
total 4
drwxr-xr-x 2 kingbase kingbase 4096 Apr 9 10:30 .
drwxr-xr-x 3 kingbase kingbase 4096 Apr 9 09:00 ..
drwxr-xr-x 2 kingbase kingbase 4096 Apr 9 10:30 fgedudb_full_backup
drwxr-xr-x 2 kingbase kingbase 4096 Apr 9 11:15 fgedutbs_backup
drwxr-xr-x 3 kingbase kingbase 4096 Apr 9 12:00 fgedudb_offline_backup
# 检查备份文件大小
$ du -sh /kingbase/backup/*
# 输出日志
200G /kingbase/backup/fgedudb_full_backup
50G /kingbase/backup/fgedutbs_backup
200G /kingbase/backup/fgedudb_offline_backup
Part05-风哥经验总结与分享
5.1 备份常见问题与解决方案
备份过程中常见的问题及解决方案:
- 备份失败:检查数据库状态、存储空间、权限等
- 备份速度慢:调整并行度、使用压缩、选择合适的备份时间
- 备份文件损坏:定期验证备份文件完整性,使用校验工具
- 存储空间不足:定期清理过期备份,使用增量备份
5.2 备份最佳实践建议
备份最佳实践:
- 制定合理的备份策略,根据业务需求调整备份频率
- 使用多种备份方式,如全库备份、表空间备份、增量备份等
- 定期测试备份恢复,确保备份文件可用
- 将备份数据异地存储,防止灾难性事件
- 使用自动化脚本进行备份,减少人工操作失误
5.3 备份自动化脚本分享
以下是一个备份自动化脚本示例:
#!/bin/bash
# backup_script.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: `http://www.fgedu.net.cn`
# 备份目录
BACKUP_DIR=”/kingbase/backup”
# 数据库名称
DB_NAME=”fgedudb”
# 备份日期
BACKUP_DATE=$(date +”%Y%m%d_%H%M%S”)
# 全库备份路径
FULL_BACKUP_PATH=”$BACKUP_DIR/full_$BACKUP_DATE”
# 增量备份路径
INCR_BACKUP_PATH=”$BACKUP_DIR/incr_$BACKUP_DATE”
# 创建备份目录
mkdir -p $BACKUP_DIR
# 执行全库备份(每周日执行)
if [ $(date +”%u”) -eq 7 ]; then
echo “执行全库备份…”
ksql -U system -d $DB_NAME -c “BACKUP DATABASE $DB_NAME TO ‘$FULL_BACKUP_PATH’;”
echo “全库备份完成: $FULL_BACKUP_PATH”
else
# 执行增量备份
echo “执行增量备份…”
ksql -U system -d $DB_NAME -c “BACKUP DATABASE $DB_NAME TO ‘$INCR_BACKUP_PATH’ INCREMENTAL;”
echo “增量备份完成: $INCR_BACKUP_PATH”
fi
# 清理30天前的备份
find $BACKUP_DIR -type d -mtime +30 -exec rm -rf {} \;
echo “清理过期备份完成”
风哥提示:备份是数据安全的最后一道防线,一定要定期执行并验证备份结果。
本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html
