罗名岳
发布于

记一次误删master元数据后的恢复操作

测试环境中的/data1/hawq/masterdd 目录被清空,数据库无法正常使用。

首先在 master 节点上停止数据库服务,如果某些服务无法停止,则去对应机器上使用 kill -9 杀掉服务进程

hawq stop cluster -M immediate

之后去 standby 节点,尝试将 standby 节点激活为 master 节点

hawq activate standby

此时原先的 standby 变为 master 节点,这时的集群已经没有了 standby 节点,我们去将原先的 master 节点上执行如下命令,将其变成 standby 节点:

hawq init standby

等待执行完成,去数据库中执行如下查询,确保集群状态正常

select * from gp_segment_configuration;

为了恢复到和出问题前的集群状态,首先停止集群服务,然后在当前的 standby(原来的 master)节点上执行 activate 命令将其激活为 master

hawq activate standby

执行完成后,集群再次变成只有 master 节点没有 standby 节点的状态,我们继续在原 standby 节点上执行 init 命令将其初始化为 standby

hawq init standby

等待命令执行完成,集群恢复到出问题前的状态。

评论
    test