centos

MongoDB在CentOS的备份策略有哪些

小樊
52
2025-10-06 23:44:30
栏目: 云计算

1. 全量备份(Full Backup)
全量备份是MongoDB备份的基础策略,通过mongodump工具导出数据库或集合的完整数据及元数据(如索引、用户权限)。常用命令示例:

# 备份所有数据库到指定目录(目录名包含时间戳)
mongodump --host localhost --port 27017 -u root -p 123456 --authenticationDatabase admin --gzip --out /backup/mongodb/$(date +%Y%m%d)

特点:数据完整,恢复时可直接还原整个数据库;但备份时间长、占用存储空间大,适合定期执行(如每周1次)。

2. 增量备份(Incremental Backup)
增量备份仅备份自上次备份(全量或增量)以来变更的数据,依赖MongoDB的**oplog(操作日志)**实现。需先确保数据库运行在副本集模式(单机可通过rs.initiate()转换为单节点副本集)。

mongodump --host localhost --port 27017 --db local --collection oplog.rs --query '{"ts": {"$gt": Timestamp(1717600000, 1)}}' --out /backup/mongodb/incremental/$(date +%Y%m%d)

特点:备份速度快、存储开销小,适合高频数据变更的场景(如每日1次);但恢复时需依次应用全量备份和所有增量备份的oplog。

3. 物理备份(Physical Backup)
物理备份直接复制MongoDB的数据目录(默认/var/lib/mongo),保留数据的物理结构(如WiredTiger存储引擎的文件)。常用工具:

rsync -av --delete /var/lib/mongo/ /backup/mongodb/physical/$(date +%Y%m%d)
innobackupex --user=mongouser --password=123456 --host localhost --port 27017 /backup/mongodb/xtrabackup

特点:备份速度快、恢复时间短,适合生产环境的高可用需求;但无法实现粒度的恢复(如单个集合)。

4. 自动化备份(Automated Backup)
通过crontab设置定时任务,自动执行备份脚本(包含mongodump/rsync命令),避免人工遗漏。

#!/bin/bash
BACKUP_DIR="/backup/mongodb/$(date +%Y%m%d)"
mongodump --host localhost --port 27017 -u root -p 123456 --authenticationDatabase admin --gzip --out $BACKUP_DIR
find $BACKUP_DIR -type f -mtime +7 -delete  # 删除7天前的备份

② 添加执行权限:chmod +x /home/mongodb/backup.sh
③ 编辑crontab(sudo crontab -e),添加定时任务(如每天凌晨2点执行):

0 2 * * * /home/mongodb/backup.sh

特点:减少人工干预,提高备份的一致性;需配合日志监控(如tail -f /var/log/cron)确保任务正常执行。

5. 备份管理与验证

find /backup/mongodb -type d -mtime +30 -delete
mongorestore --host localhost --port 27017 --authenticationDatabase admin /backup/mongodb/20250930

重要性:确保备份策略的有效性,避免“备份无用”的情况发生。

0
看了该问题的人还看了