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

简介:

一、系统环境
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,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
NoSQL Ubuntu MongoDB
在Ubuntu 22.04上安装MongoDB 6.0的步骤
这些步骤应该可以在Ubuntu 22.04系统上安装MongoDB 6.0。安装过程中,如果遇到任何问题,可以查阅MongoDB的官方文档或者Ubuntu的相关帮助文档,这些资源通常提供了解决特定问题的详细指导。
332 18
|
4月前
|
存储 关系型数据库 MySQL
在CentOS 8.x上安装Percona Xtrabackup工具备份MySQL数据步骤。
以上就是在CentOS8.x上通过Perconaxtabbackup工具对Mysql进行高效率、高可靠性、无锁定影响地实现在线快速全量及增加式数据库资料保存与恢复流程。通过以上流程可以有效地将Mysql相关资料按需求完成定期或不定期地保存与灾难恢复需求。
404 10
|
6月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
757 4
|
7月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
232 4
|
7月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
458 3
|
8月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
712 25
|
9月前
|
存储 安全 Linux
CentOS 7.9系统备份:每日定期发送最新备份文件到另一台服务器。
注意,这个解决方案忽略了很多细节,例如错误处理和通知、备份版本控制、循环处理旧的备份文件等等。此外,你也应该尽量保持源服务器和目标服务器之间快速,稳定且安全的网络连接,并且目标服务器应该有足够的空间用于存放每天的备份文件。如果你需要更高级的备份解决方案,可能需要考虑一下使用专门的备份工具或者服务。
435 18
|
9月前
|
NoSQL MongoDB 微服务
微服务2——MongoDB单机部署1——下载安装
本指南介绍在Windows系统上安装和启动MongoDB的步骤。首先,从官网下载适用于32位或64位系统的预编译二进制包,选择稳定版(y为偶数)。解压后创建数据目录`data/db`,可通过命令行参数(如`mongod --dbpath=..\data\db`)或配置文件启动服务。配置文件需注意转义字符与空格使用,支持自定义日志路径、端口等参数。将bin目录加入环境变量可简化启动操作。
255 0
微服务2——MongoDB单机部署1——下载安装
|
9月前
|
存储 NoSQL Linux
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
654 0
|
NoSQL Ubuntu Linux
Linux平台安装MongoDB
10月更文挑战第11天
499 5