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的值可以修改,值越大阻塞越明显,写操作越慢。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15498/viewspace-2145732/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/15498/viewspace-2145732/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值