安装MongoDB
1、mongo文件说明
名称 | 说明 |
---|---|
mongod | 是数据库服务端,不能暴露再公共网络,主要实现服务器端数据库的数据处理、数据访问管理及其他后台管理。 |
mongo | 客户端 shell 程序。 |
mongos | 路由管理程序,用于分片集群环境下系统访问的路由管理。 |
mongostat | 运行状态监控工具。 |
mongotop | 监控工具,对读写数据进行统计。 |
mongodump | 导出备份工具(二进制)。 |
mongorestore | 备份数据恢复工具,跟mongodump一起使用(二进制)。 |
mongoexport | 以JSON或CSV格式导出数据库数据。 |
mongoimport | 备份数据恢复工具,跟mongoexport一起使用。 |
bsondump | 将BSON文件转换为可阅读的格式。 |
mongofiles | 把任何数据类型文件上传到MongoDB中。 |
mongooplog | 以Oplog轮询方式,实现对远程服务器上的数据同步到本地磁盘。 |
mongoperf | 测试磁盘IO性能的工具。 |
2、安装mongo
# 添加yum源
[root@gz-tencent ~]# cat > /etc/yum.repos.d/mongodb-org-4.0.repo << EOF
[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
EOF
# 安装mongo
[root@gz-tencent ~]# sudo yum install -y mongodb-org
[root@gz-tencent ~]# sudo service mongod start
[root@gz-tencent ~]# sudo chkconfig mongod on
# 连接shell
[root@gz-tencent ~]# mongo
3、docker运行mongo,so easy !
# 新建绑定目录
[root@gz-tencent]# mkdir -p ~/mongo/{mongod-1,mongos-1}/{etc,data}
# 运行mongod
docker run --name mongod-1 -p 27017:27017 -v /mongo/mongod-1/etc:/etc/mongo -v ~/mongo/mongod-1/data:/data/db -d mongo
MongoDB常用配置
如何使用配置文件运行mongodb?直接修改配置文件/etc/mongod.conf
、/etc/mongos.conf
就可以了。
1、网络配置说明:
net:
port: localhost
# 绑定可访问的IP地址,IP地址用","隔开,默认localhost
bindIp: <string>
# 是否绑定所有IP,默认 false
bindIpAll: false
# 最大并发连接数,默认65536
maxIncomingConnections: 65536
# 客户端请求内容验证,默认true
wireObjectCheck: true
compression:
# 数据压缩,默认:snappy,还支持zlib。zlib压缩率高,但是慢。
# snappy 比 zlib 更快,但文件相对要大 20% 到 100%。
compressors: snappy
serviceExecutor: <string>
2、存储配置说明
storage:
# 实例存储数据的目录,不要随意修改,需要和安装时一直。
dbPath: /data/db
# 索引重建,Mongod重启会删除不完整索引,然后尝试重建不完整索引
indexBuildRetry: true
# 数据库修复临时存储路径
repairPath: <string>
# 数据操作记录日志,只适用于Mongod
journal:
enabled: true
# Mongod从内存想数据操作记录日志提交数据的最大间隔时间(ms)
commitIntervalMs: <num>
# 给每个数据库建立独立的子文件路径
directoryPerDB: false
# 数据刷新到数据库文件的间隔时间(秒)
syncPeriodSecs: 60
# 数据库存储引擎(wiredTiger/MMAPv1/inMemory)
engine: wiredTiger
# 相对于MMAPv1,wiredTiger可以压缩最大80%的空间
wiredTiger:
engineConfig:
# 数据在内存中的缓存空间,默认:50%RAM-1G或256M
cacheSizeGB: <number>
# 压缩方式(none/snappy/zlib),压缩wiredTiger日志
journalCompressor: snappy
# Mongod是否将索引和集合文件分开存放
directoryForIndexes: false
collectionConfig:
# 集合数据的压缩方式(none/snappy/zlib)
blockCompressor: snappy
indexConfig:
# 启用索引数据的前缀压缩功能
prefixCompression: true
3、审计日志说明
auditLog:
# syslog:以json格式保存身份验证到syslog
# console:以json格式输出信息到标准输出
# file:以json格式输出信息到文件
destination: <string>
# JSON:输出json格式文件;BSON:输出bson二进制格式文件
format: <string>
path: <string>
filter: <string>
审计filter的相关配置:
{
atype: <String>,
ts : { "$date": <timestamp> },
local: { ip: <String>, port: <int> },
remote: { ip: <String>, port: <int> },
users : [ { user: <String>, db: <String> }, ... ],
roles: [ { role: <String>, db: <String> }, ... ],
param: <document>,
result: <int>
}
字段 | 类型 | 记录描述 |
---|---|---|
atype |
string | 记录审计事件的行动,详细信息和结果。 |
ts |
document | 文档包含”$date”日期键值对,其中是以时间戳格式的值 |
local |
document | 文档包含ip键值对,及port键值对 |
remote |
document | 文档包含与事件相关联的远程连接ip键值对和port键值对 |
users |
array | 用户识别文档数组。由于MongoDB允许登录不同的用户数据库,该数组可以有一个以上的用户。每个文档包含用户名的user字段和该用户身份验证数据库的db字段。 |
roles |
array | 指定给用户的角色的文档数组,每个文档包含角色名称的role字段和该角色关联的数据库的db字段。 |
param |
document | 定义审计事件的具体细节, 审计事件操作、细节和结果 |
result |
integer | 错误代码 |
查看示例:审计创建集合和删除掉集合
auditLog:
destination: file
format: BSON
path: /var/lib/mongo/auditLog.bson
filter: ‘{ atype : {$in: [“createCollection”,”dropCollection” ] } }’
网友评论