文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MongoDB中怎么修改oplogSize

2024-04-02 19:55

关注

这篇文章将为大家详细讲解有关MongoDB中怎么修改oplogSize,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

1、关闭此节点并以单实例启动 

1.1关闭节点进程

SECONDARY> db.shutdownServer()

1.2注销Replica set相关启动参数

并修改port端口号(假设原来是27001,现改为37001)

MongoDB中怎么修改oplogSize

MongoDB中怎么修改oplogSize

1.3 重新启动

/apps/mongodb/bin/mongod -f /data/johnny/cfg/shard1.cnf

2、备份节点oplog日志

全备当前节点的所有oplog记录

mongodump --port 37001 --db local --collection 'oplog.rs'

     备份oplog.rs中最近的一条oplog记录

>use local
>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集合

>use local
>db.oplog.rs.drop()

     创建新oplog.rs集合

> db.runCommand( { create: "oplog.rs", capped: true, size: (2 * 1024 * 1024 * 1024) } )
{ "ok" : 1 }          ---成功的话将返回ok

4、还原之前备份的最近一条记录

> db.oplog.rs.save(db.optmp.findOne())
> db.oplog.rs.find()          ---查询验证是否已插入

5、重新加入副本集

5.1 关闭当前单实例进程

>db.shutdownServer()

5.2 恢复配置文件信息

(注意oplogSizeMB参数值的修改)

MongoDB中怎么修改oplogSize

MongoDB中怎么修改oplogSize

 5.3 启动实例进程

/apps/mongodb/bin/mongod -f /data/johnny/cfg/shard1.cnf

6、检查节点状态

登录到mongo shell中检查节点是否成功加入副本集架构

>rs.status()
     检查oplogSize是否生效(红色字体)
SECONDARY> rs.printReplicationInfo()
configured oplog size:   2048MB
log length start to end: 0secs (0hrs)
oplog first event time:  Sat Nov 11 2017 16:39:03 GMT+0800 (CST)
oplog last event time:   Sat Nov 11 2017 16:39:03 GMT+0800 (CST)
now:                     Thu Nov 16 2017 17:00:32 GMT+0800 (CST)

7、根据上述步骤依次修改副本集的其他成员的oplogSize参数

注:修改Primary节点时,记得先使用如下命令降级,然后再修改

Primary>rs.stepDown()          ---可以更有效的产生选举

方法二:

3.6版本后支持的动态修改方法

1.修改之前的参数大小:

replication:
   oplogSizeMB: 1024
   replSetName: shardrs1

登录到mongo shell后查看oplog.rs集合大小

> use local
switched to db local
> db.oplog.rs.stats().maxSize
NumberLong(1073741824)    ---单位bytes,即2014MB

2.通过管理命令修改

> use local
switched to db local
> 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().maxSize
NumberLong("2147483648")

至此我们的oplog size动态修改完毕,是不是很简单,是不是很easy?

思考:

shardrs1:PRIMARY> db.oplog.rs.stats().maxSize
NumberLong("2147483648")

关于MongoDB中怎么修改oplogSize就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯