MongoDB 主从复制(主从集群 )

主从复制(主从集群 )

  • 集群:多台计算机同时对外提供服务,从而达到负载均衡,理论概念可以参考《Nginx》。
  • 主从复制是 MongoDB 最常用的复制方式,非常灵活,可用于备份、故障恢复、读扩展 等 。
  • 最基本的设置方式就是建立一个主节点 和 一个及以上的从节点,每个从节点要知道主节点的地址(IP 与 端口)。

MongoDB 主从复制(主从集群 )_第1张图片

  • MongoDB 的复制至少需要两个服务器或者节点,其中一个作为主节点,负责处理客户端请求,其它的都作为从节点,负责映射主节点的数据,始终保持与主节点数据一致。
  • 主节点记录在其上执行的所有操作(增删改查),从节点定期轮询主节点获得这些操作,然后对自己的数据副本执行这些操作,由于和主节点执行了相同的操作,从节点就能保持与主节点的数据同步。
  • 主节点的操作记录成为 oplog(operation log),oplog 存储在特殊的数据库——lcoal oplog 就在其中的 oplog.$main 集合里面,oplog 中的每个文档都代表主节点上执行的一个操作。
  • 需要强调的是 oplog 只记录改变数据库状态的操作,即增删改,而查询不会存储在 oplog 中,因为 oplog 只是作为从节点与主节点保持数据同步的机制。

MongoDB 主从复制(主从集群 )_第2张图片

  • 主节点与多个从节点可以是同一个 MongoDB 上,即通过端口不同,可以新建多个 MongoDB 实例,让其中一个作为主节点,其余作为从节点
  • 主节点与多个从节点也可以在不同的机器上,如 服务器 A 的 MongoDB 作为 主节点,服务器 B、C 上面的 MongoDB 作为从节点。
  • MongoDB 的最新版本已不再推荐此方案,比如安装的 MongoDB 4.0.2 版本这个功能已经没有了

主从复制操作流程

  • 因为 MongoDB 的最新版本已经不再支持主从复制,比如安装的 MongoDB 4.0.2 版本这个功能已经没有了,所以只做简要描述:
  • MongoDB 低版本还是可以使用的,windows 上操作流程如下:
  1. 在任意位置创建两个数据库存储目录,如 D:\MongoDB\Mater 、 D:\MongoDB\Slave,master(主人) 目录作为主节点的数据文件的目录,slave(奴隶) 目录作为从节点的数据文件的目录。(目录名称自定义即可,主从节点需要指定不同的端口进行启动)
  2. 启动主节点:mongod --dbpath D:\MongoDB\Mater --port 27018 --master,(如果是安全认证启动,则再加上 --auth 
  3. 启动从节点:mongod --dbpath D:\MongoDB\Slave --port 27019 --slave --source localhost:27018,( 从节点需要指定主节点的 IP 与端口 
  • 启动成功后就可以连接主节点进行操作(增删改查)了,而这些操作(增删改)会同步到从节点,以保证所有节点数据一致
  • 然后可以对从节点进行查询操作,注意从节点只能查询!

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(MongoDB)