Replicación con Amazon Aurora PostgreSQL - Amazon Aurora

Replicación con Amazon Aurora PostgreSQL

A continuación encontrará información sobre la replicación con Amazon Aurora PostgreSQL, incluido cómo supervisar la replicación.

Uso de réplicas de Aurora

Una réplica de Aurora es un punto de enlace independiente en un clúster de base de datos Aurora que se utilizan preferentemente para ajustar la escala de las operaciones de lectura e incrementar la disponibilidad. Un clúster de base de datos Aurora puede incluir hasta 15 réplicas de Aurora ubicadas en las zonas de disponibilidad de la región de AWS del clúster de base de datos Aurora.

El volumen del clúster de base de datos consta de varias copias de los datos del clúster de base de datos. No obstante, los datos del volumen del clúster se representan como un único volumen lógico para la instancia de base de datos de escritor principal y para las réplicas de Aurora del clúster de base de datos. Para obtener más información acerca de las réplicas de Aurora, consulte Réplicas de Aurora.

Las réplicas de Aurora funcionan bien para el escalado de lectura porque están totalmente dedicadas a las operaciones de lectura en el volumen del clúster. La instancia de base de datos de escritor administra operaciones de escritura. El volumen del clúster se comparte entre todas las instancias en su clúster de base de datos Aurora PostgreSQL. Por lo tanto, no se necesita trabajo adicional para replicar una copia de los datos de cada réplica Aurora.

Con Aurora PostgreSQL, cuando se elimina una réplica de Aurora, su punto de enlace de instancia se quita inmediatamente y la réplica de Aurora se quita del punto de enlace del lector. Si hay instrucciones que se ejecutan en la réplica de Aurora que se van a eliminar, hay un periodo de gracia de tres minutos. Las instrucciones existentes pueden finalizar correctamente durante el periodo de gracia. Cuando termina dicho periodo, se apaga la réplica de Aurora y se elimina.

Los clústeres de base de datos de Aurora PostgreSQL admiten réplicas de Aurora en diferentes regiones de AWS con la base de datos global de Aurora. Para obtener más información, consulte Uso de bases de datos globales de Amazon Aurora.

nota

Con la característica de disponibilidad de lectura mejorada, si quiere reiniciar las réplicas de Aurora en el clúster de base de datos, debe hacerlo manualmente. Para los clústeres de base de datos creados antes de esta característica, al reiniciar la instancia de base de datos del escritor se reinician automáticamente las réplicas de Aurora. El reinicio automático restablece un punto de entrada que garantiza la coherencia de lectura/escritura en todo el clúster de base de datos.

Mejora de la disponibilidad de lectura de las réplicas de Aurora

Aurora PostgreSQL mejora la disponibilidad de lectura en el clúster de base de datos al atender continuamente las solicitudes de lectura cuando la instancia de base de datos del escritor se reinicia o cuando la réplica de Aurora no puede seguir el ritmo del tráfico de escritura.

La característica de disponibilidad de lectura está disponible de forma predeterminada en las siguientes versiones de Aurora PostgreSQL:

  • Versión 15.2 y versiones posteriores a la 15

  • Versión 14.7 y versiones posteriores a la 14

  • Versión 13.10 y versiones posteriores a la 13

  • Versión 12.14 y versiones posteriores a la 12

La característica de disponibilidad de lectura es compatible con la base de datos global Aurora en las siguientes versiones:

  • Versión 15.4 y versiones posteriores a la 15

  • Versión 14.9 y versiones posteriores a la 14

  • Versión 13.12 y versiones posteriores a la 13

  • Versión 12.16 y versiones posteriores a la 12

Para utilizar la característica de disponibilidad de lectura para un clúster de base de datos creado en una de estas versiones antes de este lanzamiento, reinicie la instancia de escritura del clúster de base de datos.

Al modificar los parámetros estáticos de su clúster de base de datos de Aurora PostgreSQL, debe reiniciar la instancia de escritor para que surtan efecto los cambios de parámetros. Por ejemplo, debe reiniciar la instancia del escritor al establecer el valor de shared_buffers. Gracias a la disponibilidad mejorada de las réplicas de Aurora, el clúster de base de datos mantiene la disponibilidad de lectura durante estos reinicios, lo que reduce el impacto de los cambios en la instancia del escritor. Las instancias del lector no se reinician y siguen respondiendo a las solicitudes de lectura. Para aplicar cambios en los parámetros estáticos, reinicie cada instancia individual del lector.

Una réplica de Aurora de un clúster de base de datos de Aurora PostgreSQL puede recuperarse de errores de replicación, como el reinicio del escritor, la conmutación por error, la replicación lenta y los problemas de red, ya que recupera rápidamente el estado de la base de datos en memoria una vez que se vuelve a conectar con el escritor. Este enfoque permite que las instancias de la réplica de Aurora sean coherentes con las actualizaciones de almacenamiento más recientes mientras la base de datos del cliente aún esté disponible.

Es posible que las transacciones en curso que entren en conflicto con la recuperación de la replicación reciban un error, pero el cliente puede volver a intentar estas transacciones una vez que los lectores alcancen al escritor.

Supervisión de réplicas de Aurora

Puede monitorizar las réplicas de Aurora cuando se recupere de una desconexión del escritor. Utilice las siguientes métricas para consultar la información más reciente sobre la instancia de lector y realizar un seguimiento de las transacciones de solo lectura en curso.

  • La función aurora_replica_status se actualiza para que devuelva la información más actualizada de la instancia de lector cuando aún está conectada. La marca de tiempo de la última actualización en aurora_replica_status siempre está vacía para la fila correspondiente a la instancia de base de datos en la que se ejecuta la consulta. Esto significa que la instancia de lector tiene los datos más recientes.

  • Cuando la réplica de Aurora se desconecta de la instancia de escritor y se vuelve a conectar, se emite el siguiente evento de base de datos:

    Read replica has been disconnected from the writer instance and reconnected.

  • Cuando se cancela una consulta de solo lectura debido a un conflicto de recuperación, es posible que aparezca uno o más de los siguientes mensaje de error en el registro de errores de la base de datos:

    Canceling statement due to conflict with recovery.

    User query may not have access to page data to replica disconnect.

    User query might have tried to access a file that no longer exists.

    When the replica reconnects, you will be able to repeat your command.

Limitaciones

Las siguientes limitaciones se aplican a las réplicas de Aurora con disponibilidad mejorada:

  • Las réplicas de Aurora del clúster de base de datos secundario se pueden reiniciar si los datos no se pueden transmitir desde la instancia de escritor durante la recuperación de la replicación.

  • Las réplicas de Aurora no admiten la recuperación de la replicación en línea si ya hay una en curso y se reiniciará.

  • Las réplicas de Aurora se reiniciarán cuando la instancia de base de datos se acerque al reinicio del ID de la transacción. Para obtener más información acerca del reinicio del ID de la transacción, consulte el tema sobre prevención de fallos del reinicio del ID de la transacción.

  • Las réplicas de Aurora pueden reiniciarse cuando el proceso de replicación está bloqueado bajo determinadas circunstancias.

Monitoreo de replicación de Aurora PostgreSQL

El escalado de lectura y la alta disponibilidad dependen de un tiempo de retardo mínimo. Puede monitorizar el retardo de una réplica de Aurora con respecto a la instancia de base de datos de escritor del clúster de base de datos Aurora PostgreSQL mediante la monitorización de la métrica ReplicaLag de Amazon CloudWatch. Como las réplicas de Aurora leen desde el mismo volumen de clúster que la instancia de base de datos de escritor, la métrica ReplicaLag tiene un significado diferente para un clúster de base de datos Aurora PostgreSQL. La métrica ReplicaLag de una réplica de Aurora indica el retardo de la caché de página de la réplica de Aurora con respecto a la de la instancia de base de datos de escritor.

Para obtener más información acerca de la monitorización de instancias de RDS y de las métricas de CloudWatch, consulte Supervisión de métricas en un clúster de Amazon Aurora.