【问题标题】:Live Data Migration From Tokumx 2.0 To Percona Server For MongoDB 3.0 With Zero or Minimum Downtime ( PSMDB )从 Tokumx 2.0 到 Percona 服务器的实时数据迁移,用于 MongoDB 3.0,停机时间为零或最短 (PSMDB)
【发布时间】:2016-07-18 07:52:50
【问题描述】:

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

=======

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

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

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

在 oplog 同步的追赶阶段命令期间。 ./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:“c”,ns: “cases.$cmd”,o:{ beginLoad:1,ns:“cases”,索引:{},选项:{} } }: { ok: 0.0, errmsg: "no such command: beginLoad", code: 59, bad cmd: { beginLoad: 1, ns: "cases", 索引: {}, options: {} } } Sat Jul 16 11:57:31.655 [toku2mongo] 在处理 GTID 时退出 4:35 Sat 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。 Sat Jul 16 11:57:31.655 [toku2mongo] 我会自动使用这个值 下次如果你从这个目录运行并且不传递--gtid。

任何帮助表示赞赏。谢谢

【问题讨论】:

    标签: database live data-migration percona tokumx


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我已经在 Tokumx 2.x 中签入,并在其中找到了 BeginLoad 和 Transactions 命令。然而,我还没有在 Percona 服务器中找到 mongodb 3.x 的 BeginLoad 和 Transaction 命令。现在,如果是这种情况,有什么建议?我们是否需要重新配置 TokuMX 或在 Percona 服务器中为 mongodb 3.x 添加一些内容或需要更新 toku2mongo 脚本?还是无法迁移?
    • 您好 gahmed,需要修改应用程序以删除批量加载和事务。 Percona Server for MongoDB 遵循上游 MongoDB 3.x 源代码,使用乐观并发,不能支持复杂事务。 TokuMX 是对支持事务的 MongoDB 2.x 存储逻辑的低级重写。然而,对 TokuMX 的商业兴趣还不足以继续开发。
    • 非常感谢您的详细回复。我仍然有几个问题。修改 TokuMX 以删除批量加载和交易是否是一个简单的过程?我们需要停机进行修改吗?
    • 真正的问题是:应用程序是否需要复杂的、多文档/多集合/多操作的原子性?请联系 Percona 寻求建议和帮助。
    猜你喜欢
    • 2016-10-31
    • 2019-04-24
    • 1970-01-01
    • 2016-10-13
    • 2023-01-21
    • 1970-01-01
    • 1970-01-01
    • 2020-05-30
    • 2021-09-19
    相关资源
    最近更新 更多