如果主协调器失败,则无法访问Greenplum数据库系统,并且WAL复制停止。使用gpactivatstandby激活备用协调器。激活备用协调器后,Greenplum Database在最后一次成功提交事务时重建协调器主机状态。
这些步骤假定为系统配置了备用协调器主机。
激活standby协调器
1 从正在激活的备用协调器主机运行gpactivatstandby实用程序。例如:
$ export PGPORT=5432
$ gpactivatestandby -d /data/coordinator/gpseg-1
其中-d指定要激活的协调器主机的数据目录。
激活备用协调器后,它将成为Greenplum数据库的活动或主协调器。
注:在执行gpactivatestandby之前,请务必执行gpstate -f命令,确认备用协调器已与当前协调器节点同步。如果已同步,gpstate -f输出的最后一行将类似于:20230607:06:50:06:004205 gpstate:test1-m:gpadmin-[INFO]:——Sync state: Sync
2 实用程序完成后,使用-b选项运行gpstate以显示系统状态摘要:
$ gpstate -b
协调器实例状态应为Active。当没有配置备用协调器时,该命令显示备用协调器状态为No coordinator standby configured。如果配置了新的备用协调器,则其状态为被动。
3 可选:如果在激活先前的备用协调器时还没有这样做,那么可以在活动协调器主机上运行gpinitstandby来配置一个新的备用协调器。
故障恢复后还原协调器间的复制过程
激活备用协调器进行恢复后,备用协调器将成为主协调器。如果该实例具有与原始协调器主机相同的功能和可靠性,则可以继续将其作为主协调器运行。
必须初始化新的备用协调器才能继续提供协调器镜像,除非在激活先前的备用协调器时已经这样做了。在主协调器主机上运行gpinitstandby配置一个新的备用协调器。请参见启用协调器镜像。
您可以在原始主机上恢复主协调器和备用协调器实例。此过程交换主协调器和备用协调器主机的角色,只有当您强烈希望在恢复场景之前占用的相同主机上运行协调器实例时,才应该执行此过程。
注:将主协调器和备用协调器实例恢复到其原始主机并不是在线操作。必须停止协调器主机以执行操作。
故障恢复后还原协调器间的复制过程
1.确保原协调器主机处于可靠运行状态;确保原有故障的原因得到解决。
2.在原始协调器主机上,移动或删除数据目录gpseg-1。下面的例子将目录移动到backup_gpseg-1:
$ mv /data/coordinator/gpseg-1 /data/coordinator/backup_gpseg-1
备节点配置成功后,可以删除备份目录。
3. 在原始协调器主机上初始化备用协调器。例如,在当前协调器主机scdw上运行以下命令:
$ gpinitstandby -s cdw
- 初始化完成后,检查备用协调器cdw的状态。执行带-f选项的gpstate命令,检查备用协调器状态:
$ gpstate -f
备用协调器状态应该是被动的,而WAL发送器状态应该是流的。
在原始主机上恢复协调器和standby实例(可选)
1 在备用协调器上停止Greenplum Database协调器实例。例如:
$ gpstop -m
2 从当前是备用协调器的原始协调器主机cdw运行gpactivatestandby实用程序。例如:
$ gpactivatestandby -d $COORDINATOR_DATA_DIRECTORY
3 实用程序完成后,使用-b选项运行gpstate以显示系统状态摘要:
$ gpstate -b
协调器实例状态应为Active。当没有配置备用协调器时,该命令显示备用协调器状态为No coordinator standby configured。
4 在备用协调器主机上,移动或删除数据目录gpseg-1。下面的例子移动目录:
$ mv /data/coordinator/gpseg-1 /data//backup_gpseg-1
5 在原始协调器主机运行主Greenplum Database协调器之后,您可以在原始备用协调器主机上初始化备用协调器。例如:
$ gpinitstandby -s SCDW
命令执行完毕后,可以在主协调器主机上运行gpstate -f命令,查看备用协调器的状态。
检查协调器复制状态
可以使用-f选项运行gpstate实用程序,以显示备用协调器主机的详细信息。
$ gpstate -f
备用协调器状态应该是被动的,而WAL发送器状态应该是流的。