首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mongodb副本集

mongodb副本集

作者头像
零月
发布2018-04-25 15:52:19
9680
发布2018-04-25 15:52:19
举报
文章被收录于专栏:从零开始的linux从零开始的linux

机器

ip

node01(master)

71

node02(slave)

72

node03(slave)

73

  • 3台机器分别安装mongodb
  • 编辑三台机器的配置文件
 # vim /etc/mongod.conf 
replication:
  oplogSizeMB: 20
  replSetName: alextest
在master上面操作
[root@node01 ~]# mongo
MongoDB shell version: 3.0.7
connecting to: test
Server has startup warnings: 
2017-06-20T02:33:02.858+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-06-20T02:33:02.858+0800 I CONTROL  [initandlisten] 
> use admin
switched to db admin
> config={_id:"alextest",members:[{_id:0,host:"192.168.6.71:27017"},{_id:1,host:"192.168.6.72:27017"},{_id:2,host:"192.168.6.73:27017"}]}
{
  "_id" : "alextest",
  "members" : [
  {
  "_id" : 0,
  "host" : "192.168.6.71:27017"
  },
  {
  "_id" : 1,
  "host" : "192.168.6.72:27017"
  },
  {
  "_id" : 2,
  "host" : "192.168.6.73:27017"
  }
  ]
}
> rs.initiate(config)
{ "ok" : 1 }
alextest:OTHER> rs.status()
{
  "set" : "alextest",
  "date" : ISODate("2017-06-19T18:36:53.118Z"),
  "myState" : 1,
  "members" : [
  {
  "_id" : 0,
  "name" : "192.168.6.71:27017",
  "health" : 1,
  "state" : 1,
  "stateStr" : "PRIMARY",
  "uptime" : 231,
  "optime" : Timestamp(1497897400, 1),
  "optimeDate" : ISODate("2017-06-19T18:36:40Z"),
  "electionTime" : Timestamp(1497897402, 1),
  "electionDate" : ISODate("2017-06-19T18:36:42Z"),
  "configVersion" : 1,
  "self" : true
  },
  {
  "_id" : 1,
  "name" : "192.168.6.72:27017",
  "health" : 1,
  "state" : 2,
  "stateStr" : "SECONDARY",
  "uptime" : 13,
  "optime" : Timestamp(1497897400, 1),
  "optimeDate" : ISODate("2017-06-19T18:36:40Z"),
  "lastHeartbeat" : ISODate("2017-06-19T18:36:52.030Z"),
  "lastHeartbeatRecv" : ISODate("2017-06-19T18:36:52.029Z"),
  "pingMs" : 1,
  "configVersion" : 1
  },
  {
  "_id" : 2,
  "name" : "192.168.6.73:27017",
  "health" : 1,
  "state" : 2,
  "stateStr" : "SECONDARY",
  "uptime" : 13,
  "optime" : Timestamp(1497897400, 1),
  "optimeDate" : ISODate("2017-06-19T18:36:40Z"),
  "lastHeartbeat" : ISODate("2017-06-19T18:36:52.017Z"),
  "lastHeartbeatRecv" : ISODate("2017-06-19T18:36:52.026Z"),
  "pingMs" : 0,
  "configVersion" : 1
  }
  ],
  "ok" : 1
}
alextest:PRIMARY> 
[root@node02 ~]# mongo
MongoDB shell version: 3.0.7
connecting to: test
Server has startup warnings: 
2017-06-20T08:24:00.437+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-06-20T08:24:00.437+0800 I CONTROL  [initandlisten] 
alextest:SECONDARY> 
[root@node03 ~]# mongo
MongoDB shell version: 3.0.7
connecting to: test
Server has startup warnings: 
2017-06-20T08:24:20.049+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-06-20T08:24:20.049+0800 I CONTROL  [initandlisten] 
alextest:SECONDARY> 
· 测试mongodb副本集
node01主
alextest:PRIMARY> use mydb
switched to db mydb
alextest:PRIMARY> show dbs
admin  0.078GB
alex   0.078GB
local  0.078GB
alextest:PRIMARY> db.C
db.changeUserPassword(  db.constructor          db.createUser(
db.cloneCollection(     db.copyDatabase(        db.currentOP(
db.cloneDatabase(       db.createCollection(    db.currentOp(
db.commandHelp(         db.createRole(
alextest:PRIMARY> db.createCollection('testc')
{ "ok" : 1 }
alextest:PRIMARY> show dbs
admin  0.078GB
alex   0.078GB
local  0.078GB
mydb   0.078GB
node02 从
alextest:SECONDARY> rs.slaveOk()
alextest:SECONDARY> show dbs
admin  0.078GB
alex   0.078GB
local  0.078GB
mydb   0.078GB
alextest:SECONDARY> use mydb
switched to db mydb
alextest:SECONDARY> show tables
system.indexes
testc
master上面操作
alextest:PRIMARY> cfg = rs.conf()
{
  "_id" : "alextest",
  "version" : 1,
  "members" : [
  {
  "_id" : 0,
  "host" : "192.168.6.71:27017",
  "arbiterOnly" : false,
  "buildIndexes" : true,
  "hidden" : false,
  "priority" : 1,
  "tags" : {
  },
  "slaveDelay" : 0,
  "votes" : 1
  },
  {
  "_id" : 1,
  "host" : "192.168.6.72:27017",
  "arbiterOnly" : false,
  "buildIndexes" : true,
  "hidden" : false,
  "priority" : 1,
  "tags" : {
  },
  "slaveDelay" : 0,
  "votes" : 1
  },
  {
  "_id" : 2,
  "host" : "192.168.6.73:27017",
  "arbiterOnly" : false,
  "buildIndexes" : true,
  "hidden" : false,
  "priority" : 1,
  "tags" : {
  },
  "slaveDelay" : 0,
  "votes" : 1
  }
  ],
  "settings" : {
  "chainingAllowed" : true,
  "heartbeatTimeoutSecs" : 10,
  "getLastErrorModes" : {
  },
  "getLastErrorDefaults" : {
  "w" : 1,
  "wtimeout" : 0
  }
  }
}
alextest:PRIMARY> cfg.members[0].priority = 3
3
alextest:PRIMARY> cfg.members[1].priority = 2
2
alextest:PRIMARY> cfg.members[2].priority = 1
1
alextest:PRIMARY> rs.reconfig(cfg)
{ "ok" : 1 }
alextest:PRIMARY> rs.config()
{
  "_id" : "alextest",
  "version" : 2,
  "members" : [
  {
  "_id" : 0,
  "host" : "192.168.6.71:27017",
  "arbiterOnly" : false,
  "buildIndexes" : true,
  "hidden" : false,
  "priority" : 3,
  "tags" : {
  },
  "slaveDelay" : 0,
  "votes" : 1
  },
  {
  "_id" : 1,
  "host" : "192.168.6.72:27017",
  "arbiterOnly" : false,
  "buildIndexes" : true,
  "hidden" : false,
  "priority" : 2,
  "tags" : {
  },
  "slaveDelay" : 0,
  "votes" : 1
  },
  {
  "_id" : 2,
  "host" : "192.168.6.73:27017",
  "arbiterOnly" : false,
  "buildIndexes" : true,
  "hidden" : false,
  "priority" : 1,
  "tags" : {
  },
  "slaveDelay" : 0,
  "votes" : 1
  }
  ],
  "settings" : {
  "chainingAllowed" : true,
  "heartbeatTimeoutSecs" : 10,
  "getLastErrorModes" : {
  },
  "getLastErrorDefaults" : {
  "w" : 1,
  "wtimeout" : 0
  }
  }
}
alextest:PRIMARY> 
现在master挂了可以自动切换了 node02的slave变master
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 从零开始的linux 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档