MongoDB中怎么修改oplogSize
这篇文章将为大家详细讲解有关MongoDB中怎么修改oplogSize,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
1、关闭此节点并以单实例启动1.1关闭节点进程SECONDARY>db.shutdownServer()1.2注销Replica set相关启动参数
并修改port端口号(假设原来是27001,现改为37001)
1.3 重新启动/apps/mongodb/bin/mongod-f/data/johnny/cfg/shard1.cnf2、备份节点oplog日志
全备当前节点的所有oplog记录
mongodump--port37001--dblocal--collection'oplog.rs'
备份oplog.rs中最近的一条oplog记录
>uselocal>db.optmp.drop()---清空临时表,存放oplog最近一条记录>db.optmp.save(db.oplog.rs.find({},{ts:1,h:1}).sort({$natural:-1}).limit(1).next())---将最近一条记录存放到临时集合中>db.optmp.find()---验证是否记录已存入{"_id":ObjectId("5a0d437ed4738d194fa0b94f"),"ts":Timestamp(1510389543,1),"h":NumberLong("-2633465233485407995")}3、修改oplogSize
删除原oplog.rs集合
>uselocal>db.oplog.rs.drop()
创建新oplog.rs集合
>db.runCommand({create:"oplog.rs",capped:true,size:(2*1024*1024*1024)}){"ok":1}---成功的话将返回ok4、还原之前备份的最近一条记录
>db.oplog.rs.save(db.optmp.findOne())>db.oplog.rs.find()---查询验证是否已插入5、重新加入副本集5.1 关闭当前单实例进程
>db.shutdownServer()5.2 恢复配置文件信息
(注意oplogSizeMB参数值的修改)
5.3 启动实例进程/apps/mongodb/bin/mongod-f/data/johnny/cfg/shard1.cnf6、检查节点状态
登录到mongo shell中检查节点是否成功加入副本集架构
>rs.status()检查oplogSize是否生效(红色字体)SECONDARY>rs.printReplicationInfo()configuredoplogsize:2048MBloglengthstarttoend:0secs(0hrs)oplogfirsteventtime:SatNov11201716:39:03GMT+0800(CST)oploglasteventtime:SatNov11201716:39:03GMT+0800(CST)now:ThuNov16201717:00:32GMT+0800(CST)7、根据上述步骤依次修改副本集的其他成员的oplogSize参数
注:修改Primary节点时,记得先使用如下命令降级,然后再修改
Primary>rs.stepDown()---可以更有效的产生选举方法二:
3.6版本后支持的动态修改方法
1.修改之前的参数大小:replication:oplogSizeMB:1024replSetName:shardrs1
登录到mongo shell后查看oplog.rs集合大小
>uselocalswitchedtodblocal>db.oplog.rs.stats().maxSizeNumberLong(1073741824)---单位bytes,即2014MB2.通过管理命令修改
>uselocalswitchedtodblocal>db.adminCommand({replSetResizeOplog:1,size:2048});---2048的单位也MB{"ok":1,"operationTime":Timestamp(1537776585,1),"$clusterTime":{"clusterTime":Timestamp(1537776585,1),"signature":{"hash":BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),"keyId":NumberLong(0)}}}3.验证是否成功
>db.oplog.rs.stats().maxSizeNumberLong("2147483648")
至此我们的oplog size动态修改完毕,是不是很简单,是不是很easy?
思考:问1:replSetResizeOplog命令会不会同时修改了replication.oplogSizeMB参数值呢?
答:我此时查看启动配置文件,发现oplogSizeMB依然是1024;
问2:重启后会不会配置文件中的参数值就更改为修改值了呢?
答:重新启动数据库实例后,我发现并没有,还是最初值
问3:那么重启后,新修改值会失效吗?
答:我再次发现并没有,仍然使用最新值
shardrs1:PRIMARY>db.oplog.rs.stats().maxSizeNumberLong("2147483648")
关于MongoDB中怎么修改oplogSize就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。