设为首页 收藏本站
查看: 917|回复: 0

[经验分享] CentOS6.8安装mongodb3.0与备份脚本

[复制链接]
发表于 2018-10-25 08:39:17 | 显示全部楼层 |阅读模式
  一、系统环境
  CentOS 6.8_x64
  官方参考文档https://docs.mongodb.org/manual/reference/glossary/#term-init-script
  二、添加官方yum库
  #cd /etc/yum.repo.d/
  #vim  mongodb.repo
[mongodb-org-3.0]  
name=MongoDB Repository
  
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
  
gpgcheck=0
  
enabled=1
  三、安装配置
  1、安装并创建数据目录
#yum install -y mongodb-org  
#mkdir -p /Data/mongodb
  
#chown   mongod.mongod /Data/mongodb -R
  2、配置mongod.conf
  #vim /etc/mongod.conf
# mongod.conf  
# for documentation of all options, see:
  
#   http://docs.mongodb.org/manual/reference/configuration-options/
  
# where to write logging data.
  
systemLog:
  
  destination: file
  
  logAppend: true
  
  path: /Data/mongodb/mongod.log    #需要自定义
  
# Where and how to store data.
  
storage:
  
  dbPath: /Data/mongodb/db           #需要自定义
  
  journal:
  
    enabled: true
  
#  engine:
  
#  mmapv1:
  
#  wiredTiger:
  
# how the process runs
  
processManagement:
  
  fork: true  # fork and run in background
  
  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
  
# Required-Start:    $local_fs
  
# Required-Stop:
  
# X-Start-Before:    mongod mongodb-mms-automation-agent
  
# Default-Start:     2 3 4 5
  
# Default-Stop:      0 1 6
  
# Short-Description: Disable Linux transparent huge pages
  
# Description:       Disable Linux transparent huge pages, to improve
  
#                    database performance.
  
### END INIT INFO
  
case $1 in
  
start)
  
    if [ -d /sys/kernel/mm/transparent_hugepage ]; then
  
        thp_path=/sys/kernel/mm/transparent_hugepage
  
    elif [ -d /sys/kernel/mm/redhat_transparent_hugepage ]; then
  
        thp_path=/sys/kernel/mm/redhat_transparent_hugepage
  
    else
  
        return 0
  
     fi
  
        echo 'never' > ${thp_path}/enabled
  
        echo 'never' > ${thp_path}/defrag
  
        unset thp_path
  
    ;;
  
    esac
  添加到开机自启服务
#chmod +x /etc/init.d/disable-transparent-hugepages  
#chkconfig --add disable-transparent-hugepages
  3、修改系统参数
#mkdir -p /etc/tune-profiles/no-thp  
#cd /etc/tune-profiles/no-thp
  
#echo "set_transparent_hugepages never" > ktune.sh
  
#chmod +x ktune.sh
  
#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安装完成~如有错误之处欢迎指正!



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-626139-1-1.html 上篇帖子: MongoDB主从 下篇帖子: mongodb 副本集搭建
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表