本主题将指导您在一个或多个段或主机出现故障并希望恢复故障段时应采取的措施。你所遵循的恢复路径主要取决于以下三种情况中哪一种适合你的情况:
在这些场景中遵循的步骤可能有所不同,具体取决于:
注:增量恢复只有在将段恢复到当前主机(就地恢复)时才有可能。
所有段都启用镜像。
本节记录了3种不同的段恢复场景的步骤。请按照链接找到指导您完成每个场景的说明。
就地恢复到当前主机时,您可以在增量恢复(默认值)、完全恢复和差异恢复之间进行选择。
1 恢复所有segments,运行gprecoverseg,不带选项:
gprecoverseg
2 恢复部分segments
(1)手动创建recover_config_file文件在您选择的位置,其中每个要恢复的段有自己的行格式
failedAddress|failedPort|failedDataDirectory或failedHostname|failedAddress|failedPort|failedDataDirectory
对于多个段,为要恢复的每个段创建一个新行,为每个段指定主机名(可选)、地址、端口号和数据目录。例如:
failedAddress1|failedPort1|failedDataDirectory1
failedAddress2|failedPort2|failedDataDirectory2
failedAddress3|failedPort3|failedDataDirectory3
或者
failedHostname1|failedAddress1|failedPort1|failedDataDirectory1
failedHostname2|failedAddress2|failedPort2|failedDataDirectory2
failedHostname3|failedAddress3|failedPort3|failedDataDirectory3
(2)或者,使用以下命令生成示例恢复文件;如果需要,您可以编辑生成的文件:
$ gprecoverseg -o /home/gpadmin/recover_config_file
(3)将recover_config_file传递给gprecoverseg -i命令:
$ gprecoverseg -i /home/gpadmin/recover_config_file
1 恢复所有segments,执行gprecoverseg -F:
gprecoverseg -F
2 恢复特定segments:
(1)在您选择的位置手动创建一个recover_config_file文件,其中每个要恢复的段都有自己的行,格式如下:
failedAddress1|failedPort1|failedDataDirectory1<SPACE>failedAddress2|failedPort2|failedDataDirectory2
或者
failedHostname1|failedAddress1|failedPort1|failedDataDirectory1<SPACE>failedHostname2|failedAddress2|failedPort2|failedDataDirectory2
(2)或者,使用以下命令生成一个示例恢复文件,并编辑结果文件以匹配所需的恢复配置:
$ gprecoverseg -o /home/gpadmin/recover_config_file
(3)输入上一步生成的配置文件,执行如下命令:
$ gprecoverseg -i recover_config_file
3 执行“恢复后任务”部分。
按照以下步骤进行差动恢复:
1 执行 gprecoverseg --differential 命令
注:当恢复到集群中的其他主机时,只能进行完全恢复。
按照以下步骤将所有段或部分段恢复到集群中的不同主机:
1 在您选择的位置手动创建一个recover_config_file文件,其中每个要恢复的段都有自己的行,格式如下:
failedAddress|failedPort|failedDataDirectory<SPACE>newAddress|newPort|newDataDirectory
或
failedHostname|failedAddress|failedPort|failedDataDirectory<SPACE>newHostname|newAddress|newPort|newDataDirectory
或者,使用以下命令生成一个示例恢复文件,并编辑结果文件以匹配所需的恢复配置:
$ gprecoverseg -o -p /home/gpadmin/recover_config_file
2 输入上一步生成的配置文件,执行如下命令:
$ gprecoverseg -i recover_config_file
3 执行“恢复后任务”部分。
注:当恢复到新主机时,只能进行完全恢复。
新主机必须:
恢复步骤
1 打开新的主机
2 将所有段恢复到新主机上。
gprecoverseg -p <new_host_name>
您也可以指定多个主机。但是,请确保在一次恢复到两台主机时不会触发双故障场景。
gprecoverseg -p <new_host_name1>,<new_host_name2>
3 执行“恢复后任务”部分。
完成gprecoverseg后,执行以下步骤:
1 验证段状态和首选角色:
select * from gp_segment_configuration
2 监控镜像同步进度:
gpstate - e
3 如果需要,可以执行以下命令将段返回到首选角色:
gprecoverseg - r