从Tokumx 2.0到Percona服务器的实时数据迁移,适用于具有零或最小停机时间(PSMDB)的MongoDB 3.0

时间:2016-07-18 07:52:51

标签: database live data-migration percona tokumx

从Tokumx 2.0到PSMDB(MongoDB 3.0的Percona服务器)的实时数据迁移

=======

我正在使用以下指南指定链接下面的实时数据从Tokumx 2.0 replicaset集群迁移到mongodb 3.0的Percona服务器: 访问https://github.com/dbpercona/tokumx2_to_psmdb3_migration/blob/master/ZeroDowntimeMigration.md#catchup

本文档介绍如何从源TokuMX 2.x服务器迁移到MongoDB 3.x(PSMDB)的目标Percona服务器,从零到最短的停机时间。迁移过程需要以下阶段:

快照 - 时间点源备份 转储 - 将源备份转换为BSON 恢复 - 将BSON加载到目标中 Catchup - 从源到目标的播放操作日志 切换 - 重新配置应用程序层以使用目标

在oplog sync的catchup阶段命令期间。 ./bin/toku2mongo --from localhost:27017 --gtid 4:35 --host mongoprodcluster1a:37017 2>& 1 | tee ./toku2mongo.out& amp;

给出错误:

  

连接到:mongoprodcluster1a:37017星期六7月16日11:57:31.655   [toku2mongo]错误:错误重播命令op {op:“c”,ns:   “个案。$ cmd”,o:{beginLoad:1,ns:“个案”,索引:{},选项:{}   }:{ok:0.0,errmsg:“没有这样的命令:beginLoad”,代码:59,不好   cmd:{beginLoad:1,ns:“cases”,索引:{},选项:{}}}周六7月   16 11:57:31.655 [toku2mongo]在处理GTID时退出4:35周六   7月16日11:57:31.655 [toku2mongo]使用--gtid = 4:35恢复。 7月16日星期六   11:57:31.655 [toku2mongo]将GTID保存到文件中   /mnt/tokumx-bkup/toku2mongo-2.0.2-el6-x86_64/的 toku2mongo_saved_timestamp 即可。   7月16日星期六11:57:31.655 [toku2mongo]我会自动使用这个值   下次如果你从这个目录运行并且没有传递--gtid。

任何帮助赞赏。感谢

1 个答案:

答案 0 :(得分:0)

这是由于在Perua Server for MongoDB(3.x)中不支持在TokuMX 2.x端执行自定义命令。在追赶阶段,您的应用程序正在执行该命令。这导致了您看到的错误。

在应用程序中执行的命令是db.runCommand({ 'beginLoad' : [ 'coll1' , ... ] })命令,该命令记录在案here

开始迁移过程之前。确保应用程序不实现Percona Server for MongoDB(3.x)不支持的任何自定义TokuMX 2.x功能非常重要。这包括事务命令以及批量加载命令。

确保这一点的最佳方法是在开始迁移过程之前,在草案环境中使用Percona Server for MongoDB对应用程序功能进行全面覆盖测试。