mongodb副本集
时间:2022-05-11
本文章向大家介绍mongodb副本集,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
机器 |
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
- yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[上篇]
- 以上下文(Context)的形式创建一个共享数据的容器
- yield在WCF中的错误使用——99%的开发人员都有可能犯的错误[下篇]
- ASP.NET MVC下的四种验证编程方式
- 总体介绍ASP.NET Web API下Controller的激活与释放流程
- 如何让ASP.NET Web API的Action方法在希望的Culture下执行
- ASP.NET Web API标准的“管道式”设计
- ASP.NET Web API路由系统:Web Host下的URL路由
- ASP.NET Web API路由系统:路由系统的几个核心类型
- [ASP.NET] 如果将缓存“滑动过期时间”设置为1秒会怎样?
- [ASP.NET MVC] 利用自定义的AuthenticationFilter实现Basic认证
- [CORS:跨域资源共享] 同源策略与JSONP
- [CORS:跨域资源共享] W3C的CORS Specification
- 通过扩展让ASP.NET Web API支持JSONP
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- k8s问题记录
- Hexo博客Next主题浏览统计不显示
- 视频上云网关平台EasyCVR使用海康SDK拉流协议分析
- 计算机网络物理层习题
- 从数据库中查询马上过生日的人并统计各年龄段及性别所占的人数
- Ubuntu19.10 中安装 JDK
- 在 Ubuntu19.10 上安装 wine 并安装 QQ 等软件
- wordpress迁移至hugo及其自动化发布文章全记录
- 视频流媒体平台EasyNVR硬件设备使用华科云arm版如何修改为固定IP?
- 详解 IP 地址
- k8s解决pod调度不均衡的问题
- 如何获取视频流媒体服务器EasyNVR的临时授权机器码?
- Mybatis-Plus常用注解
- IDEA 你不知道小技巧——后缀法自动生成代码(Postfix Completion)
- Mybatis-Plus使用乐观锁