处理 PostgreSQL 数据库故障切换

Edge for Private Cloud v. 4.16.05

在 PostgreSQL 数据库故障切换期间执行以下操作:

  1. 如果当前主实例仍在运行,则停止 apigee-postgresql
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  2. 转到备用节点并调用以下命令,使其成为主节点:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-postgresql promotion-standby-to-master IPorDNSofOldMaster

如果旧主实例在将来某个时间恢复过来,请将其设为备用节点:

  1. 在当前主实例上,修改配置文件以设置:
    PG_MASTER=IPorDNSofNewMaster
    PG_STANDBY=IPorDNSofOldMaster
  2. 在新主实例上启用复制功能:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-master -f configFIle
  3. 在旧主实例上,修改配置文件以设置:
    PG_MASTER=IPorDNSofNewMaster
    PG_STANDBY=IPorDNSofOldMaster
  4. 停止旧主实例上的 apigee-postgresql
    > /opt/apigee/apigee-service/bin/apigee-service apigee-postgresql stop
  5. 在旧主实例上,清理所有旧 Postgres 数据:
    > rm -rf /<inst_root>/apigee/data/apigee-postgresql/

    注意:如有必要,您可以在删除这些数据之前进行备份。
  6. 将旧主实例配置为备用实例:
    > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-postgresql setup-replication-on-standby -f configFile
  7. 复制完成后,通过在两台设备上发出以下脚本来验证复制状态。系统会在两台服务器上显示相同的结果,以确保成功复制:
    1. 在主节点上运行以下命令:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-master

      验证其声称是主实例。
    2. 在备用节点上:
      > /<inst_root>/apigee/apigee-service/bin/apigee-service apigee-postgresql postgres-check-standby

      验证它是否显示备用。