2017-05-24 21 views
1

tokumx和mongodb不兼容;您无法构建混合副本集,因为它们具有不同的存储引擎并使用不同的复制语言。但PSMDB似乎已经缩小了这个差距(至少可插拔存储引擎,这可以让wiredTiger)。这是否意味着它们现在也可以混合使用(即,复制语言的差异是否也得到了纠正?)我问,因为我已经有了一个非常古老的tokumx系统,并且有重要的数据,并且必须将它带入一个mongodb集群,但是似乎没有简单的方法来做到这一点。如果我可以迁移tokumx-> PSMDB-> mongodb,那太棒了!任何帮助,将不胜感激!单个副本集中的Percona PSMDB和MongoDB节点?

+0

这个问题很有用,但是对于DBA StackExchange来说,这个问题会更多。 – Stennie

回答

0

我已经有了一个非常古老的tokumx系统,上面有重要的数据,并且必须把它带入一个mongodb集群,但似乎没有简单的方法来做到这一点。

TokuMX的复制协议与MongoDB或Percona服务器不兼容,因此从TokuMX迁移不幸需要转储和恢复数据。在复制之外,还有一些不兼容的TokuMX索引选项要在恢复到MongoDB之前删除。

请参阅Migrate from TokuMX to Percona Server迁移方法&脚本来帮助解决这个问题。

如果我可以迁移tokumx-> PSMDB-> mongodb,那太棒了!

如果您的目标是迁移到MongoDB社区版或企业版,则通过PSMDB进行中间迁移不会带来任何好处。 PSMDB使用来自上游MongoDB社区服务器的复制代码,但不提供TokuMX的任何特殊迁移路径。

+0

感谢您的回答,@Stennie。你是否说PSMDB不能与MongoDB节点处于同一个副本集?我在想,如果我至少可以将一个tokumx节点升级到PSMDB,那么我可以将该PSMDB节点放到一个带有mongodb节点的混合副本集中,同步mongodb节点,然后离线PSMDB节点(并折腾它) 。你是说这是不可能的? – dakshang

+0

@dakshang TokuMX的复制与MongoDB或PSMDB都不兼容,所以这两者中任何一个的迁移方法都是相似的。如果您的最终目标是迁移到MongoDB,PSMDB不提供任何快捷方式,所以我会跳过这一步,并使用TokuMX迁移脚本将数据直接加载到MongoDB中(即在指令中将MongoDB替换为PSMDB)。假设您具有兼容的MongoDB和PSMDB服务器版本,则可以使用混合副本集,但对您尝试实现的内容无帮助。 – Stennie

+0

Thx @Stennie。我想我们几乎在那里。看起来我们不在同一页面上(我已经阅读过关于所有这些的白皮书和其他文档),所以让我把这个问题归结为一个是/否的问题:问:“PSMDB节点是否可以是混合PSMDB/MongoDB副本集“(它看起来像你最后一个评论的答案是肯定的)? – dakshang