我有一个每天大约有 700 万条记录的 Oracle 数据库,我想切换到 MongoDB。(~300Gb)
要设置 POC,我想知道我需要多少个节点?我认为 2 个分片中的 3 个节点的 2 个副本就足够了,但我想知道你的想法 :)
我想要一个 HA 设置:)
提前致谢!
我有一个每天大约有 700 万条记录的 Oracle 数据库,我想切换到 MongoDB。(~300Gb)
要设置 POC,我想知道我需要多少个节点?我认为 2 个分片中的 3 个节点的 2 个副本就足够了,但我想知道你的想法 :)
我想要一个 HA 设置:)
提前致谢!
考虑一下您的分片键,您在哪些字段上共享您的数据集是有意义的?这将影响部署多少分片的决定,以及每个分片的容量。如果你的数据可以很容易地分成一半或三分之一,你可能会使用相对较少的分片,也许是两到三个大的深分片,或者如果你可以在更多样化的键上分片,则可以使用几个更轻更薄的分片。
从 MongoDB副本集配置升级到分片集群相对简单(每个分片实际上是一个副本集)。与其预先确定分片是正确的解决方案,不如考虑一下您进行分片的原因是什么(例如,您的应用程序需求是否会超出单台机器的资源;您的数据集有多少是活动的工作集?查询等)。
作为规划架构和 POC 的一部分,值得从副本集开始并对其进行基准测试。
一些帮助您入门的注意事项:
MongoDB 的journaling在 1.9.2 中默认启用,在存储引擎中提供崩溃恢复和持久性。
副本集是高可用性、自动故障转移和数据冗余的构建块。每个副本集至少需要三个节点(例如,三个数据节点或两个数据节点和一个仲裁器)才能通过选举启用故障转移到新的主节点。
一旦您的数据或写入超出单个服务器的资源,分片对于水平扩展很有用。
其他注意事项包括根据您的应用程序使用情况规划您的文档。例如,如果您的文档将经常更新并随着时间的推移而增大,您可能需要考虑手动填充以防止过度的文档移动。
如果这是您的第一个 MongoDB 项目,您绝对应该阅读关于MongoDB副本集和分片以及应用程序开发人员的常见问题解答。
请注意,为您的用例选择一个好的分片键是一个重要的考虑因素。如果您计划删除大量数据,则选择不当的分片键可能会导致数据写入的“热点”或分片不平衡。
For MongoDB to work efficiently, you need to know your working set size..You need to know how much data does 7 million records/day amounts to. This is active data that will need to stay in RAM for high performance.
Also, be very sure WHY you are migrating to Mongo. I'm guessing..in your case, it is scalability..
but know your data well before doing so.
For your POC, keeping two shards means roughly 150GB on each.. If you have that much disk available, no problem.