實時數據遷移從Tokumx 2.0至PSMDB(Percona的服務器有關的MongoDB 3.0)實時數據遷移從Tokumx 2.0到的Percona服務器對於MongoDB的3.0具有零個或最短的停機時間(PSMDB)
=======
我做實時數據遷移從Tokumx 2.0 replicaset集羣的Percona服務器使用下列指南MongoDB的3.0規定的以下鏈接: 訪問https://github.com/dbpercona/tokumx2_to_psmdb3_migration/blob/master/ZeroDowntimeMigration.md#catchup
本文介紹瞭如何從源TokuMX 2.x的服務器遷移用於MongoDB 3.x的目標Percona服務器(PSMDB),其功能從零到最小化wntime。在遷移過程需要以下階段:
快照 - 時點源備份 轉儲 - 轉換源備份到BSON 還原 - 負載BSON到靶 CATCHUP - 從源播放操作日誌靶向 開關 - 重新配置應用層使用目標
oplog sync的追趕階段命令。 ./bin/toku2mongo --from localhost:27017 --gtid 4:35 --host mongoprodcluster1a:37017 2> & 1 |三通./toku2mongo.out &
給出錯誤:
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.
任何幫助表示讚賞。謝謝
我檢查了Tokumx 2.x,並在其中找到了BeginLoad和Transactions命令。然而,我還沒有在Percona服務器中爲mongodb 3.x找到BeginLoad和Transaction命令。現在,如果是這種情況,有什麼建議?我們是否需要重新配置TokuMX或在Percona服務器中添加一些用於mongodb 3.x的內容或需要更新toku2mongo腳本?或者遷移是不可能的? – gahmed
嗨gahmed,應用程序將需要修改,以消除批量加載和交易。用於MongoDB的Percona服務器遵循上游MongoDB 3.x源代碼,該代碼使用樂觀併發並且不能支持複雜事務。 TokuMX是對支持事務的MongoDB 2.x存儲邏輯的低級重寫。然而,TokuMX沒有足夠的商業興趣繼續發展。 –
非常感謝您的詳細答覆。我的腦海中仍然有幾個問題。修改TokuMX以刪除批量加載和交易是否是一個簡單的過程?我們是否需要停機修改? – gahmed