首页
产品
CLup:PostgreSQL高可用集群平台 CMiner: PostgreSQL中的CDC CData高性能数据库云一体机 CBackup数据库备份恢复云平台 CPDA高性能双子星数据库机 CSYun超融合虚拟机产品 ZQPool数据库连接池 ConshGuard数据保护产品
解决方案
数据库专业技术服务全栈式PostgreSQL解决方案Oracle分布式存储化数据库云PolarDB一体化解决方案
文章
客户及伙伴
中启开源
关于我们
公司简介 联系我们
中启开源

情况一

当一台segment机器坏了,然后机器又恢复了,或某一个segment数据库停了。

只需要运行gprecoverseg,就可以把segment恢复过来:

  1. gprecoverseg

运行gprecoverseg之后,需要运行gpstate -m查看同步是否都完成了。

如果一个primary的segment失败后,mirror segment会升级成primary segment,然后集群可以正常运行。原先失败的primary segment的机器恢复后,使用gprecoverseg恢复这个segment后,这个原先的primary segment会变成mirror segment,如果想让原先的失败的primary segment,在恢复后仍然能成为primary segment,则需要使用gprecoverseg -r。

情况二:

如果primary segment和mirror segment都同时失败了,这时集群变的不可用。

恢复的步骤为:

  1. 重启greenplum集群

    1. gpstop -r
  2. 运行gprecoverseg恢复数据库

    1. gprecoverseg
  3. 使用 gpstate -m 查看恢复状态,如果有segment一直处于Change Tracking mode,则运行一个全拷贝的恢复:

    1. gprecoverseg -F

情况三

如果集群没有配置mirror,则只有任意一个segment失败后,集群就会变成不可用。
这时只能等机器恢复后重启集群:

  1. gpstop -r

情况四

当一台机器完全坏了,磁盘上的数据也完全丢了,这时就需要重建一个新的segment了。
使用一台新的机器,上面把greenplum装好,然后使用下面的命令:

  1. gprecoverseg -i recover_config_file

recover_config_file文件内容如下:

  1. filespaceOrder=
  2. sdw5-2:50002:/gpdata/gpseg2 sdw9-2:50002:53002:/gpdata/gpseg2

sdw5-2:50002是原先失败的segment,sdw9-2:50002是新主机。

情况五:

当master主机失败了。
这时我们可以激活standby master。
在standby master主机上执行:

  1. gpactivatestandby -d /data/master/gpseg-1

一旦standby master激活后,它就变成primary master了,如果想在把当前standby master变成primary master后,再把另一台主机加成standby master,则可以用下面的命令:

  1. gpactivatestandby -d /data/master/gpseg-1 -c new_standby_hostname

当然,当激活standby master后,也可以以后再加新的standby master。这与当没有standby master时,加一个standby master的操作一样,都是运行:

  1. gpinitstandby -s new_standby_master_hostname

最后用gpstate -f检查集群的状态。

  1. psql dbname -c 'SELECT * FROM gp_segment_configuration;'