前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MongoDB ubuntu 上安装 MongoDB7.0 附带配置文件说明

MongoDB ubuntu 上安装 MongoDB7.0 附带配置文件说明

作者头像
AustinDatabases
发布2023-09-18 15:25:44
1.1K0
发布2023-09-18 15:25:44
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis ,Oracle ,Oceanbase 等有问题,有需求都可以加群群内有各大数据库行业大咖,CTO,可以解决你的问题。加群请加微信号 liuaustin3 (共1250人左右 1 + 2 + 3 +4)新人会进入3群 (3群准备关闭自由申请)+ 4群

每日感悟

代码语言:javascript
复制
存在就是合理的,这句话是剥夺你理解内部原理的障眼法,很多人把 了解 和 理解 混淆了,如同知道了无数生活“真理”,而依然过不好这一生。

最近除了中国好声音停播这个好消息外,我最近关注MongoDB 7.0,所以安装看看有什么可以玩的新东西,基于CENTOS 的不能再用,全面转向了ubuntu 22.04,所以这次有两个部分的工作,

1 逐步熟悉ubuntu 22.04

2 看看MongoDB 7.0 的配置文件的变化

3 搭建复制集有什么区别

最后把相关开源的mongodb的配置文件贴上附带解释。最近的一些新的知识,没有跟上,所以对于新版本的MongoDB 的重新上路,后面会把继续学习的部分写成一个系列。

首先的不同点,如果是从MongoDB 4.X ,直接来接触MongoDB 7.0的话,第一个感受是,安装的文件变化了,之前在安装中,安装包包含了MongoDB的执行文件,客户端的文件,还有基础的工具文件,所以下载一个二进制包就可以了,但是在7.0 不可以,你至少需要下载三个部分

1 MongoDB 二进制文件包

2 MongoDB shell 客户端

3 MongoDB Tools 工具包

所以如果要完成原有4.X 的工作,现在需要下载的软件包为3个。

配置文件方面的变化

1 在systemLog 部分并未有较大的变化,需要注意从 MongoDB 4.4后,timeStampFormat 部分不再支持 ctime , 配置时需要注意默认的值改为ISO8601-LOCAL

2 在storage 配置部分,关于journal 日志的部分的配置变更移除了storage.journal.enabled 的部分,也移除了 storage.indexBuildRetry的部分,关于 maxCacheOverflowFileSizeGB,这个选项也从4.4后失效了。同时关于 storage.syncPeriodSecs 部分不要进行人工设置。

同时从MonogDB 4.4 添加了storage.oplogMinRetntionHours,通过此选项来设置oplog 保留的时间,这里默认值为0 。

在storage.wiredTiger.engineConfig.JournalCompressor 从4.2 添加了zstd的压缩模式支持,storage.wiredTiger.engineConfig.zstdCompressionlevel 可以设置压缩的比率从1 到22 默认压缩的等级为 6 , 这个配置选项从MongoDB 5.0开始。

3 replication 项目中添加了 replication.enableMajorityReadConcern 选项从5.0开始不能在进行变动,默认值为 true,这里需要注意,在这选项中,如果你的3节点PSA 模式中有arbiter 节点的出现,那么可能有导致性能的问题,所以建议在5.0 版本后,不建议使用arbiter 代替3节点 replica.

4 Security.javascriptEnabled 通过从4.4 版本开始JAVASCRIPT 可以在系统中运行或不运行可以进行设置。security.clusterIpSourceAllowlist 是从Mongo 5.0 提供的参数,通过参数可以设置可以安全的确认复制集,或分片中主机的地址是否是安全,防止欺骗性的加入集群的可能性。

代码语言:javascript
复制
#This is mongodb config file for replica set
#systemlog file

systemLog:
  traceAllExceptions: false
  quiet: false
  logRotate: rename
  destination: file
  logAppend: true
  path: /data/mongo1/mongod.log
  timeStampFormat: iso8601-local
  component:
     index:
       verbosity: 1

#storage
storage:
  dbPath: /data/mongo1/
  directoryPerDB: true
  wiredTiger:
     engineConfig:
        cacheSizeGB: 2
        journalCompressor: zstd
        directoryForIndexes: true
        zstdCompressionLevel: 10


processManagement:
  fork: true
  timeZoneInfo: /usr/share/zoneinfo
  pidFilePath: /data/mongo1/mongod.pid

# network interfaces
net:
  port: 27017
  bindIp: 192.168.198.100, 127.0.0.1
  bindIpAll: false
  maxIncomingConnections: 200
  wireObjectCheck: true
  unixDomainSocket:
     enabled: true
     pathPrefix: /tmp
     filePermissions: 0700

#security options
security:
   keyFile: /data/keyfile
   authorization: enabled
   javascriptEnabled: true
   clusterIpSourceAllowlist:
      - 192.168.198.0/24
      - 127.0.0.1
#  enableEncrypthion only enterprise version have it 

replication:
   oplogSizeMB: 10240
   replSetName: mongo7
   enableMajorityReadConcern: true




除此以外在mongo4.4后关于慢查询的部分添加了operationProfiling.filter 可以通过这个部分来过滤慢查询语句,例如filter:''{op:"query",millis: {$gt:500}} ,通过过滤可以自定义一些想找到的语句来进行问题的解决。

大家的过程比较简单

1 3个节点分别提供好相关的配置文件

2 启动第一个节点,并键入用户名密码,需要管理员的权限

3 启动其他的节点,并通过命令来逐一添加其他节点。

代码语言:javascript
复制
openssl rand -base64 768 > keyfile
chmod 400 keyfile
sudo dpkg -i mongodb-mongosh_1.10.5_amd64.deb 
sudo dpkg -i mongodb-database-tools-ubuntu2204-x86_64-100.8.0.deb 

在第一次搭建的情况下,请先去掉复制方面的配置,否则无法添加用户,在添加用户后,直接执行下方的命令,将3个节点标定为复制集,然后直接初始化,即可。

然后启动 1 2 3 mongodb,登陆到我们刚才加入账号的节点

mongosh mongodb://192.168.198.100:27017/admin -u root -p 1234.Com

代码语言:javascript
复制
 config_rs= { _id:"mongo7", members:[
{_id:0,host:"192.168.198.100:27017",priority:100},
{_id:1,host:"192.168.198.100:27027",priority:80},
{_id:2,host:"192.168.198.100:27037",priority:60}]}

rs.initiate(config_rs)

随着7.0 复制集搭建完成,后续的关于7.0的研究会慢慢展开

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-09-08 06:00,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档