mongodb環境
下載地址:
https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-4.0.0.tgz
安裝:
tar xf /usr/local/src/mongodb-linux-x86_64-rhel62-4.0.0.tgz -C /usr/local/ mv /usr/local/mongodb-linux-x86_64-rhel62-4.0.0 /usr/local/mongodb4.0.0 環境變量設置: echo "#mongodb4.0.0 environment export PATH=\$PATH:/usr/local/mongodb4.0.0/bin/" >> /etc/profile.d/mongod.sh && source /etc/profile 創建目錄: groupadd -r mongod && useradd -s /sbin/nologin -g mongod -r mongod mkdir -p /home/mongodb/mongodata && mkdir -p /home/mongodb/mongolog && chown -R mongod:mongod /home/mongodb/mongodata && chown -R mongod:mongod /home/mongodb/mongolog 系統環境設置: vim /etc/security/limits.conf =============================== * soft nproc 640000 * hard nproc 640000 * soft nofile 640000 * hard nofile 640000 =============================== vim /etc/profile source /etc/profile ================== ulimit -n 640000 ulimit -u 640000 ================== 開啟大透明頁 echo never > /sys/kernel/mm/redhat_transparent_hugepage/enabled echo never > /sys/kernel/mm/transparent_hugepage/defrag
master配置文件:/etc/mongod_27018.conf
logpath=/home/mongodb/mongolog/mongod.log logappend=true fork=true port=27018 dbpath=/home/mongodb/mongodata pidfilepath=/home/mongodb/mongolog/27018.pid oplogSize=4096 maxConns=640000 directoryperdb=true nojournal=true master=true
slave配置文件:/etc/mongod_27018.conf
logpath=/home/mongodb/mongolog/27018/mongod.log logappend=true fork=true port=27018 dbpath=/home/mongodb/mongodata/27018 pidfilepath=/home/mongodb/mongolog/27018.pid oplogSize=4096 maxConns=3280 directoryperdb=true nojournal=true
autoresync=true slave=true source=10.124.156.251:27018
啟動腳本: /etc/init.d/mongod chmod +x /etc/init.d/mongod chkconfig mongod on
#!/bin/sh # chkconfig: 2345 93 18 # author:qingbo.song # description:MongoDB(MongoDB-4.0.0) #默認參數設置 #mongodb 家目錄 MONGODB_HOME=/usr/local/mongodb4.0.0 #mongodb 啟動命令 MONGODB_BIN=$MONGODB_HOME/bin/mongod #mongodb 配置文件 MONGODB_CONF=/etc/mongod_27018.conf #mongodb PID MONGODB_PID=/home/mongodb/mongolog/27018.pid #最大文件打開數量限制 SYSTEM_MAXFD=640000 #mongodb 名字 MONGODB_NAME="mongodb" . /etc/rc.d/init.d/functions if [ ! -f $MONGODB_BIN ] then echo "$MONGODB_NAME startup: $MONGODB_BIN not exists! " exit fi start(){ ulimit -HSn $SYSTEM_MAXFD $MONGODB_BIN --config="$MONGODB_CONF" ret=$? if [ $ret -eq 0 ]; then action $"Starting $MONGODB_NAME: " /bin/true else action $"Starting $MONGODB_NAME: " /bin/false fi } stop(){ PID=$(ps aux |grep "$MONGODB_NAME" |grep "$MONGODB_CONF" |grep -v grep |wc -l) if [[ $PID -eq 0 ]];then action $"Stopping $MONGODB_NAME: " /bin/false exit fi kill -HUP `cat $MONGODB_PID` ret=$? if [ $ret -eq 0 ]; then action $"Stopping $MONGODB_NAME: " /bin/true rm -f $MONGODB_PID else action $"Stopping $MONGODB_NAME: " /bin/false fi } restart() { stop sleep 2 start } case "$1" in start) start ;; stop) stop ;; status) status $prog ;; restart) restart ;; *) echo $"Usage: $0 {start|stop|status|restart}" esac
附注:
主從啟動之后,連接slave可以成功連上,但是在slave中執行 show dbs 的時候就報錯了:
QUERY Error: listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" }
解決方法:
在報錯的slave機器上執行 rs.slaveOk()方法即可。
mongodb集群部署參考鏈接:
mongodb運維之副本集實踐 http://cnodejs.org/topic/5590adbbebf9c92d17e734de
mongodb相關基礎學習:
MongoDB 教程 http://www.runoob.com/mongodb/mongodb-tutorial.html