配置MongoDB3.04叢集分區
網上大部分都是的mongo2.x叢集分區了,咱寫個3.04的。
由於公司採用磁碟陣列冗餘儲存,所以不考慮資料備份問題只是簡單的分區儲存資料進行測試的。
配置結構
伺服器配置:
cpu雙核、8G記憶體、/shard目錄掛載500G硬碟。
伺服器列表:
IP |
職能 |
192.168.6.117 |
config、mongos |
192.168.6.118 |
client |
192.168.6.119 |
client |
192.168.6.147 |
client |
192.168.6.160 |
client |
首先開啟這5台機器執行如下相同命令:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.4.tgz
tar zxvf mongodb-linux-x86_64-3.0.4.tgz
cp -rf mongodb-linux-x86_64-3.0.4 /usr/local/
依次開啟118、119、147、160四台機器執行如下命令(注意:使用118替換指定的119):
mkdir /shard/shard11 9
chmod -R 777 /shard/shard119
/usr/local/mongodb-3.0.4/bin/mongod -shardsvr -port 27017 -dbpath=/shard/shard119/ --storageEngine wiredTiger -logpath=/shard/shard119.log --fork
然後啟動。在終端中分別執行檢查Mongod進程是否成功啟動:
ps aux | grep mongo
如果任何一台沒有啟動成功,重複上面的,直到找出原因。
OK,現在我們成功的分別在4台電腦上啟動了1個mongod執行個體,mongod是真正儲存資料的進程。叢集中還需要一個設定管理員,用來儲存在各個節點中共用的配置資訊,儲存資料的元資訊[METADATA],也如上面我結構圖中config.
開啟117伺服器執行如下命令:
mkdir /data/config
/usr/local/mongodb-3.0.4/bin/mongod -configsvr -dbpath=/data/config -port 20000 -logpath=/data/config.log --fork
當以上都啟動成功,我們可以開啟mongos服務了。mongo也是在117上執行。
/usr/local/mongodb-3.0.4/bin/mongos -configdb 192.168.6.117:20000 -port 30000 -chunkSize 100 -logpath=/data/mongos.log --fork
注意-configdb所對應的IP地址和連接埠應該為config裡設定的所在ip及連接埠。-chunkSize設定分區大小主機預設200,我們可以設定成100即100M。
如果順利的話,你在117能看到兩個mongo上啟動並執行進程,執行查看:ps -ef | grep mong。表明mongo分區安裝完畢。
下面開始配置mongo分區:
串連操作資料庫:
/usr/local/mongodb-3.0.4/bin/mongo 192.168.6.117:30000/admin
注意:以下都是在mongo命令列下完成的操作:
添加分區伺服器:
db.runCommand({"addshard":"192.168.6.118:27017"})
db.runCommand({"addshard":"192.168.6.119:27017"})
db.runCommand({"addshard":"192.168.6.147:27017"})
db.runCommand({"addshard":"192.168.6.160:27017"})
設定分區資料庫:
db.runCommand({"enablesharding": "qiaodazhao"})
使用資料庫:
use qiaodazhao
設定表分區基於欄位hash:
sh.shardCollection("qiaodazhao.resume_meta_data",{_id:"hashed"})
設定表分區基於欄位(注意這種形式與以上作用相同):
db.runCommand({"shardcollection":"qiaodazhao.things", "key":{"_id":1}})
列印資料庫分區資訊:
db.printShardingStatus()
列印伺服器資訊:
db.serverStatus()
建立表索引:
db.resume_meta_data.ensureIndex({"org_name":1},{"background":true})
查看錶索引:
db.resume_meta_data.getIndexes()
列印資訊這裡就不了。
MongoDB常用操作命令整理
MongoDB 3.0 正式版發布下載
CentOS編譯安裝MongoDB
CentOS 編譯安裝 MongoDB與mongoDB的php擴充
CentOS 6 使用 yum 安裝MongoDB及伺服器端配置
Ubuntu 13.04下安裝MongoDB2.4.3
MongoDB入門必讀(概念與實戰並重)
Ubunu 14.04下MongoDB的安裝指南
《MongoDB 權威指南》(MongoDB: The Definitive Guide)英文文字版[PDF]
Nagios監控MongoDB分區叢集服務實戰
基於CentOS 6.5作業系統搭建MongoDB服務
MongoDB 的詳細介紹:請點這裡
MongoDB 的:請點這裡
本文永久更新連結地址: