MongoDB详解(六)——MongoDB主从同步配置

今天继续给大家介绍Linux运维相关知识,本文主要内容是MongoDB主从同步配置。

一、环境准备

今天,我们来配置一下MongoDB的主从架构,我们使用两台设备,分别作为MongoDB的主库和从库,设备及其IP地址如下所示:
MongoDB主库:192.168.136.11
MongoDB从库:192.168.136.12
我们在配置前,需要进行非常重要的预准备工作,即关闭防火墙以及在主从设备上同步当前时间。否则,任何一个地方出现问题,都有可能导致我们实战失败。
关于MongoDB数据库的安装已经在上文MongoDB详解(四)——MongoDB数据库安装中介绍过,在这里就不过多赘述了。本文在两台设备上都已经成功安装MongoDB数据库的基础上进行。

二、主从数据库配置

接下来,我们就正式开始MongoDB主从数据库的配置。
要开启MongoDB数据库的主从同步功能,我们就不能按照MongoDB默认的方式来进行启动,我们必须要先创建MongoDB数据库的配置文件,在MongoDB数据库启动时,使其按照配置文件的设定来进行启动。
我们创建MongoDB的配置文件为/usr/local/mongodb/mongod.conf,并且在文件中写入如下内容:

bind_ip=0.0.0.0
replSet=pzz

在上述配置中,bind_ip表明了MongoDB数据库启动后监听的IP地址,在默认情况下,MongoDB数据库会只监听127.0.0.1,replSet参数指定了MongoDB数据库的主从同步集群名称。配置完成后的文件如下所示:
在这里插入图片描述
在这里,我们在主库和从库上配置完全相同的配置文件,设置MongoDB数据库按照配置文件启动需要在mongod命令后面加上-f参数来指定启动文件,命令如下所示:

mongod -f /usr/local/mongodb/mongod.conf

我们在MongoDB的主从数据库上同时执行上述命令,使得MongoDB数据库启动。
在MongoDB数据库启动后,我们先登录到主库上,执行命令:

rs.status()

查看当前主从同步集群状态如下所示:
在这里插入图片描述
之后,我们先定义一个有关于主从同步的变量,执行命令:

var config={
    
    _id:"pzz",members:[{
    
    _id:0,host:"192.168.136.11:27017"},{
    
    _id:1,host:"192.168.136.12:27017"}]}

在上述配置中,我们定义了名为config的变量,并且指定了MongoDB主从架构中的主库和从库IP和端口。接下来,我们按照该变量的配置,初始化MongoDB的主从配置,执行命令:

rs.initiate(config)

该命令执行结果如下所示:
在这里插入图片描述
此时,我们再在主库上执行命令:

rs.status()

则该命令执行结果如下所示:
在这里插入图片描述
从上图中可以看出,我们的MongoDB主从同步成功!并且在数据库主从同步成功后,主库前面会出现PRIMARY的提示符。
接下来,我们在从库上,执行命令:

rs.status()

该命令执行结果如下所示:
在这里插入图片描述
从上图中可以看出,在MongoDB数据库主从同步成功后,从库上出现SECONDARY的提示符。

三、效果检验

最后,我们来检验一下我们的MongoDB主从同步的结果。
在主库上,我们来创建数据,过程如下所示:
在这里插入图片描述
接下来,我们来到从库上,来查看我们在主库上创建的结果是否出现在了从库上。
注意,如果我们执行执行查看命令,那么结果如下所示:
在这里插入图片描述
从上图可以看出,我们在从库上查询的操作失败,这是因为在配置了MongoDB的主从同步后,在MongoDB的从库上,没有读和写的权限,因此我们无法查看数据。
我们可以执行命令:

db.getMongo().setSlaveOk()

来开启MongoDB数据库的独权限,然后再次查看MongoDB从库上的内容,结果如下所示:
在这里插入图片描述
从上图中可以看出,我们在MongoDB数据上的数据,已经自动同步给了从库,我们的MongoDB数据库主从同步配置成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/125242592