恢复故障的Master
如果主Master故障,则Greenplum数据库系统无法访问并且WAL复制会停止。使用gpactivatestandby来激活备用Master。激活备用Master后,Greenplum数据库将Master主机重建为最后一次成功提交的事务时的状态。
以下步骤假设系统中已经配置了备用master主机。请参阅启用Master镜像。
激活备用Master
- 在备用Master主机上运行gpactivatestandby工具来激活它。例如:
$ gpactivatestandby -d /data/master/gpseg-1
此处 -d 指定要激活的Master主机的数据目录。
激活备用Master后,它成为了Greenplum数据库阵列的活动Master或主Master。
- 上述工具执行完成后,运行带 -b 选项的gpstate ,来显示系统状态的信息汇总:
$ gpstate -b
Master实例状态应为Active。如果没有配置备用Master,该命令会显示备用Master的状态为 No master standby configured。如果配置了备用master,它的状态为Passive。
- 可选:如果在激活先前的备用Master后还没有配置新的备用Master,则可以在活动Master主机运行gpinitstandby,来配置一个新的备用Master。
重要:必须初始化一个新的备用Master,来继续为Master提供镜像。
有关恢复原来Master和备用Master的配置信息,请参阅《在恢复后还原Master镜像》。
在恢复后还原Master镜像
激活备用Master进行故障恢复后,该备用Master会成为主Master。如果后备Master具有与原来的Master主机相同的能力和可靠性,可以继续把该实例当作主Master。
必须初始化一个新的后备Master继续提供Master的镜像,除非在激活之前的备用Master时已经这样做了。 在活动的Master主机上运行gpinitstandby来配置一个新的备用Master。请参阅启用Master镜像。
您可以还原主Master和备用Master到原来的主机上。这个过程会交换主Master主机和后备Master主机的角色, 只有当您强烈希望在恢复之前的相同主机上运行Master实例时,才执行这样的操作。
重要:将主Master和备用Master实例还原到其原来的主机不是联机操作。必须停止Master主机才能执行该操作。
有关Greenplum数据库工具的信息,请参阅《Greenplum数据库工具指南》。
还原Master和备用Master到原来的主机(可选)
- 确保原来的Master主机处于可靠的运行状态;确保已修复之前的故障。
- 在原来的Master主机上,移动或删除数据目录 gpseg-1。以下示例将目录移动到 backup_gpseg-1:
$ mv /data/master/gpseg-1 /data/master/backup_gpseg-1
一旦成功配置备用Master之后,就可删除备份目录。
- 在原来的Master主机上初始化一个备用Master。例如,从当前的Master主机(smdw)运行以下命令:
$ gpinitstandby -s mdw
- 初始化完成后,检查备用Master(mdw)的状态。运行带 -F 选项的gpstate,来检查备用Master的状态:
备用Master的状态应为 passive,并且WAL sender的状态应为 streaming。$ gpstate -f
- 在备用Master上停止Greenplum数据库Master实例。例如:
$ gpstop -m
- 从原来的Master主机mdw运行 gpactivatestandby工具,该主机当前是一个备用Master。例如:
$ gpactivatestandby -d $MASTER_DATA_DIRECTORY
其中 -d 选项指定要激活的主机的数据目录。
- 该工具完成后,运行带-b 选项的 gpstate工具,来显示系统状态的汇总:
$ gpstate -b
Master实例的状态应为 Active。未配置备用Master时,该命令对显示备用Master的状态为:No master standby configured 。
- 在备用Master主机上,移动或删除数据目录gpseg-1。以下示例移动目录:
$ mv /data/master/gpseg-1 /data/master/backup_gpseg-1
成功配置备用Master后,即可删除备份目录。
- 在原来的Master主机上运行Greenplum Database主Master之后,您可以在原来的备用Master上初始化一个备用Master。例如:
$ gpinitstandby -s smdw
命令完成后,您可以运行带 -f 选型的gpstate命令,在主Master主机上令查看备用Master的状态。
检查Master镜像进程的状态(可选)
$ gpstate -f
备用Master的状态应为passive,并且WAL sender的状态应为streaming。
有关 gpstate工具的信息,请参阅《Greenplum数据库工具指南》。