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

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

每日感悟

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

最近除了中国好声音停播这个好消息外,我最近关注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 提供的参数,通过参数可以设置可以安全的确认复制集,或分片中主机的地址是否是安全,防止欺骗性的加入集群的可能性。

go 复制代码
#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 启动其他的节点,并通过命令来逐一添加其他节点。

go 复制代码
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

go 复制代码
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的研究会慢慢展开

相关推荐
程序猿(雷霆之王)10 分钟前
Linux——冯 • 诺依曼体系结构&操作系统初识
linux·运维·服务器
数据智能老司机2 小时前
CockroachDB权威指南——SQL调优
数据库·分布式·架构
数据智能老司机2 小时前
CockroachDB权威指南——应用设计与实现
数据库·分布式·架构
数据智能老司机2 小时前
CockroachDB权威指南——CockroachDB 模式设计
数据库·分布式·架构
数据智能老司机21 小时前
CockroachDB权威指南——CockroachDB SQL
数据库·分布式·架构
数据智能老司机21 小时前
CockroachDB权威指南——开始使用
数据库·分布式·架构
宁zz21 小时前
乌班图安装jenkins
运维·jenkins
松果猿1 天前
空间数据库学习(二)—— PostgreSQL数据库的备份转储和导入恢复
数据库
无名之逆1 天前
Rust 开发提效神器:lombok-macros 宏库
服务器·开发语言·前端·数据库·后端·python·rust
s9123601011 天前
rust 同时处理多个异步任务
java·数据库·rust