本文章由博主学习阿里云MongoDB从入门到高级云上开发实战课程后整理的笔记,访问超链接即可了解更多内容
文章目录
4. MongoDB数据库管理备份
4.1 MongoDB备份机制
4.1.1 MongoDB备份方式
- 磁盘阵列
- 文件系统快照Filesystem Snapshots
- 复制数据文件CP
- mongodump备份和mongorestore恢复工具
- mongoimport导入和mongoexport导出工具
- MongoDB Altas云计算平台
- MongoDB Cloud Manager
- Ops Manager企业版收费
4.1.2 MongoDB备份考量
考量 | 说明 |
---|---|
Recovery Point Objective 恢复点 | 恢复点目标, 数据库灾难时,恢复到某个点,允许丢失的数据量 |
Recovery Time Objective 恢复时刻 | 恢复时间目标 |
Isolation 隔离 | 备份应与生产系统分开,以确保生产中断不会与备份中断相关联 |
Performance Impact 性能影响 | 备份技术对正在运行的数据库的性能有不同的影响。某些备份解决方案会降低数据库性能,因此可能需要安排备份以避免高峰使用或维护窗口。您可能决定部署新的从服务器以支持备份 |
Restore Process 恢复过程 | 恢复过程,能备份还要保证能恢复 |
Sharding 分片 | 备份分布式数据库系统(例如MongoDB分片 群集)会带来额外的复杂性。要实现真正一致的备份,必须在整个系统中暂停所有写入活动 |
Deployment Complexity 部署复杂性 | 部署复杂性,备份和维护方式尽量简单 |
Flexibility 灵活性 | 部分备份策略将提供过滤数据的灵活性。这样就不会利用资源备份系统的非关键任务组件。同样,在还原过程中,可能希望灵活地仅恢复数据的某些组件。最后,增量备份策略将仅备份自上次快照以来已更改的数据部分,使其成为比在每个快照上执行完整备份更有效和灵活的策略 |
4.1.3 MongoDB备份方式对比
4.1.4 mongodump备份工具
- mongodump是官方标配的简单数据备份工具
- mongodump创建的是二进制BSON备份数据
- mongodump可以从mongod或mongos实例导出二进制数据
- mongodump可用于转储整个数据库,集合或查询结果
- mongodump可以备份正在写入的数据库,附带备份oplog数据
- mongodump适用于小型数据库备份,不适合大型系统
- mongodump备份机制不是增量方法
- mongodump是资源密集型的,对系统性能会产生影响
4.1.5 mongodump备份机制
- mongodump创建BSON备份文件, mongorestore工具恢复数据库。
- mongodump和mongorestore针对正在运行的mongod
- mongodump也可以直接操作底层数据文件
- 默认情况下, mongodump不捕获local数据库的内容
- 为了节省空间,备份不包括索引Index信息,恢复数据库要重建索引
- 备份时, mongodump会对mongod性能产生影响
- 对于副本集, mongodump提供了–oplog选项,包含oplog条目中
- mongorestore可以重放捕获的oplog
- 要恢复–oplog的备份,请使用带有–oplogReplay选项
4.1.6 MongoDB备份工具实战
备份命令:
mongodump --host 127.0.0.1 --port 27017
mongodump --out /data/backup
mongodump --collection users --db taobao
mongodump --host aliyun.com --port 3017 --username root --password "pass123" --ont dump-2018