首页 > 数据库 >MongoDB 5 安装&副本集搭建&集群搭建

MongoDB 5 安装&副本集搭建&集群搭建

时间:2024-10-21 18:59:15浏览次数:1  
标签:副本 dba MongoDB shard yanhao mongodb data true 搭建

单节点安装

需要一个数据目录地址,一个日志文件地址,配置文件

## 数据目录地址
--dapath=
## 日志文件
--logpath=
## 配置文件
--config=***.conf

下载

https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-5.0.27.tgz

启动命令

/data/dba/yanhao/application/mongodb/bin/mongod --config=/data/dba/yanhao/application/mongodbData/single/mongodb1.conf

客户端登录命令

## --host指定ip,--port指定端口
/data/dba/yanhao/application/mongodb/bin/mongo --host 127.0.0.1 --port 27030

## 创建用户,关闭mongodb
## 配置文件打开认证
## 重启mongodb

主从搭建

  1. 创建另一个节点,需要data目录,log文件,配置文件

  2. 启动

rs.add("ip:port");
## 进入从节点执行,表明允许从从节点上读取数据
rs.secondaryOk();

开启认证

注意:密钥的读写权限不能太大,400即可,否则启动失败

## 生成密钥文件
openssl rand -base64 666 > mongodb.key

集群搭建

configServer IP: 
127.0.0.1:27017

routerServer IP
127.0.0.1:27018

configServer IP:
     shard1:
         127.0.0.1:27020
         127.0.0.1:27021
         127.0.0.1:27022
     shard2:
         127.0.0.1:27023
         127.0.0.1:27024
         127.0.0.1:27025
 
           

建立联系

mongos中用sh.addShard添加分片信息
mongos的配置文件中指定了config文件的数据库地址

启动顺序

config服务器必须在mongos服务器启动之前启动


config服务器启动
config服务器初始化
shard服务器
mongos服务器

configServer配置文件

systemLog:
   destination: file
   logAppend: true
   path: /data/dba/yanhao/configServer/config1/mongodb/mongodb.log

storage:
   dbPath: /data/dba/yanhao/configServer/config1/mongo
   journal:
     enabled: true

processManagement:
   fork: true  # fork and run in background
   pidFilePath: /data/dba/yanhao/configServer/config1/mongodb/mongodb.pid  # location of pidfile
   

# network interfaces
net:
   port: 27017
   bindIp: 127.0.0.1  

# shard
sharding:
  clusterRole: configsvr
  
# repliuca set
replication:
  replSetName: config

mongos配置文件

systemLog:
   destination: file
   logAppend: true
   path: /data/dba/yanhao/routerServer/mongodb/mongodb.log
   
processManagement:
   fork: true  # fork and run in background
   pidFilePath: /data/dba/yanhao/routerServer/mongodb/mongodb.pid  # location of pidfile
#   timeZoneInfo: /usr/share/zoneinfo

# network interfaces
net:
   port: 27018
   bindIp: 127.0.0.1 

sharding:
  configDB: config/127.0.0.1:27017

shardServer配置文件

  • shard1

    • shard_node1

      systemLog:
         destination: file
         logAppend: true
         path: /data/dba/yanhao/shardServer/shard1/shard_node1/mongodb/mongodb.log
      
      storage:
         dbPath: /data/dba/yanhao/shardServer/shard1/shard_node1/mongo
         journal:
           enabled: true
      
      processManagement:
         fork: true  # fork and run in background
         pidFilePath: /data/dba/yanhao/shardServer/shard1/shard_node1/mongodb/mongod.pid  # location of pidfile
      #   timeZoneInfo: /usr/share/zoneinfo
      
      # network interfaces
      net:
         port: 27020
         bindIp: 127.0.0.1  
      
      # shard
      sharding:
        clusterRole: shardsvr
        
      # repliuca set
      replication:
        replSetName: shard01
      
    • shard_node2

      systemLog:
         destination: file
         logAppend: true
         path: /data/dba/yanhao/shardServer/shard1/shard_node2/mongodb/mongodb.log
      
      storage:
         dbPath: /data/dba/yanhao/shardServer/shard1/shard_node2/mongo
         journal:
           enabled: true
      
      processManagement:
         fork: true  # fork and run in background
         pidFilePath: /data/dba/yanhao/shardServer/shard1/shard_node2/mongodb/mongodb.pid  # location of pidfile
      #   timeZoneInfo: /usr/share/zoneinfo
      
      # network interfaces
      net:
         port: 27021
         bindIp: 127.0.0.1  
      # shard
      sharding:
        clusterRole: shardsvr
        
      # repliuca set
      replication:
        replSetName: shard01
      
    • shard_node3

      systemLog:
         destination: file
         logAppend: true
         path: /data/dba/yanhao/shardServer/shard1/shard_node3/mongodb/mongodb.log
      
      storage:
         dbPath: /data/dba/yanhao/shardServer/shard1/shard_node3/mongo
         journal:
           enabled: true
      
      processManagement:
         fork: true  # fork and run in background
         pidFilePath: /data/dba/yanhao/shardServer/shard1/shard_node3/mongodb/mongodb.pid  # location of pidfile
      #   timeZoneInfo: /usr/share/zoneinfo
      
      # network interfaces
      net:
         port: 27022
         bindIp: 127.0.0.1  
      
      # shard
      sharding:
        clusterRole: shardsvr
        
      # repliuca set
      replication:
        replSetName: shard01
      
  • shard2

    • shard_node1

      systemLog:
         destination: file
         logAppend: true
         path: /data/dba/yanhao/shardServer/shard2/shard_node1/mongodb/mongodb.log
      
      storage:
         dbPath: /data/dba/yanhao/shardServer/shard2/shard_node1/mongo
         journal:
           enabled: true
      
      processManagement:
         fork: true  # fork and run in background
         pidFilePath: /data/dba/yanhao/shardServer/shard2/shard_node1/mongodb/mongodb.pid  # location of pidfile
      #   timeZoneInfo: /usr/share/zoneinfo
      
      # network interfaces
      net:
         port: 27023
         bindIp: 127.0.0.1  
      # shard
      sharding:
        clusterRole: shardsvr
        
      # repliuca set
      replication:
        replSetName: shard02
      
    • shard_node2

      systemLog:
         destination: file
         logAppend: true
         path: /data/dba/yanhao/shardServer/shard2/shard_node2/mongodb/mongodb.log
      
      storage:
         dbPath: /data/dba/yanhao/shardServer/shard2/shard_node2/mongo
         journal:
           enabled: true
      
      processManagement:
         fork: true  # fork and run in background
         pidFilePath: /data/dba/yanhao/shardServer/shard2/shard_node2/mongodb/mongodb.pid  # location of pidfile
      #   timeZoneInfo: /usr/share/zoneinfo
      
      # network interfaces
      net:
         port: 27024
         bindIp: 127.0.0.1  
      # shard
      sharding:
        clusterRole: shardsvr
        
      # repliuca set
      replication:
        replSetName: shard02
      
    • shard_node3

      systemLog:
         destination: file
         logAppend: true
         path: /data/dba/yanhao/shardServer/shard2/shard_node3/mongodb/mongodb.log
      
      storage:
         dbPath: /data/dba/yanhao/shardServer/shard2/shard_node3/mongo
         journal:
           enabled: true
      
      processManagement:
         fork: true  # fork and run in background
         pidFilePath: /data/dba/yanhao/shardServer/shard2/shard_node3/mongodb/mongodb.pid  # location of pidfile
      #   timeZoneInfo: /usr/share/zoneinfo
      
      # network interfaces
      net:
         port: 27025
         bindIp: 127.0.0.1  
      # shard
      sharding:
        clusterRole: shardsvr
        
      # repliuca set
      replication:
        replSetName: shard02
      

分片操作

  • 对数据库启用分片

    sh.enableSharding("dbName")
    
  • 对集合启用分片

    sh.shardCollection("dbName.collectionName",{"shardKeyFiled":"hashed"})
    

启动

  • 登入分片客户端,将分片内节点添加到replSet内,rs.add("ip:port")

  • 登入mongos客户端,添加分片,sh.addShard("shardName/ip:port,ip:port,ip:port")

    • 注意,启动mongos客户端命令是mongos -f ...mongodb.conf,不是mongod -f ...

标签:副本,dba,MongoDB,shard,yanhao,mongodb,data,true,搭建
From: https://www.cnblogs.com/tyhA-nobody/p/18490042

相关文章

  • Mongodb(4)索引,查看执行计划,聚合操作aggregate,表关联查询,批量插入测试数据,执行计
    创建索引,支持:单键索引、复合索引,唯一索引创建索引后台执行db.books.createIndex({open:1,close:1},{background:true})对内嵌文档字段创建索引:db.books.createIndex({"author.name":1})创建唯一索引db.books.createIndex({title:1},{unique:true})在包含嵌套对象的......
  • cubemx modbus从机搭建
    目录1.硬件准备2.CubeMX配置步骤3.集成Modbus协议栈步骤:4.编写应用代码5.测试通信代码示例6.进一步优化使用CubeMX实现Modbus丛集(Slave)的开发主要涉及到以下几个步骤:1.硬件准备你需要一块支持Modbus通信的STM32开发板,建议使用带有USART外设的......
  • MongoDB 集群部署
    MongoDB集群部署环境系统:CentOS7主机端口角色192.168.93.10027017master192.168.93.10127017slave192.168.93.10227017arditer镜像拉取dockerpullmongo:4.4挂载目录#配置文件地址mkdir-p/data/mongodb/configdb#db存放地址mkdir-p......
  • 运维-Vbox-虚拟机搭建私有局域网
    ubuntuhttps://blog.csdn.net/xtydtc/article/details/108804738centoshttps://blog.csdn.net/shijiujiu33/article/details/90677019centos设置端口转发https://jingyan.baidu.com/article/4e5b3e19840c4cd1911e242d.html总结:1、不用占用真实的IP地址,可以防止搬家后,IP地......
  • Vue3 + TypeScript:从环境搭建到组件通信的完整前端开发教程
    在前端开发领域,Vue3与TypeScript的组合备受青睐。Vue3带来高效灵活的开发体验,TypeScript则提供强大的类型安全和可维护性。本文将详细介绍如何使用Vue3和TypeScript进行开发,文章内容将按照以下顺序展开:一、环境准备1.安装Node.js:从Node.js官方网站下载并安装适合......
  • mongodb 查询条件,查询逻辑对照表,逻辑运算符,正则表达式匹配查询,排序,分页/巧分页,更新操
    mongodb查询条件,查询逻辑对照表,逻辑运算符,正则表达式匹配查询,排序,分页/巧分页,更新操作符,更新单个/多个文档,删除文档,批量插入,$type操作符,内嵌文档和数组查找修改1.条件查询SQLMQLa=1{a:1}a<>1{a:{$ne:1}}a>1{a:{$gt:1}}a>=1{a:{$gte:1}}a<1{a:{$lt......
  • 鸿蒙Flutter实战:01-搭建开发环境
    鸿蒙Flutter实战:01-搭建开发环境准备工作1.安装DevEcoStudioNEXTIDE,注意版本应该是Next,当前最新的是Beta32.安装Git,如果要同时适配安卓,需要安装AndroidStudio;如果要适配ios,需要安装XcodeMac安装(推荐)环境变量配置#FlutterMirrorexportPUB_HOSTED_URL=h......
  • Java基础·环境搭建与语法
    Java初识Java简介Java是一门面向对象的程序设计语言1995年由sun公司发布2010年sun公司被Oracle公司收购JDK版本是8.0JVMJVM(JavaVirtualMachine),Java虚拟机JVM是Java平台无关性实现的关键Java程序执行流程JDKJDK(JavaDevelopmentKit),Java语言的软件开发工具包两......
  • 移动安全框架(MobSF)搭建笔记
    目录1.下载docker(必需条件)2.在终端里pulldocker3.在终端里run摘要:移动安全框架(MobSF)是一种自动、一体化的移动应用(Android/iOS/Windows)静态和动态分析的测试,恶意软件分析和安全评估框架。想从数据库老师那里拿项目做,他让我先从把这个项目跑起来开始,之后再給我项......
  • 母婴行业的新玩法,在小红书搭建一个Ai萌娃账号,30天获利13万
    要说现在互联网上什么赛道赚钱,且还能长期性的赚钱。那一定是母婴行业了。不管是从常规的衣食住行,还是在精神层面,母婴赛道也一直都是复购性很强的一个。很多宝妈可能自己舍不得花钱,但在宝宝身上,绝对不会吝啬。不管是在传统电商,还是在短视频带货平台,每年母婴类别的产品销售......