然后直接关闭Standby所在的主机,模拟Standby故障,通过gpstate命令可以查看到Standby已经连接失败。
同路Master节点,创建一张表,模拟Master节点数据变化。
启动Standby的主机,启动Standby,发现Standby已经自动同步了数据。
如果Standby数据不能自动同步,那么就需要重新初始化Standby的数据,也就是手动全量同步数据,因为Master只存数据库的元数据,通常都很小,这个过程很快即可完成,但是需要将Master数据库启动到Utility模式,否则会遇到下面的错误。
下面模拟Master节点故障,切换到Standby的情况。直接关闭Master节点主机的电源,模拟Master节点故障。可以通过gpactivatestandby命令将Standby切换成Master,这个命令依赖几个环境变量,下面的测试会一一介绍。
MASTER_DATA_DIRECTORY环境变量,在切换Standby时,必须设置MASTER_DATA_DIRECTORY环境变量,直接在命令后面写上直接路径也是不行的,如下:
切换完成,查看数据库的状态。