Live Data Migration From Tokumx 2.0 To PSMDB (Percona Server For MongoDB 3.0)
=======
I am doing live data migration from Tokumx 2.0 replicaset cluster to Percona server for mongodb 3.0 using the following Guide specified Link Below : Visit https://github.com/dbpercona/tokumx2_to_psmdb3_migration/blob/master/ZeroDowntimeMigration.md#catchup
This document describes how to migrate from a source TokuMX 2.x server to a target Percona Server for MongoDB 3.x (PSMDB) with zero to minimal downtime. The migration process requires the following phases:
Snapshot - Point in time source Backup Dump - Convert source backup to BSON Restore - Load BSON into target Catchup - Play operation log from source to target Switch - Reconfigure application layer to use target
During the catchup phase command for oplog sync. ./bin/toku2mongo --from localhost:27017 --gtid 4:35 --host mongoprodcluster1a:37017 2>&1 | tee ./toku2mongo.out &
Gives error :
connected to: mongoprodcluster1a:37017 Sat Jul 16 11:57:31.655 [toku2mongo] ERROR: error replaying command op { op: "c", ns: "cases.$cmd", o: { beginLoad: 1, ns: "cases", indexes: {}, options: {} } }: { ok: 0.0, errmsg: "no such command: beginLoad", code: 59, bad cmd: { beginLoad: 1, ns: "cases", indexes: {}, options: {} } } Sat Jul 16 11:57:31.655 [toku2mongo] Exiting while processing GTID 4:35 Sat Jul 16 11:57:31.655 [toku2mongo] Use --gtid=4:35 to resume. Sat Jul 16 11:57:31.655 [toku2mongo] Saved GTID to file /mnt/tokumx-bkup/toku2mongo-2.0.2-el6-x86_64/toku2mongo_saved_timestamp. Sat Jul 16 11:57:31.655 [toku2mongo] I'll automatically use this value next time if you run from this directory and don't pass --gtid.
Any help Appreciated. Thanks
This is due to the execution of a custom command on the TokuMX 2.x side that is not supported in Percona Server for MongoDB (3.x). The command is being executed by your application during the catchup phase. This is causing the error you are seeing.
The command being executed in the application is the
db.runCommand({ 'beginLoad' : [ 'coll1' , ... ] })command which is documented hereBefore beginning the migration process. It is important to ensure that the application does not implement any custom TokuMX 2.x features that are not supported by Percona Server for MongoDB (3.x). This includes the transaction commands as well as the bulk loading commands.
The best way to ensure this is to do a full coverage test of the applications functionality with Percona Server for MongoDB in a draft environment before beginning the migration process.