Mongodb延迟复制节点配置
发表于:2025-01-29 作者:千家信息网编辑
千家信息网最后更新 2025年01月29日,背景:我们一般配置的Mongodb主从,或者Mongodb复制集,数据同步都是实时的。但如果在主节点上进行了错误的数据操作,这时候就会导致整个集群的数据都出错。因此,我们可以在一个集群中,挑选一个mo
千家信息网最后更新 2025年01月29日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安全错误
数据库的锁怎样保障安全
软件开发特性
测试人员在软件开发的阶段
金山区网络软件开发定制价格对比
命运2服务器连不了
网信办网络安全审查的必要性
关于网络安全的整改
天脉网络技术有限公司电话
北京诚信网络技术开发项目
软件开发所用到技术
事业单位网络安全专业性强吗
倪光南谈网络安全审查
泉州网络安全资讯
828数据结构与数据库技术
和平精英的网络技术
学计算机网络技术笔记本推荐
阿里云自带的数据库
璧山网络安全
电子商务交易自身网络安全
青岛蛙人网络技术有限公司
深圳正规软件开发
江西一站式软件开发零售价格
E筋软件开发人员
软件开发行业合同资产
信息网络安全法注销账号
服务器光驱改硬盘位
将电脑主机设置为网络代理服务器
网络安全法第2章
网络安全攻击方法和防御策略
斑马网络技术有限公司布局
c 删除数据库某行