MongoDB 主从复制搭建
主从架构:
mongodb支持传统的master-slave架构。master节点负责数据的读写,slave没有写入权限。没有自动故障转移功能,需要指定master和slave端,不推荐在生产中使用。
主从复制的优点:
-
从服务器可以执行查询工作,降低主服务器访问压力
-
在从服务器执行备份,避免备份期间锁定主服务器的数据
-
当主服务器出现故障时,可以快速切换到从服务器,减少当机时间.
MongoDB支持在多个机器中通过异步复制到底故障转移和实现冗余,多台机器中同一时刻只有一台是用于写操作,这为mongoDB提供了数据一致性的保障.担当Primary角色的机器能把读操作分发给slave机器.
主从架构的配置
环境:CentOS6.5 MongoDB3.4
master配置文件
master.conf
slave配置文件
分别启动master和slave
分别登录master和slave
master上执行show dbs
slave上执行show dbs报错
这个报错是因为默认情况下slave上没有读写权限,可以在slave上执行下面的命令解决
测试:
在主库上创建数据库 masterslavetest 并创建一些测试数据
在两个实例上分别执行 以下命令 可以看到在两个数据库上的数据保持一致,这时在主数据库上执行CRUD等操作时,从库数据依然与主库一致
slave上同样执行上面的命令
测试在slave节点上面添加一条数据看看
可以看到slave节点没有写入权限。
关掉master上的mongodb进程看看
由上面测试可以知道,master节点如果挂了,从节点不能自动接管服务,变成master角色。需要手动修改配置文件,设置为master,重启服务才能进行读写。