Alta disponibilidad en 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)
La alta disponibilidad (HA) minimiza el tiempo de inactividad de la base de datos al mantener réplicas en espera de todos los nodos de un clúster. Si un nodo deja de funcionar, Azure Cosmos DB for PostgreSQL cambia las conexiones entrantes del nodo con errores a su estado en espera. La conmutación por error se produce en pocos minutos y los nodos promocionados siempre tienen datos actualizados a través de la replicación de transmisión sincrónica por secuencias de PostgreSQL.
Todos los nodos principales de un clúster se aprovisionan en una zona de disponibilidad para mejorar la latencia entre los nodos. La zona de disponibilidad preferida permite colocar todos los nodos de clúster en la misma zona de disponibilidad donde se implementa la aplicación. Esta proximidad podría mejorar aún más el rendimiento al reducir la latencia de la base de datos de la aplicación. Los nodos en espera se aprovisionan en otra zona de disponibilidad. Azure Portal muestra la zona de disponibilidad de cada nodo principal de un clúster. También puede comprobar la zona de disponibilidad de cada nodo de un clúster mediante uno de los métodos mediante programación, como API REST.
Incluso sin la opción de alta disponibilidad habilitada, cada nodo tiene su propio almacenamiento con redundancia local (LRS), con tres réplicas sincrónicas que mantiene el servicio Azure Storage. Si se produce un error en una sola réplica, se detecta mediante dicho servicio y se vuelve a crear de forma transparente. Para obtener información sobre la durabilidad del almacenamiento LRS, consulte las métricas de esta página.
Cuando la alta disponibilidad está habilitada, Azure Cosmos DB for PostgreSQL ejecuta un nodo en espera para cada nodo principal del clúster. Los nodos principal y en espera usan la replicación sincrónica de PostgreSQL. Con esta replicación los clientes pueden tener un tiempo de inactividad predecible si se produce un error en un nodo principal. En pocas palabras, nuestro servicio detecta un error en los nodos principales y conmuta a los nodos en espera sin pérdida de datos.
Para aprovechar la alta disponibilidad en el nodo coordinador, las aplicaciones de base de datos deben detectar y reintentar las conexiones quitadas y las transacciones con errores. Se puede acceder al coordinador recién promocionado con la misma cadena de conexión.
Estados de alta disponibilidad
La recuperación puede dividirse en tres fases: detección, conmutación por error y recuperación completa. Azure Cosmos DB for PostgreSQL realiza comprobaciones periódicas de mantenimiento en todos los nodos y, después de obtener cuatro comprobaciones con errores, determina que un nodo está fuera de servicio. Después, Azure Cosmos DB for PostgreSQL activa un estado de espera a un nodo principal (conmutación por error) y crea un nuevo modo de espera. La replicación de streaming comienza y el nuevo nodo se actualiza. Una vez que se han replicado todos los datos, el nodo ha alcanzado la recuperación completa.
Azure Cosmos DB for PostgreSQL muestra su estado de progreso de conmutación por error en la página de información general de los clústeres de Azure Portal.
- Correcto: la alta disponibilidad está habilitada y el nodo se replica completamente en su modo de espera.
- Conmutación por error en curso: se ha detectado un error en el nodo principal y se ha iniciado una conmutación por error en espera. Este estado pasa a Creando suspensión una vez que se complete la conmutación por error al nodo en espera y el modo de espera se convertirá en el nuevo principal.
- Creando suspensión: el modo en espera anterior se ha promovido a principal y se crea un modo de espera para él. Cuando el nuevo secundario esté listo, este estado pasa a Replicación en curso.
- Replicación en curso: se aprovisiona el nuevo nodo en espera y la sincronización de datos está en curso. Una vez que todos los datos se repliquen en el nuevo modo de espera, se habilita la replicación sincrónica entre los nodos principal y en espera, y el estado de los nodos vuelve a ser Correcto.
- No: la alta disponibilidad no está habilitada en este nodo.
Pasos siguientes
- Obtenga información acerca de cómo habilitar la alta disponibilidad en un clúster.
- Obtenga información sobre zonas de disponibilidad en Azure Cosmos DB para PostgreSQL.