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