从Tokumx2.0到PSMDB的实时数据迁移(PerconaServerforPS3.0)
=======
我正在使用以下指南指定的链接从Tokumx2.0复制集集群迁移到MongoDB3.0的Percona服务器进行实时数据迁移:
本文档描述如何从源TokuMX 2.x服务器迁移到MongoDB 3.x目标Percona (PSMDB),停机时间从零到最小。迁移过程需要以下阶段:
快照-时间点源备份转储-将源备份转换为BSON还原加载BSON到目标Catchup播放操作日志从源切换到目标切换重新配置应用层以使用目标。
在oplog同步的追赶阶段命令中。./bin/toku2mongo --从localhost:27017 --gtid 4:35 --宿主mongoprodcluster1a:37017 2>&1 tee ./toku2mongo.out &
给出错误:
连接到: mongoprodcluster1a:37017 Sat Jul 16 11:57:31.655 toku2mongo错误:错误重放命令op { op:"c",ns:“case.$cmd”,o:{ beginLoad: 1,ns:“case”,索引:{},选项:{} }:{ ok: 0.0,errmsg:"no no: beginLoad",代码: 59,bad cmd:{ beginLoad: 1,ns:“case”,索引:{},选项:{} Sat 7月16日11:57:31.655 toku2mongo退出,而处理GTID 4:35 Sat 711:57:31.655 toku2mongo使用--gtid=4:35恢复。星期六7月16日11:57:31.655 /mnt/tokumx-bkup/toku2mongo-2.0.2-el6-x86_64/toku2mongo_saved_timestamp. toku2mongo将GTID保存为文件下一次我将自动使用这个值,如果您从这个目录运行,并且不传递--gtid。
任何帮助都很感激。谢谢
发布于 2016-07-19 00:14:11
这是因为(3.x)不支持在MongoDB 2.x端执行自定义命令。在追赶阶段,您的应用程序正在执行该命令。这导致了您所看到的错误。
应用程序中正在执行的命令是db.runCommand({ 'beginLoad' : [ 'coll1' , ... ] })命令,它被记录为这里。
在开始迁移过程之前。重要的是确保应用程序不实现(3.x)不支持的任何自定义TokuMX 2.x特性。这包括事务命令和批量加载命令。
确保这一点的最佳方法是在开始迁移过程之前,在草稿环境中使用Percona对应用程序功能进行全面的覆盖测试。
https://stackoverflow.com/questions/38431291
复制相似问题