MongoDB配置及一般操作 - MongoDB从入门到删库

本文详细介绍MongoDB的安装步骤,包括通过yum源和Docker容器两种方式,并深入解析MongoDB服务端、客户端及管理工具的功能。同时,文章提供了详细的配置参数说明,覆盖网络、存储及审计日志等关键领域,帮助读者全面掌握MongoDB的部署与调优。

安装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>
}
字段类型记录描述
atypestring记录审计事件的行动,详细信息和结果。
tsdocument文档包含”$date”日期键值对,其中是以时间戳格式的值
localdocument文档包含ip键值对,及port键值对
remotedocument文档包含与事件相关联的远程连接ip键值对和port键值对
usersarray用户识别文档数组。由于MongoDB允许登录不同的用户数据库,该数组可以有一个以上的用户。每个文档包含用户名的user字段和该用户身份验证数据库的db字段。
rolesarray指定给用户的角色的文档数组,每个文档包含角色名称的role字段和该角色关联的数据库的db字段。
paramdocument定义审计事件的具体细节, 审计事件操作、细节和结果
resultinteger错误代码

查看示例:审计创建集合和删除掉集合

auditLog:
   destination: file
   format: BSON
   path: /var/lib/mongo/auditLog.bson
   filter: ‘{ atype : {$in: [“createCollection”,”dropCollection” ] } }’

转载于:https://my.oschina.net/u/1404949/blog/3039527

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值