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

本文涉及的产品
云数据库 MongoDB,通用型 2核4GB
简介:

一、系统环境
CentOS 6.8_x64
官方参考文档https://docs.mongodb.org/manual/reference/glossary/#term-init-script

二、添加官方yum库
#cd /etc/yum.repo.d/
#vim  mongodb.repo

1
2
3
4
5
[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、安装并创建数据目录

1
2
3
#yum install -y mongodb-org
#mkdir -p /Data/mongodb 
#chown   mongod.mongod /Data/mongodb -R


2、配置mongod.conf
#vim /etc/mongod.conf 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# 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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
#!/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  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  - "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  - "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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/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

添加到开机自启服务

1
2
#chmod +x /etc/init.d/disable-transparent-hugepages
#chkconfig --add disable-transparent-hugepages


3、修改系统参数

1
2
3
4
5
#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安装完成~如有错误之处欢迎指正!










本文转自 dyc2005 51CTO博客,原文链接:http://blog.51cto.com/dyc2005/1942438,如需转载请自行联系原作者
相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
目录
相关文章
|
5天前
|
Linux
centos 6.5安装yum
centos 6.5安装yum
26 0
|
5天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置PXE服务
PXE是Intel开发的预启动执行环境,允许工作站通过网络从远程服务器启动操作系统。它依赖DHCP分配IP,DNS服务分配主机名,TFTP提供引导程序,HTTP/FTP/NFS提供安装源。要部署PXE服务器,需关闭selinux和防火墙,安装dhcpd、httpd、tftp、xinetd及相关服务,配置引导文件和Centos7安装源。最后,通过syslinux安装引导文件,并创建pxelinux.cfg/default配置文件来定义启动参数。
18 0
|
5天前
|
运维 网络协议 Linux
【运维系列】Centos7安装并配置postfix服务
安装CentOS7的Postfix和Dovecot,配置Postfix的`main.cf`文件,包括修改完全域名、允许所有IP、启用邮箱等。然后,配置Dovecot的多个配置文件以启用auth服务和调整相关设置。重启Postfix和Dovecot,设置开机自启,并关闭防火墙进行测试。最后,创建邮箱账户并在Windows邮箱客户端中添加账户设置。
12 0
|
5天前
|
Linux 网络安全
Centos6.5安装并配置NFS服务
该内容描述了在Linux系统中设置NFS服务的步骤。首先挂载yum源,然后安装NFS服务,并编辑配置文件。接着,重启rpcbind和NFS服务,可能需要重复此过程以解决初始可能出现的问题。此外,关闭防火墙策略,并再次重启服务。最终,根目录被共享,特定IP网段被允许访问。
13 0
|
5天前
|
存储 分布式计算 NoSQL
MongoDB的简介和安装(在服务器上)
MongoDB的简介和安装(在服务器上)
20 0
|
6天前
|
存储 Linux 网络安全
centos7使用yum网络安装
这些是使用Yum进行网络安装的基本步骤。根据你的需求,你可以重复步骤3和4来安装其他软件包。请注意,执行Yum操作需要root或具有sudo权限的用户。
21 1
|
12天前
|
关系型数据库 MySQL Linux
centos7安装mysql-带网盘安装包
centos7安装mysql-带网盘安装包
62 2
|
19天前
|
存储 Linux Shell
centos 部署docker容器 安装 、基本使用方法(一)
centos 部署docker容器 安装 、基本使用方法(一)
33 0
|
19天前
|
分布式计算 Hadoop Java
centos 部署Hadoop-3.0-高性能集群(一)安装
centos 部署Hadoop-3.0-高性能集群(一)安装
17 0
|
19天前
|
关系型数据库 MySQL Linux
CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
CentOS 7 下使用yum安装MySQL5.7.20 最简单 图文详解
81 0

热门文章

最新文章