返回顶部
首页 > 资讯 > 数据库 >CentOS6.8安装mongodb3.0与备份脚本
  • 414
分享到

CentOS6.8安装mongodb3.0与备份脚本

2024-04-02 19:04:59 414人浏览 八月长安
摘要

一、系统环境Centos 6.8_x64官方参考文档https://docs.mongoDB.org/manual/reference/glossary/#term-init-script二、添加官方yum

一、系统环境
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安装完成~如有错误之处欢迎指正!

您可能感兴趣的文档:

--结束END--

本文标题: CentOS6.8安装mongodb3.0与备份脚本

本文链接: https://lsjlt.com/news/41844.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CentOS6.8安装mongodb3.0与备份脚本
    一、系统环境CentOS 6.8_x64官方参考文档https://docs.mongodb.org/manual/reference/glossary/#term-init-script二、添加官方yum...
    99+
    2024-04-02
  • MySQL热备份与还原---利用mysqldump---备份脚本
    对extmail数据库进行每天01:00完全热备份,并可以完全恢复!一、先建立备份脚本,如下:vi mysql_extmail_bak.sh #!/bin/bash # Program ...
    99+
    2024-04-02
  • mysql备份脚本
    在网上看了几个脚本根据网上的稍微修改了下,稍微更准确了点,就是缺少记录日志的功能,还没想好怎么写,后续添加 #!/bin/bash#做大备份数量Backup_Max_Files=20#数据库备份目录WORK...
    99+
    2024-04-02
  • oracle 备份脚本
     #!/bin/shexport ORACLE_BASE=/app/oracle/export ORACLE_HOME=/app/oracle/productexport&nb...
    99+
    2024-04-02
  • rman备份脚本
    #!/bin/bash ################################# # backup oracle database # date: 2019-6-23 ##############...
    99+
    2024-04-02
  • abin 备份脚本
    #!/bin/sh # # 第一次执行它的时候它会检查是否有完全备份,否则先创建一个全库备份# 当你再次运行它的时候,它会根据脚本中的设定来基于之前的全库备份进行增量备份 IN...
    99+
    2024-04-02
  • mysqldump备份脚本
    [root@sq1 /]# cat logic_backup.sh #!/bin/bash CUR_DATE=`date +%Y%m%d`         &...
    99+
    2024-04-02
  • python脚本备份
    #!/usr/bin/python #encodeing:utf-8 import os import time import string #需要备份的目录 source = ['/usr/local/nagios','/var/www/...
    99+
    2023-01-31
    脚本 备份 python
  • Rman备份等级及备份脚本
    Rman备份等级及备份脚本基础知识:Oracle备份等级分为level 0,level 1及level 2;但是level 2并不常用,这里只稍微做下解释,这里,level 0>level 1>...
    99+
    2024-04-02
  • ORCLE RMAN备份脚本
    1、Linux下oracle备份脚本export ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/11.2.0/d...
    99+
    2024-04-02
  • oracle rman备份脚本
    日常习惯使用netbackup进行数据库备份,但是经常环境中无netbackup,因此的自己写个脚本,脚本很简单,主要是写费时间,因此贴出来以备后用:全备:cat arch_rman_backup.sh: ...
    99+
    2024-04-02
  • Oracle冷备份脚本
    一、原理 冷备份 数据库在关闭状态下完成所有物理系统文件拷贝的过程,也称脱机备份 适合于非归档模式下,数据库处于一致性状态 步骤 首先在运行的库中得到数据库运行的所有的物理文件位置,然后在...
    99+
    2024-04-02
  • mysql mysqldum备份脚本
    本篇文章主要讲如何使用shell实现mysql全量,增量备份。增量备份在周一-周六凌晨3点,会复制mysql-bin.00000*到指定目录;而全量备份则使用mysqldump将所有的数据库导出,每周日凌晨...
    99+
    2024-04-02
  • python备份mysql脚本
    今天简单的写了个python的mysql备份脚本,其实也不是很难呀。比shell简洁了很多!  开整:  注释都用英文写了,有些英语基础的朋友应该都可以看得懂了!#!/usr/bin/env python #backup the gtsho...
    99+
    2023-01-31
    脚本 备份 python
  • SQL Server2019数据库备份与还原脚本(批量备份)
    前言最近公司服务器到期,需要进行数据迁移,而数据库属于多而繁琐,通过图形化界面一个一个备份所需时间成本很大,所以想着写一个sql脚本来执行。 开始 数据库单个备份 ...
    99+
    2024-04-02
  • mysql数据库备份与恢复脚本
    #!/bin/bash#mysql database backup and restore the script# define config variablehost=localhostuser=root...
    99+
    2024-04-02
  • mysql全库备份/增量备份脚本
    http://hongge.blog.51cto.com/ 生产环境中Mysql数据库的备份是周期性重复的操作,所以通常是要编写脚本实现,通过crond计划任务周期性执行备份脚本 mysqldump备份...
    99+
    2024-04-02
  • mysql 分库备份脚本
    #!/bin/bash #Author:heyic.m@gmail.com #按数据库分库备份,可排除指定库 #2016-06-08 create. #2017-02-21 add&nb...
    99+
    2024-04-02
  • 数据库脚本备份
    rem *******************************Code Start*****************************@echo offset "Ymd=%date:~,4%%...
    99+
    2024-04-02
  • rman备份脚本shell版
    1、数据库全备到硬盘[oracle@centos7 scripts]$ cat rman_backup.sh   source /home/ora...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作