mongodb4.0版本安裝部署及主從配置


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

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM