Solución de problemas de conexión a Azure Cosmos DB for PostgreSQL

SE APLICA A: Azure Cosmos DB for PostgreSQL (con tecnología de la extensión de base de datos de Citus en PostgreSQL)

Los problemas de conexión pueden tener varias causas, por ejemplo:

  • Configuración de firewall
  • Tiempo de espera de conexión agotado
  • Información de inicio de sesión incorrecta
  • Se ha alcanzado el límite de conexiones para el clúster
  • Problemas con la infraestructura del servicio
  • Mantenimiento de servicio
  • Conmutación por error del nodo de coordinación al nuevo hardware

Por lo general, los problemas de conexión a Azure Cosmos DB for PostgreSQL se pueden clasificar de la siguiente manera:

  • Errores transitorios (corta duración o intermitentes)
  • Errores persistentes o no transitorios (errores que se repiten con frecuencia)

Solución de problemas de errores transitorios

Los errores transitorios se producen por diversos motivos. Entre los más comunes se incluyen el mantenimiento del sistema, un error con hardware o software y las actualizaciones del núcleo virtual del nodo de coordinación.

La habilitación de la alta disponibilidad para los nodos de clúster puede mitigar automáticamente estos tipos de problemas. Sin embargo, la aplicación debe estar preparada para perder su conexión brevemente. Además, otros eventos pueden tardar más tiempo en mitigarse; por ejemplo, cuando una transacción grande requiere una recuperación de larga duración.

Pasos para resolver los problemas de conectividad transitorios

  1. Compruebe el panel de servicios de Microsoft Azure para comprobar si se produjeron interrupciones durante el tiempo en el que la aplicación informó de los errores.
  2. Las aplicaciones que se conectan a un servicio en la nube, como Azure Cosmos DB for PostgreSQL, deben esperar errores transitorios y reaccionar correctamente. Por ejemplo, las aplicaciones deben implementar una lógica de reintentos para controlar estos errores en lugar de mostrarlos como errores de aplicación para los usuarios.
  3. A medida que el clúster se acerca a sus límites de recursos, los errores pueden parecer problemas de conectividad transitorios. Aumentar la RAM del nodo o agregar nodos de trabajo y reequilibrar los datos puede resultar de ayuda.
  4. Si los problemas de conectividad continúan, superan los 60 segundos, o se producen más de una vez al día, realice una solicitud de soporte técnico de Azure; para ello, seleccione Obtener soporte en el sitio de soporte técnico de Azure.

Solución de problemas de los errores persistentes

Si la aplicación no se puede conectar de manera persistente a Azure Cosmos DB for PostgreSQL, seguramente se deba a una configuración incorrecta del firewall o un error del usuario.

  • Configuración del firewall del nodo de coordinación: Asegúrese de que el firewall del servidor está configurado para permitir las conexiones desde el cliente, entre las que se incluyen las puertas de enlace y los servidores proxy.
  • Configuración del firewall del cliente: El firewall en el cliente debe permitir las conexiones con el servidor de bases de datos. Algunos firewalls requieren no solo permitir la aplicación por nombre, sino permitir además las direcciones IP y los puertos del servidor.
  • Error del usuario: compruebe de nuevo la cadena de conexión. Puede que haya escrito incorrectamente parámetros como el del nombre del servidor. Puede encontrar cadenas de conexión para diversas plataformas de lenguaje y psql en Azure Portal. Vaya a la página Cadenas de conexión del clúster. Tenga en cuenta también que los clústeres solo tienen una base de datos y su nombre predefinido es citus.

Pasos para resolver los problemas de conectividad persistentes

  1. Configure las reglas de firewall para permitir la dirección IP del cliente. Con fines temporales de prueba solo, configure una regla de firewall empleando 0.0.0.0 como dirección IP inicial y 255.255.255.255 como dirección IP final. Esta regla abre el servidor a todas las direcciones IP. Si la regla resuelve el problema de conectividad, quítela y cree una regla de firewall para una dirección IP o intervalo de direcciones apropiadamente limitados.
  2. En todos los firewalls entre el cliente e Internet, asegúrese de que el puerto 5432 está abierto para las conexiones salientes (y el 6432 si se usa agrupación de conexiones).
  3. Compruebe la cadena de conexión y otras opciones de conexión.
  4. Compruebe el estado del servicio en el panel.

Pasos siguientes