我有一个Oracle数据库,每天有大约7百万条记录,我想切换到MongoDB。 (〜300GB)
要设置POC,我想知道我需要多少个节点?我认为2个碎片中的3个节点的2个复制品就够了,但我想知道你对它的看法:)
我想要一个HA设置:)
提前致谢!
答案 0 :(得分:0)
要使MongoDB高效工作,您需要知道您的工作集大小。您需要知道每天700万条记录的数据量。这是需要保留在RAM中以获得高性能的活动数据。
另外,请务必确定为什么要迁移到Mongo。我猜...在你的情况下,它是可扩展性..
但在这样做之前要充分了解你的数据
对于你的POC,保留两个分片意味着大约150GB。如果你有那么多的磁盘,没问题。
答案 1 :(得分:0)
考虑一下分片键,分享数据集对哪些字段有意义?这将影响决定部署多少个分片,以及每个分片的容量。如果您的数据可以很容易地分成一半或三分之一,或者如果您可以在更多样化的密钥上进行分片,那么您可能会使用相对较少的分片(可能是两个或三个大的深分片),或者更轻一些更薄的分片。
答案 2 :(得分:0)
从MongoDB replica set配置升级到sharded cluster相对简单(每个分片实际上是副本集)。我不会预先确定分片是正确的解决方案,而是考虑分片的原因(例如,您的应用程序需求会超过单个机器的资源;您的数据集中有多少将是活动的工作集查询等)。
值得从副本集开始,并将其作为规划架构和POC的一部分进行基准测试。
一些让你入门的笔记:
MongoDB的journaling,默认情况下从1.9.2开始启用,可在存储引擎中提供崩溃恢复和持久性。
Replica sets是高可用性,自动故障转移和数据冗余的构建块。每个副本集至少需要三个节点(例如,三个数据节点或两个数据节点和一个仲裁器)才能启用failover to a new primary via an election。
Sharding对于水平扩展非常有用。
其他注意事项包括根据您的应用程序使用情况来规划文档。例如,如果您的文档会经常更新并且随着时间的推移而增大,您可能需要考虑manual padding以防止文档移动过多。 / p>
如果这是您的第一个MongoDB项目,您一定要阅读Replica Sets和Sharding with MongoDB以及Application Developers上的常见问题解答。
请注意,choosing a good shard key用于您的用例是一个重要的考虑因素。如果您打算删除大量数据,那么糟糕的分片键选择可能导致数据写入的“热点”或不平衡的分片。