Master镜像概述

Master镜像概述

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

在取一个主Master实例的事务快照时,主Master会继续为用户提供服务。在取事务快照以及在后备Master上部署 事务快照时,对主Master的更改也会被记录。在该快照被部署在后备Master上之后,那些更新会被部署以同步后备 Master和主Master。当镜像Master快照部署完成后,变化会应用,二者之间会通过基于WAL日志的流复制的方式 保持同步。Greenplum WAL复制通过walsenderwalreceiver 复制进程保持同步。walsender是主master的进程。walreceiver 是standby master的进程。

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

由于Master不保存用户数据,只有系统目录表被在主Master和后备Master之间同步。当这些表被更新时,复制日志 会捕获变化并流向standby master以保持与其主master的同步。WAL复制期间,所有的数据库更改在应用之前都 会写入复制日志,以保证任何正在进行的操作的数据完整性。

以下是Greenplum数据库如何处理Master故障
  • 如果主master故障,Greenplum数据库系统关闭,master复制进程停止。管理员运行 gpactivatestandby命令将standby master提升为主master。 随着standby master提升为主,复制日志会重建主master最后成功提交的事务的相关日志。 活动standby master接下来会完全成为Greenplum数据库的master,以standby master初始化 时定义的端口号接受外部连接。详情请见恢复故障的Master
  • 如果在主master可用时,standby master故障或不可访问。主master会将数据库变化写入追踪日志, 然后等待standby master恢复后应用到其上面。
以下这些Greenplum系统表包含镜像和复制相关信息。
  • 系统表gp_segment_configuration包含主segment、镜像segment、主master和standby master实例的当前配置 及状态信息。
  • 系统视图gp_stat_replication包含Greenplum数据库master和segment镜像用到的walsender 进程的复制统计信息。