从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。
任何帮助赞赏。感谢
答案 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对应用程序功能进行全面覆盖测试。