12招教你把MongoDB投入生产环境

日期: 2014-09-14 作者:Eric Holzhauer 来源:TechTarget中国

虽然NoSQL数据库的应用越来越广泛,但真正能够把它投入生产环境的企业只占少数。即使是其中商业化最成熟的MongoDB也不例外。那么,在将MongoDB投入生产环境之前,你应该做哪些准备?上线后又有哪些注意事项?在本文中,我们的专家提出了12个技巧,来帮助企业平稳地将MongoDB投入生产环境并顺利运行。

开发阶段

1、确保数据表结构的普适性

你的表结构适合你的查询吗?从“关系数据库世界”转换到NoSQL的过程中,你是否熟悉文档结构的数据库呢?MongoDB的动态结构使我们可以更加轻松地根据需要修改结构,但前提是要让进行妥当的设置,这样可以做到事半功倍。

2、优化索引

MongoDB支持许多不同类型的二级索引。你的需求是什么?请确保针对最常用的查询进行数据库索引的优化。

3、做好数据分片(Sharding)的准备

上线MongoDB时不需要立即做数据分片,但你至少要有一个分片的计划,而且必须在超出容量之前完成分片。MongoDB支持多种分片策略来支持你的查询模式。你可以灵活地根据任何key进行分片,所以最好根据自己的实际情况提前把这部分工作考虑好。

4、设置写保护

MongoDB为用户提供了很大的灵活性来管理写保护。默认是Acknowledged模式,但是你可以设置为Unacknowledged模式获得最大速度,或者设置写到多个数据中心的所有副本中以获得最大的数据弹性。

运维阶段

5、选择合适的硬件

你的工作负载是否适合使用RAM?选择SSD还是HDD?是否优先使用更快的CPU或者更多的内核?你的存储是本地的还是远程的?你的运行环境是虚拟化的还是物理机的?记住,合适的硬件可以优化性能,而不当的硬件可会带来严重的问题。

6、启用高可用性和灾备

MongoDB维护数据的多份副本,可以自修复复制数据集。你的企业可以承受的故障级别是什么?单服务器故障,还是整个机架的服务器故障?亦或是整个数据中心在不可控灾难(如台风、地震、洪水等)中断电的危害?这是你需要思考的问题。

7、做好数据备份

如果某个节点出现故障,复制功能可以解决问题。但是如果你的应用开始写数据了怎么办?如果有人输入失误删除了一个数据集怎么办?我们应该设置备份策略,做一致性备份,确保你可以从备份恢复数据。PS:MongoDB管理服务(MMS)可以提供自动备份能力,能在任何时间点进行数据恢复。

8、对部署做好监控

MMS还提供了监控MongoDB运行情况的服务。可以在出现严重问题之前发现潜在的问题,MMS使我们更轻松地检查性能统计,部署新的集群以及执行其他运行任务。

9、保护你的数据安全

你是否在处理一些敏感数据?比如需要分级的数据或者有个人身份信息的数据?你需要遵从一些法规或者内部安全策略吗?那么可以考虑MongoDB的企业版,它提供了高级的安全选项,包括访问控制、加密和审计等功能。

10、调试性能

许多因素都会影响MongoDB的性能,包括本文列举的所有方面。调整设置可以获得更好的性能。相反,设置不当很可能会形成性能瓶颈,后续再做性能诊断将非常困难。

11、做好省级准备

自动化是MMS即将发布的功能,它使得升级整个数据库部署变得更容易,只需要点击一下即可。升级不要求应用停机时间,无需花时间花精力手动来做。数据库运维讲求的是尽可能自动化一切,能够自动完成尽量不要手动进行。

12、获得技术支持

NoSQL的一个很大问题就在于缺少企业级支持,特别是开源版本。如果你的应用是关键业务应用,那肯定要依靠来自外部的技术支持(大部分企业自有团队很难搞定,至少很难快速搞定)。商业化版本能够确保专家工程师们可以快速响应你的问题,然后与你一起快速解决问题。MongoDB企业版就提供这样的支持,登录网站即可查看相关技术支持的信息。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐