天天看点

MongoDB配置复制集

MongoDB复制是将数据同步在多个服务器的过程。

复制集提供了数据的冗余备份,并在多个服务器上存储数据副本,提高了数据的可用性, 并可以保证数据的安全性。

复制集还允许从硬件故障和服务中断中恢复数据。

保障数据的安全性

数据高可用性 (24*7)

灾难恢复

无需停机维护(如备份,重建索引,压缩)

分布式读取数据

mongodb的复制至少需要两个节点。其中一个是主节点,负责处理客户端请求,其余的都是从节点,负责复制主节点上的数据。

mongodb各个节点常见的搭配方式为:一主一从、一主多从。

主节点记录在其上的所有操作oplog,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。

MongoDB复制结构图如下所示:

MongoDB配置复制集

以上结构图中,客户端从主节点读取数据,在客户端写入数据到主节点时, 主节点与从节点进行数据交互保障数据的一致性。

副本集特征:

N 个节点的集群

任何节点可作为主节点

所有写入操作都在主节点上

自动故障转移

自动恢复

先编辑Mongodb实例1的配置文件,配置replication选项,并复制3份。

重新启动Mongodb实例1

复制3份,并修改配置文件中的port参数配置,dbpath参数配置,logpath参数配置。

修改mongod2.conf 的配置文件参数。

修改mongod3.conf 的配置文件参数。

修改mongod4.conf 的配置文件参数。

可以看到四个实例全部启动。

MongoDB配置复制集
MongoDB配置复制集

初始化配置时保证从节点没有数据,不然数据会丢失。

MongoDB配置复制集
MongoDB配置复制集

启动复制集后,再次通过rs.status()命令查看复制集的完整状态信息。

其中,health为1代表健康,0代表宕机。state为1代表主节点,为2代表从节点。

MongoDB配置复制集
MongoDB配置复制集

配置启动复制集后,可以通过rs.add()和rs.remove()命令方便的添加或删除节点。

MongoDB配置复制集

可以看到27020的节点没有了。

MongoDB复制集可以实现群集的高可用,当其中的主节点出现故障时会自动切换到其他节点。管理员也可以手动进行复制集的主从切换。

通过kill命令可以停止复制集的当前主节点,然后查看主节点会自动切换到其他节点上。

MongoDB配置复制集
MongoDB配置复制集
MongoDB配置复制集