文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MongoDB复制集选举原理管理

2024-04-02 19:55

关注

MongoDB 复制集概述

MongoDB复制集选举原理管理

创建多实例 //创建多实例
关闭防火墙 setenforce  //一些阻挡项目
mkdir -p /data/mongodb/mongodb{2,3,4}     //创建数据目录
mkdir logs  //到/data/mongodb/创建日志文件目录
touch logs/mongodb{2,3,4}.log    //创建日志文件
cd logs/到目录下
chmod 777 *.log     //赋予权限
//创建多实例配置文件,并开启服务
mongod -f /etc/mongod.conf --shutdown  //修改完主配置文件并且进行关闭在开启
mongod -f /etc/mongod.conf  //挨个开启所有服务
进入默认的端口 开启复制集
cp -p /etc/mongod.conf /etc/mongod2.conf  //地二个实例配置文件
vim /etc/mongod2.conf
   path: /data/mongodb/logs/mongod2.log               //系统日志存放路径
   dbPath: /data/mongodb/mongo                   //数据存放日志
   port: 27018                  //端端口

mkdir -p  /data/mongodb/            //为其创建系统日志和数据存放日志没有目录
cd /data/mongodb/                         
mkdir mongo  
touch mongod2.log                              //为其创建系统日志文件
chmod 777 mongod2.log               //并且给与权限

mongod -f /etc/mongod2.conf         //开启多实例服务
mongo --port 27018              //进入mongodb 27018
netstat -ntap                   //产看进程

cfg={"_id":"abc","members":[{"_id":0,"host":"192.168.10.5:27017","priority":100},{"_id":1,"host":"192.168.10.5:27018","priority":100},{"_id":2,"host":"192.168.10.5:27019","priority":0},{"_id":3,"host":"192.168.10.5:27020","arbiterOnly":true}]} //注意IP
优先级来判断
priority":100  //高的做为表准节点
priority":0 //低的就作为被动节点
arbiterOnly":true  //仲裁节点
rs.initiate(cfg)  //初始化刷新 之后就可以看到自己的身份了
rs.isMaster()  //查看节点状态
基本的增删改查
db.t1.insert({"id":1,"name":"tom"})  //创建集合
db.t1.find()   //查看当前数据
db.t1.update({"id":2},{$set:{"name":"jack"}})  //修改指定内容
db.t1.remove({"id":1})     //删除指定数据

MongoDB复制集选举原理管理MongoDB复制集选举原理管理MongoDB复制集选举原理管理MongoDB复制集选举原理管理

show dbs  //显示所有数据库
use local  //进入存放日志文件的数据库
show collections  //显示数据中的所有的集合
db.oplog.rs.find()   #查看日志记录所有操作
模拟表准节点1故障
mongod -f /etc/mongod.conf --shutdown #关闭一主节点服务看看是否别的mongoDB有没有抢占
mongo --port 27018   #此时会选举第二个标准节点为主节点
模拟标注节点2故障
mongod -f /etc/mongod2.conf --shutdown  #关闭第二主节点
mongo --port 27019 #此时被动节点不能成为主节点

MongoDB复制集选举原理管理MongoDB复制集选举原理管理
MongoDB复制集选举原理管理
MongoDB复制集选举原理管理
仲裁节点是不会复制信息
rs.help() #帮助信息
rs.printReplicationInfo() #查看日志文件大小信息
configured oplog size: 990MB #这个日志文件大小是可以修改的
rs.printSlaveReplicationInfo() #产看是和那个节点继进行同步
#你会发现仲裁节点并不具备数据复制

- 更改oplog大小 零时修改
  1. 要去调整日志文件大小,从节点会去找主节点进行
    同步对方的文件从而自己也进行了扩容,对于主节点来
    说自己的日志文件大小宽裕为最佳,若不够则可以零时
    进行调整 默认情况下990M,调整从节点
    1) 关闭节点服务,因为从节点是主节点复制集成员
    2)只能单独的进行修改,先关闭服务在从复制集中退出来,推出来后就成了一个单实例 ,
    3)use admin #先关闭服务
    4)db.shutdownServer() #退出复制集 离线升级
    5)修改从节点配置文件
    6)mongod -f /etc/mongod2.conf //启动服务
    7)mongo --port 27028 //登陆
    8)mongodump --port 27028 --db local --collection 'oplog.rs' //oplog进行完整性备份
    9)mongo --port 27028 //进端口
    10)use local

    db.oplog.rs.drop() //删掉原来的文件
    11)db.runCommand( { create: "oplog.rs", capped: true, size: (2 1024 1024 * 1024) } ) //进行原型创建 改为2048
    12)use admin
    db.shutdownServer() //再次关闭服务
    13)再次修改回来原先的数据 在replication:
    replSetName: abc
    oplogSizeMB: 2048 //添加
    14)mongod -f /etc/mongod2.conf //重新开启服务 mongo --port 27018 进入端口
    15)rs.printReplicationInfo() //此时就成了2048 支对但对修改有效
    16)rs.stepDown() #有效产生选举 在主的里面让出主的身份

    
    ![](https://s1.51cto.com/images/blog/201807/16/056486508bc79f8a63535d95c9d7251c.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](https://s1.51cto.com/images/blog/201807/16/00b2ec5ce686257662955fe84f94e759.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
    ![](https://s1.51cto.com/images/blog/201807/16/2a8d53ec8c61716800a096e3edfcbb8d.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)![](https://s1.51cto.com/images/blog/201807/16/9514d79b04857075aa1d7e6a1cdc1a05.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=)
1. 在主服务器上长创建用户为root
use admin  
db.createUser({"user":"root","pwd":"123","roles":["root"]}) #创建用户密码
vim /etc/mongod.conf  //修改主配置文件
同步并且中间有一个认证  修改所有配置文件
security:
   keyFile: /usr/bin/kgcrskey1  //验证文件路径
   clusterAuthMode: keyFile    //验证密钥
重启服务
mongod -f /etc/mongod.conf --shutdown
mongod -f /etc/mongod.conf              /其他几台的重启方式都相同,重复操作即可
身份验证登陆(先验证主,再验证从)
当你直接使用登陆命令登陆系统时,使用show dbs 是不能够查看数据的,此时就需要使用身份验证

mongo --port 27018
use admin
db.auth("root","123123")

MongoDB复制集选举原理管理MongoDB复制集选举原理管理

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯