GBase 8a
备份恢复
文章
GBase 8a 数据备份与恢复完整指南,生产环境必备技能
发表于2026-03-20 14:46:1644次浏览1个评论
GBase 8a 数据备份与恢复完整指南,生产环境必备技能
数据备份是 DBA 最重要的日常工作之一,备份做得好,出了事才能救得回来。本文整理 GBase 8a 常用的备份与恢复方案。
一、逻辑备份:gcdump 工具
gcdump 是 GBase 8a 自带的逻辑备份工具,导出的是 SQL 文件,可读性强,适合小规模数据备份和跨版本迁移。
# 备份单个数据库
gcdump -u gbase -p密码 -h 127.0.0.1 analytics_db > /backup/analytics_db_20240301.sql
# 备份单张表
gcdump -u gbase -p密码 analytics_db orders > /backup/orders_20240301.sql
# 备份所有数据库
gcdump -u gbase -p密码 --all-databases > /backup/all_db_20240301.sql
# 只备份表结构,不备份数据
gcdump -u gbase -p密码 --no-data analytics_db > /backup/schema_only.sql
# 压缩备份节省空间
gcdump -u gbase -p密码 analytics_db | gzip > /backup/analytics_db_20240301.sql.gz
二、恢复逻辑备份
# 恢复单个数据库
gccli -u gbase -p密码 analytics_db < /backup/analytics_db_20240301.sql
# 恢复压缩备份
gunzip < /backup/analytics_db_20240301.sql.gz | gccli -u gbase -p密码 analytics_db
三、备份验证
备份完成后一定要验证备份文件是否可用,很多团队只备份不验证,等到真正要恢复时发现备份文件损坏。
# 检查备份文件完整性
gzip -t /backup/analytics_db_20240301.sql.gz && echo "文件完整" || echo "文件损坏"
# 在测试环境还原验证
gccli -u gbase -p密码 -e "CREATE DATABASE analytics_db_test;"
gccli -u gbase -p密码 analytics_db_test < /backup/analytics_db_20240301.sql
gccli -u gbase -p密码 -e "SELECT COUNT(*) FROM analytics_db_test.orders;"
四、自动化备份脚本
#!/bin/bash
# 每日自动备份脚本
BACKUP_DIR="/backup/gbase"
DATE=$(date +%Y%m%d)
DB_LIST="analytics_db app_db report_db"
KEEP_DAYS=7 # 保留最近7天
mkdir -p $BACKUP_DIR
for DB in $DB_LIST; do
gcdump -u gbase -p'密码' $DB | gzip > $BACKUP_DIR/${DB}_${DATE}.sql.gz
echo "[$(date)] $DB 备份完成"
done
# 清理超过保留期的旧备份
find $BACKUP_DIR -name "*.sql.gz" -mtime +$KEEP_DAYS -delete
echo "[$(date)] 旧备份清理完成"
将脚本加入 crontab 实现每日自动备份:
# 每天凌晨2点执行备份
0 2 * * * /opt/scripts/gbase_backup.sh >> /var/log/gbase_backup.log 2>&1
五、备份注意事项
- 备份文件不要和数据库放在同一块磁盘,磁盘故障会导致数据和备份同时丢失
- 定期做恢复演练,至少每季度在测试环境完整恢复一次,确认备份有效
- 大表备份耗时较长,建议在业务低峰期执行,避免影响查询性能
- 记录每次备份的数据量和耗时,异常波动可能预示数据异常或存储问题
- gcdump 备份期间不锁表,但可能导致备份数据不是同一时间点的快照,对一致性要求高的场景需要额外处理
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526