安装

安装说明:
​​​https://docs.mongodb.org/manual/tutorial/install-mongodb-on-red-hat/​

1. 创建源

sudo vi /etc/yum.repos.d/mongodb-org-3.0.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

如果网络有问题,可以使用taobao源:​​http://mirrors.aliyun.com/​

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak

CentOS 5
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo

CentOS 6
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

yum makecache

如果还不行,就要下载下来,用
rpm -ivh 命令 逐个安装rpm包。
下载地址:​​​https://repo.mongodb.org/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/​​​
mongodb-org-mongos-3.0.7-1.el7.x86_64.rpm
mongodb-org-server-3.0.7-1.el7.x86_64.rpm
mongodb-org-shell-3.0.7-1.el7.x86_64.rpm
mongodb-org-tools-3.0.7-1.el7.x86_64.rpm
mongodb-org-3.0.7-1.el7.x86_64.rpm

2. 运行yum install 安装stable版本。

sudo yum install -y mongodb-org

3. 设置selinux

vi /etc/selinux/config
把SELINUX值设为disabled或permissive

然后重启。

命令及配置

命令

启动

sudo service mongod start
日志记录在:/var/log/mongodb/mongod.log

停止

sudo service mongod stop

重启

sudo service mongod restart

配置

一些文件位置

数据默认存储位置

/var/lib/mongo

配置文件:

/etc/mongod.conf

日志

/var/log/mongodb

配置开机自动运行

sudo chkconfig mongod on

配置远程连接

bindIp=0.0.0.0   可以注释掉,绑定所有网卡
port=27017
auth=true

重启

sudo service mongod restart

/etc/init.d/mongod restart

验证

mongo ip/dbname -u username -p password

卸载

sudo service mongod stop
sudo yum erase $(rpm -qa | grep mongodb-org)
sudo rm -r /var/log/mongodb
sudo rm -r /var/lib/mongo

性能监测

mongostat

mongostat 基本的性能监测命令

慢查询 profile

开启方法

  1. 启动时 > mongodb -profile=级别
  2. 命令
use test
> switched to db test
db.setProfilingLevel(2);
> {"was" : 0 , "slowms" : 100, "ok" : 1} // "was" 是改之前的值
db.getProfilingLevel()

级别说明:
0. 不开启
1. 记录慢命令
2. 记录所有命令

慢的定义:默认100ms。

设置方法:
1. 启动时 > mongodb -slowms
2. 命令:
db.setProfilingLevel(level,slowms);

查询Profiling记录

Profile记录在系统db里,位置是system.profile。只需要查询这个collection。

db.system.profile.find();
db.system.profile.find({millis:{$gt:5}}); 时间大于5ms的
db.sysem.profile.find().sort({$natural:-1}); 查询最新的
show profile 最近5条执行时间超过1ms的

其它注意事项


  • 在索引使用null值的时候,性能会非常差
  • 参考:

​http://docs.mongodb.org/manual/core/crud-introduction/​​​