MongoDB复制数据库的方法有两种:主从复制和副本集。
主从复制(Master-Slave Replication):主从复制是MongoDB最早支持的复制模式,其中一个节点被指定为主节点(Master),负责处理写操作和查询操作,而其他节点被指定为从节点(Slave),只负责复制主节点上的数据。主节点将写操作的操作日志(Oplog)广播给所有从节点,从节点根据Oplog的内容进行数据复制。主从复制适用于只有一个主节点负责写操作,而读操作可以由多个从节点处理的场景。
副本集(Replica Set):副本集是MongoDB推荐的复制方式,它提供了更高的可用性和自动故障转移功能。一个副本集由多个节点组成,其中一个节点被指定为主节点(Primary),负责处理写操作和查询操作,而其他节点被指定为从节点(Secondary),只负责复制主节点上的数据。副本集中还可以配置仲裁节点(Arbiter),用于在主节点故障时选举新的主节点。副本集中的节点通过心跳机制进行通信,以检测主节点是否可用。如果主节点不可用,副本集会自动选举新的主节点,并将所有从节点切换到新的主节点。副本集适用于需要高可用性和数据一致性的场景。
在MongoDB中,可以使用rs.initiate()
来初始化一个副本集,然后使用rs.add()
来添加其他节点,最后使用rs.status()
来查看副本集的状态。