对暂时性错误进行故障排除

在执行维护、系统遇到硬件或软件错误,或更改服务器的 vCore 数目或服务层级时,会发生暂时性错误。 Azure Database for PostgreSQL 服务具有内置的高可用性,可以自动缓解此类问题。 但是,应用程序会短暂地与服务器断开连接,通常不会超过 60 秒。 某些事件偶尔可能需要更长的时间才能缓解,例如,当某个大型事务导致恢复长时间运行时。

解决暂时性连接问题的步骤

  • 查看 Microsoft Azure 服务仪表板 以了解应用程序报告错误时出现的任何已知中断。
  • 连接到云服务的应用程序(例如 Azure Database for PostgreSQL)应预料到会发生暂时性错误,并实施重试逻辑来处理这些错误,而不是将它们作为应用程序错误展现给用户。 查看 处理 Azure Database for PostgreSQL 的暂时性连接错误 ,了解有关处理暂时性错误的最佳做法和设计准则。
  • 由于服务器即将达到其资源限制,错误可能看起来像是暂时性连接问题。 请参阅 Azure Database for PostgreSQL 中的限制
  • 如果连接问题继续存在,或者应用程序发生错误的持续时间超过 60 秒或在特定的一天中看到错误多次发生,请通过在 Azure 支持 网站上选择“ 获取支持 ”提出 Azure 支持请求。
  • 排查一再出现的错误

    如果应用程序一直无法连接到 Azure Database for PostgreSQL,通常表示下列其中一项出现了问题:

  • 服务器防火墙配置:请确保用于 PostgreSQL 服务器防火墙的 Azure 数据库配置为允许来自客户机(包括代理服务器和网关)的连接。
  • 客户端防火墙配置:客户端的防火墙必须允许连接到数据库服务器。 对于无法连接的服务器 IP 地址和端口,必须允许它们连接,并且必须允许使用某些防火墙的应用程序名称(如 PostgreSQL)。
  • 如果看到“服务器未配置为允许 IPv6 连接”错误,请注意,基本层不支持 VNet 服务终结点。 必须从子网中删除尝试连接到“基本”服务器的 Microsoft.Sql 终结点。
  • 如果看到连接错误“未在其中编译 SSL 支持时,sslmode 值 ‘***’ 无效”,则表示 PostgreSQL 客户端不支持 SSL。 最有可能的是,客户端 libpq 尚未使用“--with-openssl”标志进行编译。 尝试使用带有 SSL 支持的 PostgreSQL 客户端进行连接。
  • 解决永久性连接问题的步骤

  • 设置 防火墙规则 以允许客户端 IP 地址。 (仅出于临时测试目的)使用 0.0.0.0 作为起始 IP 地址,使用 255.255.255.255 作为结束 IP 地址,来设置一个防火墙规则。 这样会使服务器向所有 IP 地址开放。 如果这样可以解决连接性问题,请删除此规则,再针对适当限制的 IP 地址或地址范围创建防火墙规则。
  • 在客户端与 Internet 之间的所有防火墙上,确保为出站连接打开端口 5432。
  • 验证连接字符串和其他连接设置。
  • 在仪表板中检查服务运行状况。 如果你认为发生了区域性服务中断,请参阅 有关使用 Azure Database for PostgreSQL 确保业务连续性的概述 了解恢复到新区域所要执行的步骤。
  • 处理 Azure Database for PostgreSQL 的暂时性连接错误
  •