• MongoDB副本集搭建


    版本

    1. > db.version()
    2. 4.4.24
    3. >

    集群相关命令

    1. rs.status()
    2. ## id 要和配置文件定义的replSetName一致
    3. cfg={_id:"knight",members:[{_id:0,host:'182.27.239.17:27017',priority:1}]}
    4. ## id 要和配置文件定义的replSetName一致
    5. cfg={_id:"knight",members:[{_id:0,host:'10.1.1.32:27017',priority:1},{_id:1,host:'10.1.1.33:27017',priority:0,votes:0}]}
    6. ##
    7. cfg={_id:"knight",members:[{_id:0,host:'10.1.1.32:27017',priority:1},{_id:1,host:'10.1.1.33:27017',priority:0}]}
    8. ##
    9. rs.initiate(cfg)
    10. ## 查看配置
    11. rs.conf()
    12. ###
    13. rs.reconfig(config,{force:true})
    14. ### 查看配置
    15. rs.config()
    16. rs.config().members

    参考

    1. ##
    2. https://blog.csdn.net/GotFull/article/details/127034877
    3. ### 副本集无效
    4. https://www.coder.work/article/544115

    配置文件

    1. systemLog:
    2. destination: file
    3. path: "/opt/app/mongodb_cluster/log/m27071.log"
    4. logAppend: true
    5. processManagement:
    6. fork: true
    7. pidFilePath: "/opt/app/mongodb_cluster/pid/m27071.pid"
    8. net:
    9. port: 27017
    10. bindIp: 0.0.0.0
    11. # http:
    12. # enabled: true
    13. # RESTInterfaceEnabled: true
    14. storage:
    15. dbPath: "/opt/app/data/27071"
    16. engine: wiredTiger
    17. journal:
    18. enabled: true
    19. directoryPerDB: true
    20. wiredTiger:
    21. engineConfig:
    22. cacheSizeGB: 1
    23. directoryForIndexes: true
    24. # 定义复制集的名称
    25. replication:
    26. oplogSizeMB: 800
    27. replSetName: "rs"

    集群配置

    初始化

    主节点上执行命令如下:

    1. # 执行命令
    2. rs.initiate()
    3. ####
    4. #若客户端返回信息中字段OK的值为1,说明成功初始化副本集。
    5. #完成初始化命令,当前节点默认处于"SECONDARY(副本节点)"状态.
    6. ###等待几秒后,按回车键。自动选举自己为PRIMARY(主节点)
    添加成员节点
    1. ## 先默认初始化
    2. rs.initiate()
    3. ##
    4. cfg={_id:"xbrother",members:[{_id:0,host:'10.1.1.32:27017',priority:1},{_id:1,host:'10.1.1.33:27017',priority:0}]}
    5. ##
    6. rs.initiate(cfg)
    检查和测试
    1. # 检查状态
    2. rs.status()
    3. ## 主节点写入数据测试
    4. rs:PRIMARY> db.user.insert({"name":"knight","age":30})
    5. WriteResult({ "nInserted" : 1 })
    6. rs:PRIMARY> db.user.find()
    7. { "_id" : ObjectId("64f9b892e61da94af298a9d3"), "name" : "knight", "age" : 30 }
    8. rs:PRIMARY>
    9. ### 从节点查询数据
    10. #### 从库开启读
    11. rs:SECONDARY> rs.secondaryOk()
    12. ##
    13. rs:SECONDARY> use test
    14. switched to db test
    15. rs:SECONDARY> db.user.find()
    16. { "_id" : ObjectId("64f9b892e61da94af298a9d3"), "name" : "knight", "age" : 30 }
    17. rs:SECONDARY>

    取消双机MongoDB

    1. ##
    2. rs.remove("mongod3.example.net:27017")
    3. # 重新加入双机
    4. rs.reconfig(cfg)

  • 相关阅读:
    【算法集训专题攻克篇】第二十一篇之堆
    1776年美国才建国,那一年中国在干什么?
    JavaWeb在线商城系统(java+jsp+servlet+MySQL+jdbc+css+js+jQuery)
    力扣每日一题:895. 最大频率栈【哈希表和队列】
    自助取款机系统(C#)
    Netty 学习(六):创建 NioEventLoopGroup 的核心源码说明
    android studio定时器代码简析
    学生HTML个人网页作业作品 (水果商城HTML+CSS)
    面了一个00后测试工程师,问啥啥不会开口就要15k,我也是麻了····
    老卫带你学---leetcode刷题(114. 二叉树展开为链表)
  • 原文地址:https://blog.csdn.net/knight_zhou/article/details/132734503