MongoDB中怎么管理副本集


这期内容当中小编将会给大家带来有关MongoDB中怎么管理副本集,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
1)诊断
副本集中的机器,可以使用
>db.printReplicationInfo()
查看主数据库的复制的状态。

使用
>db.printSlaveReplicationInfo()
查看从数据库的复制的状态,可以查看主从是否有复制延迟

2)oplog设置和变更oplog大小

完整同步,非常消耗时间,手动重新同步使用命令:
>db.runCommand({“resync”:1})

使用–oplogSize参数设置更大的oplog大小。
假设MongoDB数据目录是/data/db,关闭主节点的mongod服务后使用命令:
>rm /data/db/local.*
>mongod –oplog=8038 –master

在启动MongoDB时使用了参数–noprealloc可以关闭空间预分配。
例如我们要生成20GB的文件空间,使用命令:
cd /tmp/local
for i in {0..9}
do
echo $i
head -c 2146435072 /dev/zero > local.$i
done

然后关闭MongoDB主节点进行数据文件移动

mv /data/db/local.* /safe/data
mv /tmp/local/* /data/db/

先将原local文件夹中的数据备份到/safe/data目录下,然后把我们预分配的空间文件/tmp/local/*移到数据目录/data/db/中,这样就完成了oplog的空间手动预分配。
重启主节点时就可以把oplog的大小设置成20G了。使用如下命令:
mongod –master –oplogSize=20000

3) 阻塞复制使用
从节点的复制跟不上主节点的写入操作时除了变更oplog的大小之外,还有一种方式能够解决,那就是阻塞主节点的写入,直到从节点慢慢跟上来之后再放开阻塞。使用命令如下:

>db.r免费云主机域名unCommand({getLastError:1,w:2});

w的值表示包括主节点在内,至少2个服务器记录了写入操作之后才返回写入的结果。w的值可以修改,值越大阻塞越明显,写操作越慢。

上述就是小编为大家分享的MongoDB中怎么管理副本集了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注百云行业资讯频道。

相关推荐: PostgreSQL 源码解读(205)- 查询#118(数据结构RangeTblEntry)

本节简单介绍了PostgreSQL在执行逻辑优化中对应Relation的数据结构:RangeTblEntry. RangeTblEntry RTE可能是普通表/FROM中的子查询/JOIN语句的结果等(只有显式的JOIN语法会产生RTE,由多个FROM项生成的…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

(0)
打赏 微信扫一扫 微信扫一扫
上一篇 01/04 12:13
下一篇 01/04 12:14