MongoDB基础及安装
一. 安装
1. 下载最新版本
mongodb版本更新很快。
# wget http://fastdl.mongodb.org/mongodb-linux-x86_64-2.4.5.tgz
2. 创建数据库目录
mongodb默认不会自动创建数据库目录。
# mkdir /data/mongodb_27017
3. 创建配置文件
# vim /opt/mongodb3.4.3/etc/mongodb.conf
dbpath = /data/mongodb
directoryperdb = true
port = 27017
bind_ip = 192.168.1.251
rest = true
fork = true
logappend = true
logpath = /opt/mongodb3.4.3/logs/mongodb.log
replSet = ttlsa
journal = true
oplogSize = 2000
nohttpinterface = true
cpu = true
4. 启动服务
# /opt/mongodb3.4.3/bin/mongod -f /opt/mongodb3.4.3/etc/mongodb.conf
echo “PATH=$PATH:/opt/mongodb3.4.3/bin” >> /etc/profile
source /etc/profile
5. mongodb参数说明
–dbpath 指定数据库的目录。每个mongod进程都需要有独立的数据目录。当mongod启动时,会在数据目录中创建mongod.lock文件,用于防止其他mongod进程使用该数据目录。
–port 指定监听的端口,默认是27017 ,Web管理端口在这个port的基础上+1000,默认情况下web管理端口是开启的。–nohttpinterface关闭管理接口
–bind_ip 绑定监听的IP
–directoryperdb 为每个db创建一个独立子目录
–logpath 指定日志输出目录。需要对文件夹要有可写的权限,日志文件不存在时自动创建,存在时将会覆盖掉以前的记录。如果要保留原有日志,需要启用–logappend选项。
–logappend 指定日志生成方式(追加/覆盖)
–pidfilepath 指定进程文件路径,如果不指定,将不产生进程文件
–keyFile 集群模式的关键标识
–cpu 显示CPU和IO的利用率
–journal 开启日志功能,通过保存操作日志来降低单机故障的恢复时间,在1.8 版本后正式加入取代在1.7.5版本中的dur参数。
–ipv6 启用IPV6支持
–nssize 指定.ns 文件的大小,单位MB,默认是16M,最大是 2GB
–maxConns 最大的并发连接数
–notablescan 不允许进行表扫描
–quota 限制每个数据库的文件个数,默认是 8个
–quotaFiles 每个数据库的文件个数,配合—quota参数
–noprealloc 关闭数据文件的预分配功能
–fork 以守护进程方式运行
–syncdelay 系统同步刷新磁盘的时间,单位为秒,默认是60秒。
–directoryperdb 每个db存放在单独的目录中,建议设置该参数。与MySQL的独立表空间类似
–repairpath 执行repair时的临时目录。在如果没有开启journal,异常down机后重启,必须执行repair操作。
–rest用来RS中用于webadmin界面中显示RS的状态信息
–oplogSize 用来记录oplog的大小,单位MB,默认硬盘的5%
mongod的参数中,没有设置内存大小相关的参数,是的,MongoDB 使用 os mmap 机制来缓存数据文件数据,自身目前不提供缓存机制。
6. 查看启动参数
# /opt/mongodb3.4.3/bin/mongod 192.168.1.251:27017
ttlsa:SECONDARY> use admin
switched to db admin
ttlsa:SECONDARY> db.runCommand({getCmdLineOpts: 1})
{
“argv” : [
“/usr/local/mongodb/bin/mongod”,
“–config”,
“/data/mongodb_27017/conf/mongodb.conf”
],
“parsed” : {
“bind_ip” : “10.1.10.155”,
“config” : “/data/mongodb_27017/conf/mongodb.conf”,
“cpu” : “true”,
“dbpath” : “/data/mongodb_27017/data”,
“directoryperdb” : “true”,
“fork” : “ture”,
“journal” : “true”,
“logappend” : “true”,
“logpath” : “/data/weblogs/mongodb_log/mongodb_27017.log”,
“nohttpinterface” : “true”,
“oplogSize” : 2000,
“port” : 27017,
“replSet” : “ttlsa”,
“rest” : “true”
},
“ok” : 1
}
7. 关闭服务
> use admin;
switched to db admin
> db.shutdownServer();
//或者执行
>db.runCommand( “shutdown”);
>db.adminCommand(“shutdown”);
8. 动态更改配置参数
> db.adminCommand({setParameter:1, option1: true , …})
> db.adminCommand({setParameter:1, logLevel:4})
9. 获取mongodb状态信息
> db.serverStatus()
10. 查看数据库状态信息
> db.stats()
11. 获取当前的进程
> db.currentOp()
- 二. 工具介绍
bsondump: 将bson格式的文件转储为json格式的数据
mongo: 客户端命令行工具,其实也是一个javascript解释器,支持javascript语法
mongod: 数据库服务端,每个实例启动一个进程,可以fork为后台运行
mongodump/ mongorestore: 数据库备份和恢复工具
mongoexport/ mongoimport: 数据导出和导入工具
mongofiles: GridFS管理工具,可实现二制文件的存取
mongos: 分片路由,如果使用了 sharding 功能,则应用程序连接的是 mongos 而不是mongod
mongosniff: 这一工具的作用类似于tcpdump,不同的是他只监控MongoDB 相关的包请求,并且是以指定的可读性的形式输出
mongostat: 实时性能监控工具