MongoDB***实践中文手册 (14)

复制延迟就是数据写入主节点后,往次节点同步所花费的时间。低延迟是很正常的,但是如果延迟比较高,那么说明系统肯定是有问题的。引起复制延迟的常见的原因有网络延迟、网络连接问题、硬盘延迟,比如次节点的吞吐量比主节点的吞吐量小。

配置服务器可用性

分片环境中,至少需要三个配置服务器。配置服务器是系统的至关重要的一部分,通过配置服务器可以知道分片中文档的地理分布状态。如果配置服务器其中有一个出现问题,数据库还能运行,但是平衡器确不能迁移数据,同时所有进行的进程会被锁定,直到所有三台配置服务器都正常。

配置服务器默认部署形式是复制集。配置服务器的复制集可以跨越三个以上的机房以及多达50个复制集成员,提供高度可用性以及低延迟性。

灾备恢复:备份和恢复

系统应该具有完善的备份以及恢复机制保证你的关键数据免受灾难性故障,比如数据中心遭遇洪水或者火灾,再比如代码错误或者无意的删除集合这样的人为失误。拥有合理的备份和恢复策略,管理员就可以在无数据丢失的情况下恢复系统,企业也能满足监管和规范要求。***可以定期备份。备份也可以在不影响生产系统的前提下用来作为开发、演示、QA部署环境。

Ops Manager 和 Cloud Manager的备份是在系统操作的几秒后就会持续维护的。如果MongoDB集群遇到故障,最近的备份可能最会延迟几秒钟,这样可以最小化数据丢失。Ops Manager和Cloud Manager是MongoDB中唯一能提供复制集时间点备份以及分片集群快照的工具。你可以快速安全地把系统恢复到任意的具体的时间节点。Ops团队使用Ops Manager和Cloud Manager可以安全可靠的对系统进行自动恢复。点击几下鼠标就可以建立完整的开发、测试以及恢复环境。也可以把备份指定到具体的集合上,加快备份的速度同时减少备份空间。

由于Ops Manager只读oplog,所以在线性能影响可以达到最小化。

使用MongoDB Enterprise Advanced你可以部署Ops Manager以控制你本地数据中心的备份,或者使用Cloud Manager服务的现收现付模式。专门的MongoDB工程师全天候监控用户备份,在出现问题时提醒操作团队。

Ops Manager和Cloud Manager并不是唯一的备份机制,还有其他选择:

l  文件系统备份

l  MongoDB自带的mongodump工具

文件系统备份

文件系统备份可以快速高效的创建文件系统的快照,可以作为数据库的备份以及恢复使用。单实例数据库可以使用db.fsyncLock()命令暂时停止操作以便对系统做快照,这个操作会把所有等待写入的数据刷入到硬盘中,并把整个mongod实例锁定防止新的数据写入,使用db.fsyncUnlock()命令可以解锁。

关于如何使用文件系统创建的备份的更多信息,请参考MongoDB文档中的Backup and Restore with Filesystem Snapshots章节。

只有Ops Manager和Cloud Manager可以自动为MongoDB分片集群提供自动备份功能。

mongodump

mongodump是MongoDB自带的一个可以在线备份的工具,它可以知道导出整个数据库,也可以只导出固定的集合或者一组查询结果。MongoDB在dump数据的过程中会记录oplog中的内容,这样就可以备份某个时间点的数据,使用mongorestore进行恢复时,再回放oplog中的内容。使用mongorestore可以把mongodump导出的数据再导入到数据库中。

第三方监控方案与MongoDB做集成

Ops Manager API通过编程访问自动化功能和监控数据,提供与外部管理框架的集成。

除此之外,MongoDB Enterprise Advanced还可以把系统信息发给SNMP,支持第三方监控对数据进行集中化管理和聚合。

APM集成

很多运营团队都使用APM平台在统一的管理界面中一览整个IT架构的运行情况。不管是由于设备、硬件、网络、API、应用代码还是数据库等等引起的影响客户体验的问题都会及时得到解决。

Mongodb驱动器可以把查询性能指标提供给APM工具。管理员可以监控每个操作所消耗的时间,并识别出那些慢查询以便进行分析和优化。

除此之外,Ops and Cloud Manager还提供了与New Relic平台集成的相关包。Cloud Manager中的重要指标可在APM中图形化展示,对MongoDB的健康状况做监控。

如上图所示,APM界面可以展示所有的监控指标。管理员也可以运行New Relic对监控数据进行监控并生成数据数据仪表盘以实时追踪KPI指标。

安全

跟其他软件一样,管理员在部署MongoDB的时候必须考虑系统安全以及风险。对于风险转移,并没有完美的解决方案,维护系统安全是一个不断优化的过程。

深度防御

生产环境中建议使用深度防御的方式,它可以为风险管理提供不同的解决方法。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgddzf.html