mongodb分區群集

來源:互聯網
上載者:User

標籤:sysctl   creat   dex   執行個體   x86   har   其他   enables   tar zxvf   

  • 簡介:大資料量和輸送量的資料庫會對單機的效能 造成較大壓力,大量的資料查詢會將單機的CPU耗盡,大的資料量對單機的儲存壓力較大,最終會耗盡系統的記憶體,將壓力轉移到磁碟IO上。

  • 優點:1.使用分區減少了每個分區需要處理的請求數。2.使用分區減少了每個分區儲存的資料。

  • mongodb分區群集的組成:shard(分區伺服器),config server(設定管理員),route(路由伺服器)

  • 分區伺服器:儲存資料
  • 設定管理員:管理分區伺服器
  • 路由伺服器:作為前端路由
  • 安裝mongodb3.2:

    安裝openssl-devel並解壓到/opt下

    便於管理mongo和mongod,做個連結

    yum install openssl-devel -ytar zxvf mongodb-linux-x86_64-3.2.1.tgz -C /opt/mv mongodb-linux-x86_64-3.2.1/ /usr/local/mongodbln -s /usr/local/mongodb/bin/mongo /usr/bin/mongoln -s /usr/local/mongodb/bin/mongod /usr/bin/mongod

    建立四個執行個體的資料檔案和記錄檔

    mkdir -p /data/mongodb/mongodb{1,2,3,4}mkdir /data/mongodb/logstouch /data/mongodb/logs/mongodb{1,2,3,4}.logchmod -R 777 /data/mongodb/logs/*.log

    nlimit -u和ulimit -n的值大於20000

    ulimit -n 25000ulimit -u 25000

    設定管理員

    cd /usr/local/mongodb/bin/ //在bin目錄下vim mongodb1.confport=37017          //添加如下內容dbpath=/data/mongodb/mongodb1logpath=/data/mongodb/logs/mongodb1.loglogappend=truefork=truemaxConns=5000storageEngine=mmapv1configsvr=truemongod -f /usr/local/mongodb/bin/mongodb1.conf  //啟動服務sysctl -w vm.zone_reclaim_mode=0echo never > /sys/kernel/mm/transparent_hugepage/enabledecho never > /sys/kernel/mm/transparent_hugepage/defrag//某節點記憶體不足時,從其他節點分配記憶體

    分區伺服器

    #mongodb2.confcp -p mongodb1.conf mongodb2.confvim mongodb2.conf    //對mongodb2.conf進行配置port=47017    //連接埠號碼為47017dbpath=/data/mongodb/mongodb2  //資料檔案logpath=/data/mongodb/logs/mongodb2.log  //記錄檔logappend=truefork=truemaxConns=5000storageEngine=mmapv1shardsvr=true#mongodb3.confcp -p mongodb1.conf mongodb3.confvim mongodb3.confport=47018   //連接埠為47018dbpath=/data/mongodb/mongodb3logpath=/data/mongodb/logs/mongodb3.loglogappend=truefork=truemaxConns=5000storageEngine=mmapv1shardsvr=true#開啟兩個服務mongod -f mongodb2.confmongod -f mongodb3.conf

    啟動路由伺服器

    ./mongos --port 27017 --fork --logpath=/usr/local/mongodb/bin/route.log --configdb 192.168.235.204:37017 --chunkSize 1   //必須在/usr/local/mongodb/bin下

    啟用分區伺服器

    mongomongos> show dbsmongos> sh.status()  //shards下為空白,沒有分區伺服器mongos> sh.addShard("192.168.177.133:47017") //添加47017連接埠的分區伺服器mongos> sh.addShard("192.168.177.133:47018")  //添加47018連接埠的分區伺服器mongos> sh.status()

    分區功能

    先添加一個資料庫,在集合裡建立資料

    mongos> sh.enableSharding("school")   #啟用資料庫分區mongos> db.info.createIndex({"id":1})   #對info表建立索引mongos> sh.shardCollection("school.info",{"id":1})  #表分區mongos> sh.status()

    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.