mongodbスライスクラスタ
Openssl-develをインストールし/optに解凍
mongoとmongodの管理が容易で、リンクを作ります
yum install openssl-devel -y
tar zxvf mongodb-linux-x86_64-3.2.1.tgz -C /opt/
mv mongodb-linux-x86_64-3.2.1/ /usr/local/mongodb
ln -s /usr/local/mongodb/bin/mongo /usr/bin/mongo
ln -s /usr/local/mongodb/bin/mongod /usr/bin/mongod
4つのインスタンスのデータファイルとログファイルの作成
mkdir -p /data/mongodb/mongodb{1,2,3,4}
mkdir /data/mongodb/logs
touch /data/mongodb/logs/mongodb{1,2,3,4}.log
chmod -R 777 /data/mongodb/logs/*.log
nlimit-uとulimit-nの値は20000より大きい
ulimit -n 25000
ulimit -u 25000
サーバの構成
cd /usr/local/mongodb/bin/ // bin
vim mongodb1.conf
port=37017 //
dbpath=/data/mongodb/mongodb1
logpath=/data/mongodb/logs/mongodb1.log
logappend=true
fork=true
maxConns=5000
storageEngine=mmapv1
configsvr=true
mongod -f /usr/local/mongodb/bin/mongodb1.conf //
sysctl -w vm.zone_reclaim_mode=0
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
// ,
スライスサーバ
#mongodb2.conf
cp -p mongodb1.conf mongodb2.conf
vim mongodb2.conf // mongodb2.conf
port=47017 // 47017
dbpath=/data/mongodb/mongodb2 //
logpath=/data/mongodb/logs/mongodb2.log //
logappend=true
fork=true
maxConns=5000
storageEngine=mmapv1
shardsvr=true
#mongodb3.conf
cp -p mongodb1.conf mongodb3.conf
vim mongodb3.conf
port=47018 // 47018
dbpath=/data/mongodb/mongodb3
logpath=/data/mongodb/logs/mongodb3.log
logappend=true
fork=true
maxConns=5000
storageEngine=mmapv1
shardsvr=true
#
mongod -f mongodb2.conf
mongod -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
スライスサーバーの有効化
mongo
mongos> show dbs
mongos> 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()