MongoDB 分區叢集

來源:互聯網
上載者:User

標籤:count   enabled   副本   啟用   查看   storage   關閉   ble   des   

mongodb叢集 組件:mongos:請求分發config server 設定管理員shard 分區資料服務器 三台機器192.168.174.128192.168.174.129192.168.174.130伺服器規劃  連接埠分配: mongos:20000config:21000shard1:27001shard2:27002shard3:27003 伺服器需要同步時間,否則測試不通過 128機器操作 1、下載官網:https://www.mongodb.com/download-center#community 2、解壓    tar -xf mongodb-linux-x86_64-rhel70-3.6.5.tgz && mv mongodb-linux-x86_64-rhel70-3.6.5 /usr/local/mongodb 3、加環境變數,方便操作(3台機器)    vim /etc/profile        export PATH=$PATH:/usr/local/mongodb/bin    source /etc/profile 4、建立所需目錄     mkdir -p /usr/local/mongodb/{conf,config/{data,log},shard1/{data,log},shard2/{data,log},shard3/{data,log},mongos/log} 5、編寫設定檔config.conf、shard1.conf、shard2.conf、shard3.conf、mongos.conf ====================================================================================vim /usr/local/mongodb/conf/config.confsystemLog:  destination: file  logAppend: true  path: /usr/local/mongodb/config/log/configsvr.logstorage:  dbPath: /usr/local/mongodb/config/data  journal:    enabled: trueprocessManagement:  fork: true  pidFilePath: /usr/local/mongodb/config/log/configsvr.pid  timeZoneInfo: /usr/share/zoneinfonet:  port: 21000  bindIp: 192.168.174.128  maxIncomingConnections: 20000replication:  replSetName: configssharding:  clusterRole: configsvr    ======================================================================================    vim /usr/local/mongodb/conf/shard1.confsystemLog:  destination: file  logAppend: true  path: /usr/local/mongodb/shard1/log/shard1.logstorage:  dbPath: /usr/local/mongodb/shard1/data  journal:    enabled: trueprocessManagement:  fork: true  pidFilePath: /usr/local/mongodb/shard1/log/shard1.pid  timeZoneInfo: /usr/share/zoneinfonet:  port: 27001  bindIp: 192.168.174.128  maxIncomingConnections: 20000replication:  replSetName: shard1sharding:  clusterRole: shardsvr=======================================================================================vim /usr/local/mongodb/conf/shard2.confsystemLog:  destination: file  logAppend: true  path:  /usr/local/mongodb/shard2/log/shard2.logstorage:  dbPath:  /usr/local/mongodb/shard2/data  journal:    enabled: trueprocessManagement:  fork: true  pidFilePath:  /usr/local/mongodb/shard2/log/shard2.pid  timeZoneInfo: /usr/share/zoneinfonet:  port: 27002  bindIp: 192.168.174.128  maxIncomingConnections: 20000replication:  replSetName: shard2sharding:  clusterRole: shardsvr=========================================================================================vim /usr/local/mongodb/conf/shard3.confsystemLog:  destination: file  logAppend: true  path:  /usr/local/mongodb/shard3/log/shard3.logstorage:  dbPath:  /usr/local/mongodb/shard3/data  journal:    enabled: trueprocessManagement:  fork: true  pidFilePath:  /usr/local/mongodb/shard3/log/shard3.pid  timeZoneInfo: /usr/share/zoneinfonet:  port: 27003  bindIp: 192.168.174.128  maxIncomingConnections: 20000replication:  replSetName: shard3sharding:  clusterRole: shardsvr===========================================================================================vim /usr/local/mongodb/conf/mongos.confsystemLog:  destination: file  logAppend: true  path: /usr/local/mongodb/mongos/log/mongos.logprocessManagement:  fork: true  pidFilePath: /usr/local/mongodb/mongos/log/mongos.pid  timeZoneInfo: /usr/share/zoneinfonet:  port: 20000  bindIp: 192.168.174.128  maxIncomingConnections: 20000sharding:  configDB: configs/192.168.174.128:21000,192.168.174.130:21000,192.168.174.131:21000============================================================================================ 6、將mongodb目錄scp到其兩台伺服器    scp -r /usr/local/mongodb 192.168.174.130:/usr/local/mongodb    scp -r /usr/local/mongodb 192.168.174.131:/usr/local/mongodb     **注意:130和131節點,設定檔中的bindIp需要修改為對應的IP 7、建立使用者,授權(三台機器)    useradd mongod    chown -R mongod:mongod /usr/local/mongodb/ ============================================================================8、啟動設定管理員(3台)    mongod -f /usr/local/mongodb/conf/config.conf 9、初始化複本集(登陸任意一個執行個體即可)    #串連        mongo 192.168.174.128:21000    #初始化複本集        rs.initiate(  {    _id: "configs",    configsvr: true,    members: [      { _id : 0, host : "192.168.174.128:21000" },      { _id : 1, host : "192.168.174.130:21000" },      { _id : 2, host : "192.168.174.131:21000" }    ]  })     #查看狀態    rs.status();==============================================================================10、啟動shard1、shard2、shard3(3台)    mongod -f /usr/local/mongodb/conf/shard1.conf    mongod -f /usr/local/mongodb/conf/shard2.conf    mongod -f /usr/local/mongodb/conf/shard3.conf 11、初始化複本集(在一台執行即可)     #串連        mongo 192.168.174.130:27001    #初始化複本集        rs.initiate(  {    _id : "shard1",    members: [      { _id : 0, host : "192.168.174.128:27001",priority:2},      { _id : 1, host : "192.168.174.130:27001",priority:1},      { _id : 2, host : "192.168.174.131:27001",arbiterOnly: true}    ]  })    #查看狀態    rs.status();     #串連        mongo 192.168.174.131:27002    #初始化複本集        rs.initiate(  {    _id : "shard2",    members: [      { _id : 0, host : "192.168.174.128:27002",arbiterOnly: true},      { _id : 1, host : "192.168.174.130:27002",priority:2},      { _id : 2, host : "192.168.174.131:27002",priority:1}    ]  })    #查看狀態    rs.status();     #串連        mongo 192.168.174.128:27003    #初始化複本集        rs.initiate(  {    _id : "shard3",    members: [      { _id : 0, host : "192.168.174.128:27003",priority:1},      { _id : 1, host : "192.168.174.130:27003",arbiterOnly: true},      { _id : 2, host : "192.168.174.131:27003",priority:2}    ]  })     #查看狀態    rs.status();===============================================================================12、啟動mongos(3台)    mongos -f /usr/local/mongodb/conf/mongos.conf 13、啟用分區(登陸任意一個執行個體)        mongo 192.168.174.128:20000                use  admin                sh.addShard("shard1/192.168.174.128:27001,192.168.174.130:27001,192.168.174.130:27001");        sh.addShard("shard2/192.168.174.128:27002,192.168.174.130:27002,192.168.174.130:27002");        sh.addShard("shard3/192.168.174.128:27003,192.168.174.130:27003,192.168.174.130:27003");            #查看叢集狀態        sh.status(); =============================================================================== 14、測試                設定chunk大小            use config            db.settings.save({ "_id" : "chunksize", "value" : 1 })            #為方便測試設為1M,否則需要插入大量資料才會分區儲存         登陸            mongo 192.168.127.128:20000        指定testdb分區生效            use admin;            db.runCommand({ enablesharding :"testdb"});        指定需要分區的集合和片鍵            db.runCommand({ shardcollection : "testdb.table1",key : {id: 1} });                use testdb;        插入資料            for (var i = 1; i <= 10000; i++) db.table1.save({id:i,"test1":"testval1"});        查看是分區情況               db.table1.stats();           可以看到資料分到3個分區,各自分區數量為: shard1 “count” : 42183,shard2 “count” : 38937,shard3 “count” : 18880。已經成功了! 啟動關閉     mongodb的啟動順序是,先啟動設定管理員,在啟動分區,最後啟動mongos.         mongod -f /usr/local/mongodb/conf/config.conf        mongod -f /usr/local/mongodb/conf/shard1.conf        mongod -f /usr/local/mongodb/conf/shard2.conf        mongod -f /usr/local/mongodb/conf/shard3.conf        mongos -f /usr/local/mongodb/conf/mongos.conf 關閉時,直接killall殺掉所有進程(測試使用)     pkill mongo

MongoDB 分區叢集

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.