mongodb进阶(3):复制的认证和oplog

本文介绍了MongoDB复制过程中认证的规则,强调了设置相同repl用户的必要性,以确保安全。同时,详细讨论了Oplog的工作原理,包括初始化同步、周期性同步以及可能遇到的问题。当Oplog大小不足时,可能导致从节点与主节点不同步,需要适当配置Oplog大小以减少全量同步。最后,给出了检查复制设置和状态的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

认证

上面的例子中,我们可以看到,如果可以访问到主服务器地址,那么就可以随时给主服务器动态添加一个复制从服务器,这很容易造成问题。所以,应该为复制添加必要的认证。

mongodb的复制认证有固定的规律:

首先,它会去寻找local库中的“repl"名字的用户

其次,如果”repl“用户不存在,则会去取local.system.users集合中的第一个用户当作复制认证用户

明白上面的规律,那么我们应该为主从复制或者副本集中的每一个节点设置相同的repl用户和密码。

use local
db.addUser("repl","password")

oplog

前两篇中的复制,运行过程都是类似的。

第一,初始化完成之后进行同步,同步会把主机上所有的数据复制过来,操作非常耗时。

第二,同步完成之后,会定时去取主机上的oplog,具体来说,oplog是固定大小的,每次oplog满后,都会去往从机映射。

第三,从机得到oplog,对本机同步过来的数据进行操作。操作日志的同步相比第一步的操作会比较省资源。

但是,上面的过程有时会出现问题,比如:oplog设置的值较小,从机还没有进行完上一次操作的映射,而oplog就已经满了。那么运行一段时间,从机就会被主机”落下“,这个时候,从机就会从主机再次进行完整的同步。同步操作非常耗资源,就会影响整体的响应性能。

所以,应该配置oplog为适当的值,尽量避免完全同步操作的发生。

查看复制设置和状态

db.printReplicationInfo()
db.printSlaveReplicationInfo()
修改oplog大小比较麻烦,

1.停掉主服务器,删除掉local数据库文件

2.用新的--oplogSize参数启动mongodb

3.所有从机使用--autoresync重启,或者每台从机手动进行同步。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值