0

从 Tokumx 2.0 到 PSMDB 的实时数据迁移(Percona Server For MongoDB 3.0)

=======

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

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

Snapshot - 时间点源 Backup Dump - 将源备份转换为 BSON Restore - 将 BSON 加载到目标 Catchup - 从源播放操作日志到目标 Switch - 重新配置应用层以使用目标

在 oplog 同步的 catchup 阶段命令。./bin/toku2mongo --来自 localhost:27017 --gtid 4:35 --host mongoprodcluster1a:37017 2>&1 | 发球台./toku2mongo.out &

给出错误:

连接到:mongoprodcluster1a:37017 Sat Jul 16 11:57:31.655 [toku2mongo] 错误:错误重播命令 op { op:“c”,ns:“cases.$cmd”,o:{ beginLoad:1,ns:“cases ",索引:{},选项:{} } }:{ ok:0.0,errmsg:“没有这样的命令:beginLoad”,代码:59,错误的 cmd:{ beginLoad:1,ns:“cases”,索引:{ }, options: {} } } Sat Jul 16 11:57:31.655 [toku2mongo] 在处理 GTID 时退出 4:35 Sat Jul 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。Sat Jul 16 11:57:31.655 [toku2mongo] 如果你从这个目录运行并且不通过 --gtid,下次我会自动使用这个值。

任何帮助表示赞赏。谢谢

4

1 回答 1

0

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

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

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

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

于 2016-07-19T00:14:11.223 回答