標籤: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分區群集