mongodb分區叢集資料移轉(方案一)

來源:互聯網
上載者:User
將現有mongodb複本集的資料移轉到新的分區叢集中,設計三種遷移方案。
    方案一:先同步資料,再建立分區叢集,最後配置分區叢集。 匯出需要遷移的資料;建立第一個複本集;將資料匯入到複本集中;增加另外兩個複本集;啟動config server;啟動mongos server;配置分區叢集。 1. 匯出需要遷移的資料; /usr/local/mongo/bin/mongodump --host 172.16.8.134:29017 -d 201 -o /data/data/mongo/tmp/ --directoryperdb 並且將該資料同步到131的/data/data/mongodb/tmp目錄中 2. 建立第一個複本集 2.1 建立第一個複本集shard1,不帶分區的 server1: /usr/local/mongo/bin/mongod --replSet shard1 --port 29017 --dbpath=/data/data/mongodb/shard11 --logpath=/data/log/shard11.log --logappend --fork server2: /usr/local/mongo/bin/mongod --replSet shard1 --port 29017 --dbpath=/data/data/mongodb/shard12 --logpath=/data/log/shard12.log --logappend --fork server3: /usr/local/mongo/bin/mongod --replSet shard1 --port 29017 --dbpath=/data/data/mongodb/shard13 --logpath=/data/log/shard13.log --logappend --fork 2.2 初始化第一個複本集shard1 ./mongo --port 29017 config={_id : 'shard1',members : [{_id : 0, host : '172.16.8.131:29017'},{_id : 1, host : '172.16.8.132:29017'},{_id : 2, host : '172.16.8.133:29017'}]} rs.initiate(config) rs.status()   3. 將資料匯入到複本集中 需要匯入到PRIMARY節點 ./mongorestore --host 172.16.8.131:29017 -d 201 --directoryperdb /data/data/mongodb/tmp/201/   4. 增加另外兩個複本集 4.1 啟動剩餘兩個複本集,不帶分區 server1: /usr/local/mongo/bin/mongod --replSet shard2 --port 29018 --dbpath=/data/data/mongodb/shard21 --logpath=/data/log/shard21.log --logappend --fork /usr/local/mongo/bin/mongod --replSet shard3 --port 29019 --dbpath=/data/data/mongodb/shard31 --logpath=/data/log/shard31.log --logappend --fork server2: /usr/local/mongo/bin/mongod --replSet shard2 --port 29018 --dbpath=/data/data/mongodb/shard22 --logpath=/data/log/shard22.log --logappend --fork /usr/local/mongo/bin/mongod --replSet shard3 --port 29019 --dbpath=/data/data/mongodb/shard32 --logpath=/data/log/shard32.log --logappend --fork server3: /usr/local/mongo/bin/mongod --replSet shard2 --port 29018 --dbpath=/data/data/mongodb/shard23 --logpath=/data/log/shard23.log --logappend --fork /usr/local/mongo/bin/mongod --replSet shard3 --port 29019 --dbpath=/data/data/mongodb/shard33 --logpath=/data/log/shard33.log --logappend --fork 4.2 初始化剩餘兩個複本集 ./mongo --port 29018 config={_id : 'shard2',members : [{_id : 0, host : '172.16.8.131:29018'},{_id : 1, host : '172.16.8.132:29018'},{_id : 2, host : '172.16.8.133:29018'}]} rs.initiate(config) rs.status() ./mongo --port 29019 config={_id : 'shard3',members : [{_id : 0, host : '172.16.8.131:29019'},{_id : 1, host : '172.16.8.132:29019'},{_id : 2, host : '172.16.8.133: 29019'}]} rs.initiate(config) rs.status()   5. 啟動config server /usr/local/mongo/bin/mongod --configsvr --dbpath=/data/data/mongodb/config --port 20000 --logpath=/data/log/config.log --logappend --fork /usr/local/mongo/bin/mongod --configsvr --dbpath=/data/data/mongodb/config --port 20000 --logpath=/data/log/config.log --logappend --fork     /usr/local/mongo/bin/mongod --configsvr --dbpath=/data/data/mongodb/config --port 20000 --logpath=/data/log/config.log --logappend --fork   6. 啟動mongos server /usr/local/mongo/bin/mongos --configdb 172.16.8.131:20000,172.16.8.132:20000,172.16.8.133:20000 -port 40000 -chunkSize 5 --logpath=/data/log/mongos.log --logappend --fork /usr/local/mongo/bin/mongos --configdb 172.16.8.131:20000,172.16.8.132:20000,172.16.8.133:20000 -port 40000 -chunkSize 5 --logpath=/data/log/mongos.log --logappend --fork /usr/local/mongo/bin/mongos --configdb 172.16.8.131:20000,172.16.8.132:20000,172.16.8.133:20000 -port 40000 -chunkSize 5 --logpath=/data/log/mongos.log --logappend --fork    7. 配置分區叢集 7.1 配置分區 ./mongo 172.16.8.131:40000/admin db 7.2 加入shards db.runCommand({ addshard : "shard1/172.16.8.131:29017,172.16.8.132:29017,172.16.8.133:29017", name:"shard1", maxsize:20480}); db.runCommand({ addshard : "shard2/172.16.8.131:29018,172.16.8.132:29018,172.16.8.133:29018", name:"shard2", maxsize:20480}); db.runCommand({ addshard : "shard3/172.16.8.131:29019,172.16.8.132:29019,172.16.8.133:29019", name:"shard3", maxsize:20480});  7.3 Listing shards db.runCommand({listshards : 1}) 7.4 啟用分區 db.runCommand({enablesharding : "201"}); 7.5 建立索引 use 201 db.customer_user_mst.ensureIndex({"name":1}) db.user_attr_mst.ensureIndex({"name":1}) 7.6 配置片鍵 use admin db.runCommand({"shardcollection":"201.customer_user_mst", key:{"name":1}})          db.runCommand({"shardcollection":"201.user_attr_mst", key:{"name":1}})         
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.