mongodb-复制集

启动三个实例配置replica set

创建路径

$ mkdir /mongodb/28017/{conf,data,log} -p
$ mkdir /mongodb/28018/{conf,data,log} -p
$ mkdir /mongodb/28019/{conf,data,log} -p

编辑配置文件

$ cat /mongodb/28017/conf/mongod.conf 
systemLog:
  destination: file
  path: /mongodb/28017/log/mongodb.log
  logAppend: true
storage:
  journal:
    enabled: true
  dbPath: /mongodb/28017/data
  directoryPerDB: true
  #engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 1
      directoryForIndexes: true
    collectionConfig:
      blockCompressor: zlib
    indexConfig:
      prefixCompression: true
processManagement:
  fork: true
net:
  port: 28017
  bindIp: 0.0.0.0
replication:
  oplogSizeMB: 2048
  replSetName: my_repl

其他实例配置文件内容类似

启动实例

$ mongod -f /mongodb/28017/conf/mongod.conf
$ mongod -f /mongodb/28018/conf/mongod.conf
$ mongod -f /mongodb/28019/conf/mongod.conf

配置复制集

> config={_id:"my_repl",members: [{_id:0,host:'192.168.3.105:28017'},{_id:1,host:'192.168.3.105:28018'},{_id:2,host:'192.168.3.105:28019'}]}

在mongodb复制集当中,默认从库不允许读写。从库需要做以下配置才可读写

> rs.slaveOk()

复制集基本管理操作

## 查看复制集状态
> rs.status()
## 查看当前节点是否主节点
rs.isMaster()

## 添加删除节点
rs.add("ip:port")
rs.addArb("ip:port")
rs.remove("ip:port")


## 配置参数,members中的序号,是节点顺序,顺序以 0 开始计数
cfg=rs.conf()
cfg.members[1].priority=0
cfg.members[1].slaveDelay=120
cfg.members[1].hidden=true
rs.reconfig(cfg)

## 查看副本集的配置信息
> rs.config()

## 主从手动切换,单位是秒
> rs.stepDown()

## 锁定从库,不会转变主库,单位是秒
admin> rs.freeze(300) 

## 设置副本节点可读:在副本节点执行
admin> rs.slaveOk()

## 查看从库节点
admin> rs.printSlaveReplicationInfo()
posted @   原来是你~~~  阅读(21)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示