Master镜像概述

Master镜像概述

可以在单独的主机或者同一台主机上部署Master实例的一个备份或者镜像。当主Master变得无法使用时,备份Master或者后备Master会作为一个温备提供服务。可在主Master在线时从中创建一个后备Master。

在取一个主Master实例的事务快照时,主Master会继续为用户提供服务。在取事务快照以及在后备Master上部署事务快照时,对主Master的更改也会被记录。在该快照被部署在后备Master上之后,那些更新会被部署以同步后备Master和主Master。

一旦主Master和后备Master被同步好,后备Master会通过walsenderwalreceiver复制进程保持与主Master的同步。walreceiver是后备Master进程。walsender进程是主Master进程。这两个进程使用基于预写式日志(WAL)的流复制来保持主Master和后备Master同步。在WAL日志中,所有的修改都在被应用之前先写入到日志来确保任何进程内操作的数据完整性。
注意: WAL日志对Segment镜像还不可用。

由于Master不保存用户数据,只有系统目录表被在主Master和后备Master之间同步。当这些表被更新时,更改会被自动地复制到后备Master来让它保持与主Master的同步。

图 1. Greenplum数据库中的Master镜像

如果主Master失效,复制进程会停止并且管理员可以激活后备Master。在激活后备Master的过程中,复制好的日志可以重构主Master在最后一个成功提交事务时的状态。被激活的后备Master接下来就像Greenplum数据库的Master一样工作,在后备Master初始化时指定的端口上接受连接。