centos6.6下安装MongoDB3.x

2020-09-23 11:16:59 浏览数 (1)

centos6.6下安装MongoDB3.x

  • 从MongoDB3.0版起,其安装包比以前更细化: Linux 64-bit legacy 这个版本即mongodb-linux-x86_64-3.x.tgz 不推荐在正式环境使用,这个版本特点是没有连接ssl相关的库。推荐按相应操作系统版本选择对应的安装包如centos6 rhel6选择RHEL 6.

规划安装目录

  • 新建用户nosql:useradd nosql
  • mongodb解压安装目录:/home/nosql
  • 数据目录:mkdir -p /home/nosql/data/mongodb
  • 日志目录 mkdir -p /home/nosql/data/logs
  • 初始化日志 touch /home/nosql/data/logs/mongodb.log chmod -R 777 /home/nosql/data/logs/mongodb.log

安装openssl(root)

代码语言:javascript复制
# yum install -y openssl-devel openssl

下载安装

代码语言:javascript复制
# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.2.1.tgz
# tar xzvf mongodb-linux-x86_64-rhel62-3.2.1.tgz -C /home/nosql
# mv /home/nosql/mongodb-linux-x86_64-rhel62-3.2.1   /home/nosql/mongodb

调整系统参数

设置ulimit -n和ulimit -u的值大于20000。如果ulimit的值设置过低的话,当MongoDB处于 频繁访问的状态下,将会产生错误,最终导致无法连接到MongoDB实例。

代码语言:javascript复制
# ulimit -n 25000
# ulimit -u 25000

配置文件参数配置

代码语言:javascript复制
# cd /home/nosql/mongodb/bin/
# vi mongodb.conf
port=27017 #端口
dbpath=/home/nosql/data/mongodb #数据文件存放目录
logpath=/home/nosql/data/logs/mongodb.log #日志文件
logappend=true #使用追加的方式写日志
fork=true #以守护程序的方式启用,即在后台运行
bind_ip=127.0.0.1,192.168.137.1 #绑定本机ip
noauth=true #不启用验证
nohttpinterface=true
rest=false

设置防火墙

代码语言:javascript复制
vi /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 27017 -j ACCEPT
/etc/init.d/iptables restart

启动命令:

代码语言:javascript复制
# /home/nosql/mongodb/bin/mongod --config /home/nosql/mongodb/bin/mongodb.conf
或
# /home/nosql/mongodb/bin/mongod -f /home/nosql/mongodb/bin/mongodb.conf

正常停止方法:

代码语言:javascript复制
# ps aux | grep mongod
# kill  -2 PID
或
# /home/nosql/mongodb/bin/mongo
> use  admin  
> db.shutdownServer();

2015-03-19T00:43:27.760 0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2015-03-19T00:43:27.760 0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
  • 不重启服务器的情况下解决办法,在Linux下执行:
代码语言:javascript复制
echo never > /sys/kernel/mm/transparent_hugepage/enabled
echo never > /sys/kernel/mm/transparent_hugepage/defrag
  • 服务器重启后立即生效办法:
代码语言:javascript复制
# vi /etc/rc.local
if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
   echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi

开机自动启动mongodb

代码语言:javascript复制
# vi /etc/rc.d/rc.local
rm -rf /home/nosql/mongodb/mongod.lock
/home/nosql/mongodb/bin/mongod -f /home/nosql/mongodb/bin/mongodb.conf

mongodb的NUMA问题解决方案

mongodb的NUMA问题 NUMA是什么?为什么使用NUMA? mongodb日志显示如下: WARNING: You are running on a NUMA machine. We suggest launching mongod like this to avoid performance problems: numactl –interleave=all mongod [other options] * 解决方案:

  1. 在原启动命令前面加numactl –interleave=all 如# numactl --interleave=all ${MONGODB_HOME}/bin/mongod --config conf/mongodb.conf
  2. 修改内核参数 echo 0 > /proc/sys/vm/zone_reclaim_mode

http://www.mongodb.org/display/DOCS/NUMA

安装MongoChef

linux版本: wget https://cdn.3t.io/mongochef/linux/3.3.0.1717/mongochef-linux-x86-dist.tar.gz

喜欢 (0)or分享 (0)

0 人点赞