mongodb复制集设置步骤

执行以下步骤之前,先在防火墙中放开指定IP的27017端口TCP连接。

mongodb复制集设置步骤

假设有2个节点,分别是:192.168.3.190:27017 和 192.168.3.192:27017

1、在各个节点的 config 文件中,设置复制集配置信息。

绑定各自对外IP (推荐用内网IP,如使用公网IP,需同时指定密码)

在主节点:

net:
  port: 27017
  bindIp: 127.0.0.1,192.168.3.190
  unixDomainSocket:
     enabled: true
     filePermissions: 0766
#operationProfiling 复制集配置信息:
replication:
  replSetName: rsmdb

在从节点:

net:
  port: 27017
  bindIp: 127.0.0.1,192.168.3.192
  unixDomainSocket:
     enabled: true
     filePermissions: 0766
#operationProfiling 复制集配置信息:
replication:
  replSetName: rsmdb

oplogSizeMB 默认值为硬盘空间的 5%,在较大硬盘中,可设置 oplogSizeMB 值,以指定占用上限。

#operationProfiling 复制集配置信息:
replication:
  replSetName: rsmdb
  oplogSizeMB: 100000

2、在主节点上执行命令,添加复制集信息

在主从均已启动的情况下执行命令,输入:

mongo

然后执行:

rs.initiate({
_id: 'rsmdb',
members: [
{_id: 0, host: '192.168.3.190:27017'},
{_id: 1, host: '192.168.3.192:27017'}]
})

查看当前复制集信息:

rs.status()

后期添加新的节点,在主节点 mongo 执行:

rs.add("192.168.3.192:27017")

3、开启从库可读

在从库 mongo 执行:

rs.secondaryOk()

------其它常用操作------

删除指定节点

在主库执行:

rs.remove("IP:Port")

降级当前主库为从库

在主库执行:

rs.stepDown()

短时间内降级

单位s,在主库执行:

rs.stepDown(30)

在主节点下线无法操作时,把从节点提升为主节点

需要重新设置节点列表,从members中删除主节点。

查看节点序号,原主节点是否为_id 0

rs.conf()

删除_id 0后,强制更新节点配置

c = rs.conf()
c.members.splice(0,1)
rs.reconfig(c,{"force":true})