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.runCommand({getLastError:1,w:2});


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

上述就是小编为大家分享的MongoDB中怎么管理副本集了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联-成都网站建设公司行业资讯频道。


名称栏目:MongoDB中怎么管理副本集-创新互联
网站网址:http://pwwzsj.com/article/iehgj.html