Mongodb延迟复制节点配置
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,背景:我们一般配置的Mongodb主从,或者Mongodb复制集,数据同步都是实时的。但如果在主节点上进行了错误的数据操作,这时候就会导致整个集群的数据都出错。因此,我们可以在一个集群中,挑选一个mo
千家信息网最后更新 2025年11月09日Mongodb延迟复制节点配置
背景:
我们一般配置的Mongodb主从,或者Mongodb复制集,数据同步都是实时的。但如果在主节点上进行了错误的数据操作,这时候就会导致整个集群的数据都出错。因此,我们可以在一个集群中,挑选一个mongodb实例,用作复制延迟。当在主节点上误操作的时候,集群中有一个实例是不受影响的。这时候就可以利用这台不受影响的实例进行数据恢复。
以上就是mongodb的延迟复制节点的功能,当主节点进行一次数据操作后,延迟复制节不立马进行数据同步操作,而是在一段时间后,才同步数据。
配置:
以我的实验环境为例,以下为我的mongodb复制集:
cmh0:PRIMARY> rs.status(){ "set" : "cmh0", "date" : ISODate("2016-08-22T02:43:16.240Z"), "myState" : 1, "members" : [ { "_id" : 1, "name" : "192.168.52.128:27017", "health" : 1, "state" : 1, "stateStr" : "PRIMARY", "uptime" : 82, "optime" : Timestamp(1470581983, 1), "optimeDate" : ISODate("2016-08-07T14:59:43Z"), "electionTime" : Timestamp(1471833721, 1), "electionDate" : ISODate("2016-08-22T02:42:01Z"), "configVersion" : 1, "self" : true }, { "_id" : 2, "name" : "192.168.52.135:27017", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 71, "optime" : Timestamp(1470581983, 1), "optimeDate" : ISODate("2016-08-07T14:59:43Z"), "lastHeartbeat" : ISODate("2016-08-22T02:43:15.138Z"), "lastHeartbeatRecv" : ISODate("2016-08-22T02:43:14.978Z"), "pingMs" : 0, "lastHeartbeatMessage" : "could not find member to sync from", "configVersion" : 1 }, { "_id" : 3, "name" : "192.168.52.135:27019", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", "uptime" : 75, "optime" : Timestamp(1470581983, 1), "optimeDate" : ISODate("2016-08-07T14:59:43Z"), "lastHeartbeat" : ISODate("2016-08-22T02:43:15.138Z"), "lastHeartbeatRecv" : ISODate("2016-08-22T02:43:15.138Z"), "pingMs" : 0, "configVersion" : 1 } ], "ok" : 1}这时还未配置延迟复制节点,所以数据是实时同步的:
cmh0:PRIMARY> use cmhtestswitched to db cmhtestcmh0:PRIMARY> db.cmh.insert({"name":"ChenMinghui"})WriteResult({ "nInserted" : 1 })cmh0:PRIMARY> rs.printReplicationInfo()configured oplog size: 990MBlog length start to end: 195secs (0.05hrs)oplog first event time: Mon Aug 22 2016 10:51:22 GMT+0800 (CST)oplog last event time: Mon Aug 22 2016 10:54:37 GMT+0800 (CST)now: Mon Aug 22 2016 10:55:00 GMT+0800 (CST)cmh0:PRIMARY> rs.printSlaveReplicationInfo()source: 192.168.52.135:27017 syncedTo: Mon Aug 22 2016 10:54:37 GMT+0800 (CST) 0 secs (0 hrs) behind the primary source: 192.168.52.135:27019 syncedTo: Mon Aug 22 2016 10:54:37 GMT+0800 (CST) 0 secs (0 hrs) behind the primary可以看到两个Secondary节点都在同一时间实时同步了数据。
配置192.168.52.135:27017为延迟复制节点:
cmh0:PRIMARY> cfg=rs.conf();{ "_id" : "cmh0", "version" : 1, "members" : [ { "_id" : 1, "host" : "192.168.52.128:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : 0, "votes" : 1 }, { "_id" : 2, "host" : "192.168.52.135:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : 0, "votes" : 1 }, { "_id" : 3, "host" : "192.168.52.135:27019", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : 0, "votes" : 1 } ], "settings" : { "chainingAllowed" : true, "heartbeatTimeoutSecs" : 10, "getLastErrorModes" : { }, "getLastErrorDefaults" : { "w" : 1, "wtimeout" : 0 } }}cmh0:PRIMARY> cfg.members[1].priority=00cmh0:PRIMARY> cfg.members[1].slaveDelay=3030cmh0:PRIMARY> rs.reconfig(cfg);{ "ok" : 1 }cmh0:PRIMARY> rs.conf(){ "_id" : "cmh0", "version" : 2, "members" : [ { "_id" : 1, "host" : "192.168.52.128:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : 0, "votes" : 1 }, { "_id" : 2, "host" : "192.168.52.135:27017", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 0, "tags" : { }, "slaveDelay" : 30, "votes" : 1 }, { "_id" : 3, "host" : "192.168.52.135:27019", "arbiterOnly" : false, "buildIndexes" : true, "hidden" : false, "priority" : 1, "tags" : { }, "slaveDelay" : 0, "votes" : 1 } ], "settings" : { "chainingAllowed" : true, "heartbeatTimeoutSecs" : 10, "getLastErrorModes" : { }, "getLastErrorDefaults" : { "w" : 1, "wtimeout" : 0 } }}可以看到192.168.52.135:27017节点出现了"slaveDelay":30的值,说明该节点的同步时间向后推迟了30秒。
具体大家可以测试一下,延迟复制时间大概会在30秒左右。有一点要注意,mongodb的系统时间必须一致,否则会造成延迟复制异常,导致在规定同步时间到了之后不进行同步操作。
节点
数据
同步
延迟
时间
配置
实例
实时
集群
影响
一致
两个
主从
功能
就是
数据恢复
时候
是在
环境
系统
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
杭州猿宝互联网科技有限公司
数据库保存文件夹路径的格式
c 服务器开发 视频
福建智能软件开发网上价格
如何导出数据库数据
北京唯家网络技术有限公司
福建软件开发终端
我是网络安全小卫士手抄报文章少
玩家儿网络技术有限公司
聋哑人手语数据库
霸州租房软件开发
华南理工与网络安全哪个专业好
湖南邮件营销外贸软件开发公司
软件开发费用税率
实时数据库模型厂家
网络技术知识点的不足怎么写
苹果手机邮箱收发服务器怎么设置
mysql数据库开放外网
网络安全事件分级响应时间
osi网络安全体系特点
学软件开发用什么好
荣耀盒子服务器忙
cvte软件开发工程师好吗
对软件开发团队合作的评价
常用的数据库管理系统最新版本
服务器国外出租
净化空间维护网络安全画报
广东技术师范大学官网网络安全
工业软件开发库
华为5885服务器