需求:因为端口调整,需要改变副本的备份集

1.查看当前的副本集信息

[root@localhost bin]# ./mongo 192.168.1.134:10001
repltest:PRIMARY> use admin
repltest:PRIMARY> db.auth("sa","123456")
repltest:PRIMARY> rs.config()
{
"_id" : "repltest",
"version" : 1,
"members" : [
{
"_id" : 0,
"host" : "192.168.1.134:10001",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : { },
"slaveDelay" : 0,
"votes" : 1
},
{
"_id" : 1,
"host" : "192.168.1.135:10002",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : { },
"slaveDelay" : 0,
"votes" : 1
},
{
"_id" : 2,
"host" : "192.168.1.135:10003",
"arbiterOnly" : true,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : { },
"slaveDelay" : 0,
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatTimeoutSecs" : 10,
"getLastErrorModes" : { },
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
}
}
}

我们需要将这里各机器的端口10001,10002,10003分别修改为20001,20002,20003

2.修改从库192.168.1.135:10002为192.168.1.135:20002
2.1 停掉该从库
[root@localhost bin]# ./mongo localhost:10002
repltest:SECONDARY> use admin
repltest:SECONDARY> db.auth("sa","123456")
repltest:SECONDARY> db.shutdownServer()

2.2修改配置文件(mongo.cnf)将端口10002修改为20002
port = 20002

2.3启动该重库
[root@localhost bin]# ./mongod -f /opt/mongodb3015_slave/conf/mongo.cnf

2.4登陆主库执行如下命令
repltest:PRIMARY> rs.remove("192.168.1.135:10002") ##移除原配置文件中的已经变更地址的主机
repltest:PRIMARY> rs.add("192.168.1.135:20002") ##添加变更后的端口

2.5查看配置是否生效
rs.config()
rs.status()

3.修改仲裁节点的端口
3.1停掉仲裁节点
[root@localhost bin]# ./mongo localhost:10003
MongoDB shell version: 3.0.15
connecting to: localhost:10003/test
repltest:ARBITER> use admin
switched to db admin
repltest:ARBITER> db.auth("sa","123456")
Error: 18 Authentication failed.
0
repltest:ARBITER> db.shutdownServer()

3.2修改配置文件(mongo.cnf)将端口10003修改为20003
port = 20002

3.3启动该重库
[root@localhost bin]# ./mongod -f /opt/mongodb3015_arbiter/conf/mongo.cnf

3.4登陆主库执行如下命令
repltest:PRIMARY> rs.remove("192.168.1.135:10003") ##移除原配置文件中的已经变更地址的主机
repltest:PRIMARY> rs.addArb("192.168.1.135:20003") ##添加仲裁节点

3.5查看配置是否生效
rs.config()
rs.status()

4.修改主库192.168.1.134:10001为192.168.1.134:10002
4.1 停掉该主库
[root@localhost bin]# ./mongo localhost:10001
repltest:PRIMARY> use admin
repltest:PRIMARY> db.auth("sa","123456")
repltest:PRIMARY> db.shutdownServer()
这个时候该另外一个从库会变更为主库

4.2修改配置文件(mongo.cnf)将端口10001修改为20001
port = 20001

4.3启动该库
[root@localhost bin]# ./mongod -f /opt/mongodb3015/conf/mongo.cnf

4.4登陆主库执行如下命令
root@localhost bin]# ./mongo 192.168.1.135:20002
repltest:PRIMARY> use admin
repltest:PRIMARY> db.auth("sa","123456")
repltest:PRIMARY> rs.remove("192.168.1.134:10001") ##移除原配置文件中的已经变更地址的主机
repltest:PRIMARY> rs.add("192.168.1.134:20001") ##添加变更后的端口

5.整个配置完成后查看配置和状态

repltest:PRIMARY> rs.conf()
{
"_id" : "repltest",
"version" : 7,
"members" : [
{
"_id" : 3,
"host" : "192.168.1.135:20002",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : { },
"slaveDelay" : 0,
"votes" : 1
},
{
"_id" : 4,
"host" : "192.168.1.135:20003",
"arbiterOnly" : true,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : { },
"slaveDelay" : 0,
"votes" : 1
},
{
"_id" : 5,
"host" : "192.168.1.134:20001",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"tags" : { },
"slaveDelay" : 0,
"votes" : 1
}
],
"settings" : {
"chainingAllowed" : true,
"heartbeatTimeoutSecs" : 10,
"getLastErrorModes" : { },
"getLastErrorDefaults" : {
"w" : 1,
"wtimeout" : 0
}
}
}
repltest:PRIMARY> rs.status()
{
"set" : "repltest",
"date" : ISODate("2019-02-21T01:13:14.107Z"),
"myState" : 1,
"members" : [
{
"_id" : 3,
"name" : "192.168.1.135:20002",
"health" : 1,
"state" : 1,
"stateStr" : "PRIMARY",
"uptime" : 1504,
"optime" : Timestamp(1550711569, 1),
"optimeDate" : ISODate("2019-02-21T01:12:49Z"),
"electionTime" : Timestamp(1550711217, 1),
"electionDate" : ISODate("2019-02-21T01:06:57Z"),
"configVersion" : 7,
"self" : true
},
{
"_id" : 4,
"name" : "192.168.1.135:20003",
"health" : 1,
"state" : 7,
"stateStr" : "ARBITER",
"uptime" : 596,
"lastHeartbeat" : ISODate("2019-02-21T01:13:13.747Z"),
"lastHeartbeatRecv" : ISODate("2019-02-21T01:13:12.451Z"),
"pingMs" : 0,
"configVersion" : 7
},
{
"_id" : 5,
"name" : "192.168.1.134:20001",
"health" : 1,
"state" : 2,
"stateStr" : "SECONDARY",
"uptime" : 22,
"optime" : Timestamp(1550711569, 1),
"optimeDate" : ISODate("2019-02-21T01:12:49Z"),
"lastHeartbeat" : ISODate("2019-02-21T01:13:13.791Z"),
"lastHeartbeatRecv" : ISODate("2019-02-21T01:13:13.851Z"),
"pingMs" : 0,
"syncingTo" : "192.168.1.135:20002",
"configVersion" : 7
}
],
"ok" : 1
}

修改mongodb(带仲裁节点的副本集)各机器端口的更多相关文章

  1. MongoDB学习笔记——Replica Set副本集

    副本集 可以将MongoDB中的副本集看作一组服务器集群由一个主节点和多个副本节点等组成,相对于之前讲到的主从复制提供了故障自动转移的功能 副本集实现数据同步的方式依赖于local数据库中的oplog ...

  2. MongoDB 2.6配置副本集,支持端口号修改和用户登录认证

    mongoDB系列之(二):mongoDB 副本集 Mongodb2.6副本集验证部署和认证 副本集有以下特点: 1. 最小构成是:primary,secondary,arbiter,一般部署是:pr ...

  3. MongoDB集群部署 - 带访问控制的分片副本集

    1. 前言 Ceilometer将meter.event等数据保存在MongoDB中,之前将MongoDB部署在控制节点上,使用三副本模式,时间长了发现meter数据爆炸式增长,区区2T的磁盘捉襟见肘 ...

  4. MongoDB 3.4 分片 由副本集组成

    要在真实环境中实现MongoDB分片至少需要四台服务器做分片集群服务器,其中包含两个Shard分片副本集(每个包含两个副本节点及一个仲裁节点).一个配置副本集(三个副本节点,配置不需要仲裁节点),其中 ...

  5. 快速掌握mongoDB(五)——读写分离的副本集实现和Sharing介绍

    1 mongoDB副本集 1 副本集简介 前边我们介绍都是单机MongoDB的使用,在实际开发中很少会用单机MongoDB,因为使用单机会有数据丢失的风险,同时单台服务器无法做到高可用性(即当服务器宕 ...

  6. MongoDB添加仲裁节点报错replica set IDs do not match办法

    背景:由于历史原因,某个MongoDB副本集只有一主一从双节点,无法满足自动故障转移要求,需要配置一个仲裁节点. 原有节点192.168.10.20:27017,192.168.10.21:27017 ...

  7. MongoDB数据库 : 管道,用户管理,副本集等

    聚合(aggregate): db.集合.aggregate([{管道:{表达式}}]) db.集合.aggregate([ {管道1:{表达式1}}, {管道2:{表达式2}}, ... ...]) ...

  8. mongodb主从(副本集附仲裁节点)部署带认证模式

    环境:OS:CentOS 7DB:3.0.15机器角色:192.168.1.134:10001 主192.168.1.135:10002 从192.168.1.135:10003 仲裁节点 1.下载相 ...

  9. MongoDB 副本集的原理、搭建、应用

    概念: 在了解了这篇文章之后,可以进行该篇文章的说明和测试.MongoDB 副本集(Replica Set)是有自动故障恢复功能的主从集群,有一个Primary节点和一个或多个Secondary节点组 ...

随机推荐

  1. nodejs + typescirpt + vs code

    参考: 基于Nodejs生态圈的TypeScript+React开发入门教程 NPM install -save 和 -save-dev 傻傻分不清 使用typescript开发node js Typ ...

  2. docker学习(一)

    在工作和生活中免不了要学习新的东西.学习新东西要和已有的东西相结合,要有较快的效率.今天学习一下docker的使用,也锻炼一下自己学习新东西的能力. 1.学习docker,首先要下载docker.首先 ...

  3. 从写json作业谈起

    json的数据格式我经常见到,但是真正的写json的处理时,我又不会了,com.alibaba.fast.json. com.jackson.看了网上的博客,我可以写出简单java对象转换为json字 ...

  4. vscode添加vue格式化插件

    1.安装Vetur插件 2.ctrl+,打开用户设置,找到"vetur.format.defaultFormatter.html": "none",

  5. 微信小程序文字超出加省略号

    我查资料的时候搜到这个博客 http://blog.csdn.net/u010168409/article/details/54429678 view{ overflow:hidden; //超出一行 ...

  6. loadrunner笔记(二):飞机订票系统--客户信息注册

    (一)  几个重要概念说明 集合点:同步虚拟用户,以便同一时间执行任务. 事务:事务是指服务器响应用户请求所用的时间,当然它可以衡量某个操作,如登录所需要的时间,也可以衡量一系列的操作所用的时间,如从 ...

  7. FTPService工具类

    package com.vcredit.ddcash.server.commons.net; import com.vcredit.ddcash.server.commons.model.FtpPar ...

  8. 实体框架—Entity Framework

    简称EF,是微软以ADO.NET为基础所发展出来的对象关系对应(ORM)解决方案. EF就是用来处理数据的,与数据库打交道.但是底层还是用到了ADO.NET的那一套东西. 为什么叫对象关系对应解决方案 ...

  9. Git忽略提交规则 - .gitignore配置运维总结

    在使用Git的过程中,我们喜欢有的文件比如日志,临时文件,编译的中间文件等不要提交到代码仓库,这时就要设置相应的忽略规则,来忽略这些文件的提交.简单来说一个场景:在你使用git add .的时候,遇到 ...

  10. PE、PB、PEG三大估值法的正确使用方法!

    目前市面上的估值方法有很多,比如PE估值法.PB估值法.PEG估值法,但是我相信,真正会用的人并不多,比如说目前动态市盈率121倍的比亚迪真的高估吗?比如目前市净率为0.63倍的众泰汽车真的是破净股吗 ...