MongoDB中怎么管理副本集

47次阅读
没有评论

共计 1025 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

这期内容当中丸趣 TV 小编将会给大家带来有关 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 的值可以修改,值越大阻塞越明显,写操作越慢。

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

向 AI 问一下细节

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-04发表,共计1025字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)