• Mongodb----部署副本集 实现读写分离


    使用软件:

    xshell7        vmware16 centos8         nosql booster

                  

    1 部署副本集

    推荐方案:

         为了降低资源分配,这里仅使用一台服务器,但是分配3个端口(27017、27018、27019)来分别实现 主节点、副本节点、和仲裁节点的功能。副本集各服务器的基本信息及角色分配如下

    虚拟机   ip地址成员角色主机名
    nosql_01192.168.22.100主节点Server01
    nosql_02192.168.22.100副本节点server01
    nosql_03192.168.22.100仲裁节点server01

    所有节点的存放数据和日志的目录请放在/usr/local/mongodb/replica_sets路径下:

    1.创建主节点

    操作代码:

    #1、主节点,建立存放数据和日志的目录(代码粘贴下方):

    1. mkdir -p /usr/local/mongodb/replica_sets/myrs_27017/logs \ & mkdir -p
    2. /usr/local/mongodb/replica_sets/myrs_27017/data/db


    #2、新建或修改配置文件(代码粘贴下方):

    vi /usr/local/mongodb/replica_sets/myrs_27017/mongod.conf


    #3、mongod.conf配置文件中的内容,副本集的名称使用姓名全拼+rs,例如replSetName:
    LiMingrs(代码粘贴下方):

    1. systemLog:
    2. #MongoDB发送所有日志输出的目标指定为文件
    3. ##The path of the log file to which mongod or mongos should send all
    4. diagnostic logging information
    5. destination: file
    6. #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
    7. path: "/usr/local/mongodb/replica_sets/myrs_27017/logs/mongologs.log"
    8. #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
    9. logAppend: true
    10. storage:
    11. #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
    12. ##The directory where the mongod instance stores its data.Default Value is
    13. "/data/db".
    14. dbPath: "/usr/local/mongodb/replica_sets/myrs_27017/data/db"
    15. journal:
    16. #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
    17. enabled: true
    18. processManagement:
    19. #启用在后台运行mongos或mongod进程的守护进程模式。
    20. fork: true
    21. #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
    22. pidFilePath: "/usr/local/mongodb/replica_sets/myrs_27017/logs/mongod.pid"
    23. net:
    24. #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
    25. #bindIpAll: true
    26. #服务实例绑定的IP
    27. bindIp: localhost,192.168.22.100
    28. #bindIp
    29. #绑定的端口,默认是27017
    30. port: 27017
    31. replication:
    32. #副本集的名称
    33. replSetName: wuweixianrs


    #4、启动节点服务:

    mongod -f /usr/local/mongodb/replica_sets/myrs_27017/mongod.conf

    2.创建副本节点:

    #1、副本节点,建立存放数据和日志的目录(代码粘贴下方):

    1. mkdir -p /usr/local/mongodb/replica_sets/myrs_27018/logs \ & mkdir -p /usr/local/mongodb/replica_sets/myrs_27018/data/db

    #2、新建或修改配置文件(代码粘贴下方):

     vi /usr/local/mongodb/replica_sets/myrs_27018/mongod.conf

    #3、mongod.conf配置文件中的内容,副本集的名称使用姓名全拼+rs,例如replSetName: LiMingrs(代码粘贴下方):

    1. systemLog:
    2. #MongoDB发送所有日志输出的目标指定为文件
    3. ##The path of the log file to which mongod or mongos should send all
    4. diagnostic logging information
    5. destination: file
    6. #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
    7. path: "/usr/local/mongodb/replica_sets/myrs_27018/logs/mongologs.log"
    8. #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
    9. logAppend: true
    10. storage:
    11. #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
    12. ##The directory where the mongod instance stores its data.Default Value is
    13. "/data/db".
    14. dbPath: "/usr/local/mongodb/replica_sets/myrs_27018/data/db"
    15. journal:
    16. #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
    17. enabled: true
    18. processManagement:
    19. #启用在后台运行mongos或mongod进程的守护进程模式。
    20. fork: true
    21. #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
    22. pidFilePath: "/usr/local/mongodb/replica_sets/myrs_27018/logs/mongod.pid"
    23. net:
    24. #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
    25. #bindIpAll: true
    26. #服务实例绑定的IP
    27. bindIp: localhost,192.168.22.100
    28. #bindIp
    29. #绑定的端口,默认是27018
    30. port: 27018
    31. replication:
    32. #副本集的名称
    33. replSetName: wuweixianrs

    #4、启动节点服务:

    mongod -f /usr/local/mongodb/replica_sets/myrs_27018/mongod.conf

    3.创建仲裁节点:

    #1、仲裁节点,建立存放数据和日志的目录(代码粘贴下方):

     mkdir -p /usr/local/mongodb/replica_sets/myrs_27019/logs \ & mkdir -p /usr/local/mongodb/replica_sets/myrs_27019/data/db

    #2、新建或修改配置文件(代码粘贴下方):

     vi /usr/local/mongodb/replica_sets/myrs_27019/mongod.conf

    #3、mongod.conf配置文件中的内容,副本集的名称使用姓名全拼+rs,例如replSetName: LiMingrs(代码粘贴下方):

    1. systemLog:
    2. #MongoDB发送所有日志输出的目标指定为文件
    3. ##The path of the log file to which mongod or mongos should send all
    4. diagnostic logging information
    5. destination: file
    6. #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
    7. path: "/usr/local/mongodb/replica_sets/myrs_27019/logs/mongologs.log"
    8. #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾。
    9. logAppend: true
    10. storage:
    11. #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod。
    12. ##The directory where the mongod instance stores its data.Default Value is
    13. "/data/db".
    14. dbPath: "/usr/local/mongodb/replica_sets/myrs_27019/data/db"
    15. journal:
    16. #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
    17. enabled: true
    18. processManagement:
    19. #启用在后台运行mongos或mongod进程的守护进程模式。
    20. fork: true
    21. #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
    22. pidFilePath: "/usr/local/mongodb/replica_sets/myrs_27019/logs/mongod.pid"
    23. net:
    24. #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
    25. #bindIpAll: true
    26. #服务实例绑定的IP
    27. bindIp: localhost,192.168.22.100
    28. #bindIp
    29. #绑定的端口,默认是27019
    30. port: 27019
    31. replication:
    32. #副本集的名称
    33. replSetName: wuweixianrs

    #4、启动节点服务:

     mongod -f /usr/local/mongodb/replica_sets/myrs_27019/mongod.conf

    4.启动服务 

    执行 ps -ef|grep mongod 查看端口是否已启动服务

    5.初始化配置副本集和主节点

    使用客户端命令连接任意一个节点,但这里尽量要连接主节点(27017节点):

    mongo --port=27017
    

    6.查看副本集的配置内容:

    rs.conf()

     

    7.查看副本集状态 

    8.添加副本从节点 

    rs.add("192.168.22.100:27018")
    

    9.添加仲裁从节点 

    rs.addArb("192.168.22.100:27019"

     2 副本集操作

    副本集的数据读写操作

    目标:测试三个不同角色的节点的数据读写情况。
    1.登录主节点27017 使用mongo shell 登录主节点27017,写入和读取数据:
    mongo --host=192.168.22.100 --port=27017

     

    2.登录从节点27018:

    使用mongo shell 登录从节点,读取测试数据

    mongo --host=192.168.22.100 --port=27018

     

  • 相关阅读:
    dnan的好处2
    【JavaEE】JavaScript
    Java 中的异常处理机制
    【计算讲谈社】第一讲:支撑 10 万人同时在线互动,是实现元宇宙的基本前提?
    刷题日常计~JS⑤
    蓝桥杯 奇偶覆盖 模拟
    WireShark 抓包
    【离散数学】集合与关系
    论文阅读:ECAPA-TDNN
    绿色低碳,数字为先:万应低代码推动能源资产管理优化
  • 原文地址:https://blog.csdn.net/qq_64005599/article/details/133799401