温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

MongoDB中怎么管理副本集

发布时间:2021-07-16 16:52:10 来源:亿速云 阅读:132 作者:Leah 栏目:关系型数据库

这期内容当中小编将会给大家带来有关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.runCommand({getLastError:1,w:2});


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


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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI