pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
# network interfaces
net:
port: 27017
bindIp: 10.1.0.7 # Listen to local interface only, comment to listen on all interfaces. 需要自定义
#security:
#operationProfiling:
#replication:
#sharding:
# Enterprise-Only Options
#auditLog:
启动mongod
#service mongod start
四、测试
登录mongodb
#mongo --host 10.1.0.7
> db.version();
3.0.7
> show dbs
com_ylt_plat_passport 0.078GB
local 0.078GB
chown mongod.mongod /Data/mongodb -R
service mongod start
五、排错
故障描述 :
service mongod stop 时发现 并没有 关闭mongod服务 进程依然在
通过排查发现问题出在/etc/mongod.conf中第24行
pidFilePath: /var/run/mongodb/mongod.pid # location of pidfile
把后面的# location of pidfile 删除掉 即可,这个是一个小bug
六、mogond备份与还原脚本
#cat mongodb_bak.sh
#!/bin/sh
DUMP=/usr/bin/mongodump
OUT_DIR=/data1/backup/mongodb/mongod_bak_now
BAK_DIR=/data1/backup/mongodb/mongod_bak_list
DATE=`date +%F_%H%M%d`
#DB_USER=username
#DB_PASS=
DAYS=7
TAR_BAK="mongodb_bak_$DATE.tar.gz"
[ -d $OUT_DIR ] || mkdir -v $OUT_DIR
[ -d $BAK_DIR ] || mkdir -v $BAK_DIR
BAK_DB(){
cd $OUT_DIR
rm -rf $OUT_DIR/*
mkdir -p $DATE
#$DUMP -u $DB_USER -p $DB_PASS -o $OUT_DIR/$DATE
$DUMP -o $OUT_DIR/$DATE
tar czvf $BAK_DIR/$TAR_BAK $OUT_DIR/$DATE
find $BAK_DIR/ -mtime +$DAYS -delete
}
RESTORE_ALL(){
cd $OUT_DIR
for d in `ls`;
do
echo $OUT_DIR/$d
/usr/bin/mongorestore -d $OUT_DIR/$d
done
}
RESTORE_Choose(){
while true
do
echo "when you choose 'quit|exit' exit to restore!"
read -p "What's your choose?(Enter continue!)" choose
if [[ $choose == 'quit' || $choose == 'exit' ]]
then
echo "You choose exit!" && exit 2
fi
cd $OUT_DIR
d=`ls`
cd $OUT_DIR/$d
ls
read -p "What's db your choose?" whatdb
if [ "$whatdb" != '' ];
then
/usr/bin/mongorestore -d $whatdb
else
echo "choose is empty,exit~" && exit 0
fi
done
}
case $1 in
back)
BAK_DB
;;
resall)
RESTORE_ALL
;;
resone)
RESTORE_Choose
;;
*)
echo "USGE:back|resall|resone"
;;
esac
使用说明:
back 备份全部的mongod数据库
resall 还原所有的数据库
resone可以指定还原某一个数据库
七、解决警告提示
1、问题描述
解决登录mongo --host 10.1.0.7 --port 27017 类似如下提示
** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'. 和 ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
MongoDB shell version: 3.0.7
connecting to: 10.1.0.7:27017/test
Server has startup warnings:
2016-12-08T16:10:15.638+0800 I CONTROL [initandlisten]
2016-12-08T16:10:15.638+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-12-08T16:10:15.638+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-12-08T16:10:15.638+0800 I CONTROL [initandlisten]
2016-12-08T16:10:15.638+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-12-08T16:10:15.638+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-12-08T16:10:15.638+0800 I CONTROL [initandlisten]
由于环境为CentOS6.8 所以解决方法如下,其他平台及版本请参考官方文档:https://docs.mongodb.org/manual/tutorial/transparent-huge-pages/
2、解决方法:
添加如下脚本
#vim /etc/init.d/disable-transparent-hugepages
#!/bin/sh### BEGIN INIT INFO
# Provides: disable-transparent-hugepages
#tuned-adm profile no-thp 如果提示找不到命令请执行yum install tuned -y
reboot 系统
4、验证:
$mongo --host 10.1.0.7 --port 27017
MongoDB shell version: 3.0.7
connecting to: 10.1.0.7:27017/test
>
5、出现如下错误:
** WARNING: soft rlimits too low. rlimits set to 1024 processes, 64000 files. Number of processes should be at least 32000 : 0.5 times number of files.
#vim /etc/security/limits.conf
添加:
mongod soft nofile 64000
mongod hard nofile 64000
mongod soft nproc 32000
mongod hard nproc 32000
重启mongod
到此mongod安装完成~如有错误之处欢迎指正!