暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MongoDB-从0到1-备份与恢复

原创 赵师的工作日 2025-01-06
439

Snipaste_20240125_134647.png

作者:赵师的工作日(赵明中)
现役Oracle ACE、MySQL 8.0 ocp、TiDB PCTA\PCTP、Elasticsearch Certified Engineer
微信公众号:赵师的工作日
CSND:赵师的工作日
二维码.png

MongoDB 提供了多种备份和恢复工具,适用于不同的使用场景。

一、MongoDB 备份方法

1. 使用 mongodump 进行备份

mongodump 是 MongoDB 提供的一个命令行工具,用于生成数据库的备份。它会将数据库中的数据导出为 BSON 格式文件,这些文件可以用 mongorestore 工具进行恢复。

基本命令

mongodump --host <hostname> --port <port> --out <output_directory>
  • –host:指定 MongoDB 实例的主机名或 IP 地址。
  • –port:指定 MongoDB 实例的端口号。
  • –out:指定备份文件的输出目录。

例如,备份本地 MongoDB 实例的所有数据库:

mongodump --out /path/to/backup/

备份单个数据库
如果只想备份某个特定的数据库,可以使用 --db 参数:

mongodump --db <database_name> --out /path/to/backup/

备份单个集合
如果只想备份数据库中的某个集合,可以使用 --collection 参数:

mongodump --db <database_name> --collection <collection_name> --out /path/to/backup/

备份时排除认证
如果 MongoDB 实例启用了鉴权,可以使用 -u 和 -p 参数进行认证:

mongodump --host <hostname> --port <port> --db <database_name> --username <username> --password <password> --out /path/to/backup/

使用压缩
在大规模备份时,压缩备份数据可以节省存储空间。mongodump 可以直接输出压缩文件:

mongodump --gzip --out /path/to/backup/

二、MongoDB 恢复方法

使用 mongorestore 恢复数据
mongorestore 是与 mongodump 配套使用的恢复工具。你可以通过该工具将之前备份的数据恢复到 MongoDB 实例中。
基本命令

mongorestore --host <hostname> --port <port> --dir <backup_directory>
  • –host:指定恢复目标数据库的主机。
  • –port:指定恢复目标数据库的端口。
  • –dir:指定备份文件的目录。

例如,将备份文件恢复到 MongoDB:

mongorestore --dir /path/to/backup/

恢复特定数据库
如果备份了多个数据库,恢复时可以通过 --db 参数恢复特定的数据库:

mongorestore --db <database_name> --dir /path/to/backup/

恢复单个集合
如果只需要恢复某个集合,可以使用 --collection 参数:

mongorestore --db <database_name> --collection <collection_name> --dir /path/to/backup/

盖现有数据
默认情况下,mongorestore 不会覆盖已存在的数据。如果需要覆盖数据,可以使用 --drop 参数:

mongorestore --drop --dir /path/to/backup/

恢复压缩的备份
如果使用了 --gzip 进行压缩备份,可以使用 --gzip 选项来解压备份文件进行恢复:

mongorestore --gzip --dir /path/to/backup/

三、MongoDB 备份与恢复的最佳实践

1.备份策略

  • 定期备份:定期进行全量备份,并结合增量备份减少备份时长和存储空间的需求。
  • 备份频率:根据数据变化的频率确定备份周期。对于高频变动的数据,建议每日或每小时进行增量备份。
  • 多地备份:确保将备份数据存储在不同的物理位置或云端,以防止因物理故障或灾难事件导致数据丢失。
  • 自动化备份:使用自动化脚本或管理工具(如 MongoDB Atlas)实现备份的自动化,减少人工操作的错误。

2.数据恢复策略

  • 恢复验证:定期验证备份数据的完整性,确保备份的数据能够成功恢复。
  • 恢复计划:制定详尽的恢复流程,包括恢复顺序、时间要求和验证步骤,确保在发生灾难时能够迅速恢复业务。
  • 保持版本:备份文件应保留多个版本,以应对不同的恢复需求。例如,可以保留最近 7 天、30 天或 90 天的备份。
  • 演练恢复:定期进行恢复演练,确保团队在发生故障时能够迅速有效地恢复系统。

3.性能考虑

备份过程可能会影响数据库的性能,因此建议在 低峰时段 或 维护窗口 内进行备份操作。对于 分片集群,可以在不影响生产环境的情况下进行备份,以避免性能下降。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论