單機mongodb安裝
groupadd mongodb
useradd -g mongodb mongodb
tar zxvf mongodb-linux-x86_64-rhel70-3.6.11.tgz
ln -s /opt/mongodb-linux-x86_64-rhel70-3.6.11 /usr/local/mongodb
chown -R mongodb:mongodb /usr/local/mongodb
mkdir -p /data/mongodb/db
mkdir -p /data/mongodb/logs
chown -R mongodb:mongodb /data/mongodb
# 添加檔案打開數和mongod使用者程序連接配接數
cat >> /etc/security/limits.conf << EOF
* soft nofile 65536
* hard nofile 65536
mongod soft nproc 32768
mongod hard nproc 32768
EOF
# 禁用Transparent Huge Pages
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
cat >> /etc/rc.local << EOF
if test -f /sys/kernel/mm/transparent_hugepage/enabled;then
echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag;then
echo never > /sys/kernel/mm/transparent_hugepage/defrag
EOF
vi /etc/mongodb.conf
dbpath = /data/mongodb/db
logpath = /data/mongodb/logs/mongodb.log
port = 27017
fork = true
啟動mongo程式
# /usr/local/mongodb/bin/mongod -f /etc/mongodb.conf
測試mongo是否安裝成功
# /usr/local/mongodb/bin/mongo
添加mongodb指令到環境變量
echo "export PATH=$PATH:/usr/local/mongodb/bin">>/etc/profile
source /etc/profile
設定mongodb開機啟動
# echo "/usr/local/mongodb/bin/mongod -f /etc/mongodb.conf" >>/etc/rc.d/rc.local
mongodb的啟動
mongod --dbpath=/data/mongodb/data --logpath=/data/mongodb/log/33988.log --port 33988 --fork
--dbpath 資料檔案存放路徑,如果沒有指定,預設資料目錄為:/data/db 。
--logpath 錯誤日志存放路徑。
--port 端口号,預設端口号27017 ;預設 28017(比指定的端口号 多一千) 是HTTP接口。
--fork 以背景deamon方式啟動,如果選擇此種方法必須加上 --logpath參數,這是強制的
mongod -f /etc/mongo.cnf
#/etc/mongo.cnf 檔案内容
port=2800
dbpath=/data/mongodb/data
logpath=/data/mongodb/log/mongodb.log
pidfilepath=/data/mongodb/log/mongos.pid
fork=true
mongod的關閉
方法一:
mongod --config=/etc/mondod.conf --shutdown
方法二:
mongo --port 28000
> use admin
> db.shutdownServer();
如果沒有up-to-date 從Mongodb且你想強制關閉服務,可以通過添加force:true;指令如下:
> db.adminCommand({shutdown : 1, force : true})
or
> db.shutdownServer({force : true})
指定特定逾時時間的關閉伺服器,指令同上,另外加上一個timeoutsec:參數
> db.adminCommand(shutdown : 1, force : true, timeoutsec : 5)
> db.shutdownServer({force : true, timeoutsec : 5})
mongos的關閉
因為mongos是無狀态的節點,可以直接kill掉Mongos程序。
副本集(Replica Set)環境中的啟動和關閉
1.啟動
分别啟動每個mongod加入到副本集,最後rs.initiate()就可以了
2.關閉
分别關閉每個mongod,關閉primary的時候如果所有secondary和primary的時間差都大于10s,則primary會
拒絕關閉,如果沒有密集寫操作可以db.shutdownServer({force : true}) 強制關閉。
分片(Shard)環境中的啟動和關閉
這個具體的參照分片的配置,啟動的順序是副本集->config server->mongos
因為mongos是分片架構最前端的入口,是以關閉順序:mongos->config server->副本集