Procedimiento del reenvío de escritura local en Aurora PostgreSQL - Amazon Aurora

Procedimiento del reenvío de escritura local en Aurora PostgreSQL

En las siguientes secciones, puede comprobar si un clúster de base de datos tiene habilitado el reenvío de escritura local, ver las consideraciones de compatibilidad y ver los parámetros configurables y la configuración de la autenticación. Esta información le proporciona los detalles necesarios para utilizar la característica de reenvío de escritura local de Aurora PostgreSQL de forma eficaz.

nota

Cuando se reinicia una instancia del escritor de un clúster que utiliza el reenvío de escritura local, todas las transacciones y consultas activas reenviadas en las instancias del lector que utilizan el reenvío de escritura local se cierran automáticamente. Cuando la instancia del escritor vuelva a estar disponible, podrá volver a intentar estas transacciones.

Comprobación de si un clúster de base de datos tiene habilitado el reenvío de escritura local

Para determinar si puede utilizar el reenvío de escritura local en un clúster de base de datos, confirme que el clúster tenga el atributo LocalWriteForwardingStatus establecido en enabled.

En la AWS Management Console, en la pestaña Configuración de la página de detalles del clúster, verá el estado Habilitado para Reenvío de escritura de réplica de lectura local.

Para ver el estado de la configuración de reenvío de escritura local de todos los clústeres, ejecute el siguiente comando de la AWS CLI.

aws rds describe-db-clusters \ --query '*[].{DBClusterIdentifier:DBClusterIdentifier,LocalWriteForwardingStatus:LocalWriteForwardingStatus}' [ { "LocalWriteForwardingStatus": "enabled", "DBClusterIdentifier": "write-forwarding-test-cluster-1" }, { "LocalWriteForwardingStatus": "disabled", "DBClusterIdentifier": "write-forwarding-test-cluster-2" }, { "LocalWriteForwardingStatus": "requested", "DBClusterIdentifier": "test-global-cluster-2" }, { "LocalWriteForwardingStatus": "null", "DBClusterIdentifier": "aurora-postgresql-v2-cluster" } ]

Un clúster de base de datos puede tener los siguientes valores para LocalWriteForwardingStatus:

  • disabled: el reenvío de escritura local está deshabilitado.

  • disabling: el reenvío de escritura local está en proceso de deshabilitación.

  • enabled: el reenvío de escritura local está habilitado.

  • enabling: el reenvío de escritura local está en proceso de habilitación.

  • null: el reenvío de escritura local no está disponible para este clúster de base de datos.

  • requested: se ha solicitado el reenvío de escritura local, pero aún no está activo.

Configuración de parámetros predeterminada para el reenvío de escritura

Los grupos de parámetros del clúster de Aurora contienen nuevos ajustes para la característica de reenvío de escritura local. Como se trata de parámetros de clúster, todas las instancias de base de datos de cada clúster tienen los mismos valores para estas variables. Los detalles sobre estos parámetros se resumen en la tabla siguiente, con notas de uso después de la tabla.

Parámetro Alcance Tipo Valor predeterminado Valores válidos
apg_write_forward.connect_timeout Sesión segundos 30 0–2147483647
apg_write_forward.consistency_mode Session enum Sesión SESSION, EVENTUAL, GLOBAL, y OFF
apg_write_forward.idle_in_transaction_session_timeout Sesión milisegundos 86400000 0–2147483647
apg_write_forward.idle_session_timeout Sesión milisegundos 300000 0–2147483647
apg_write_forward.max_forwarding_connections_percent Global int 25 1–100

El parámetro apg_write_forward.max_forwarding_connections_percent es el límite superior en slots de conexiones de base de datos que se puede utilizar para gestionar las consultas reenviadas desde los lectores. Se expresa como un porcentaje de la configuración max_connections de la instancia de base de datos del escritor. Por ejemplo, si max_connections es 800 y apg_write_forward.max_forwarding_connections_percent es 10, el escritor permite un máximo de 80 sesiones reenviadas simultáneas. Estas conexiones provienen del mismo grupo de conexiones administrado por la configuración max_connections. Esta configuración solo se aplica a la instancia de base de datos del escritor cuando el clúster tiene habilitado el reenvío de escritura local.

Utilice la siguiente configuración para controlar las solicitudes de reenvío de escritura local:

  • apg_write_forward.consistency_mode: un parámetro de nivel de sesión que controla el grado de coherencia de lectura en una réplica de lectura. Los valores válidos son SESSION, EVENTUAL, GLOBAL o OFF. De forma predeterminada, el valor se establece en SESSION. Si se establece el valor en OFF, se deshabilita el reenvío de escritura local en la sesión. Para obtener más información sobre los niveles de consistencia, consulte Coherencia y aislamiento del reenvío de escritura local en Aurora PostgreSQL. Este parámetro solo es pertinente en instancias del lector que tengan habilitado el reenvío de escritura local.

  • apg_write_forward.connect_timeout: el número máximo de segundos que espera la réplica de lectura al establecer una conexión con la instancia de base de datos del escritor antes de desistir. Un valor de 0 significa esperar indefinidamente.

  • apg_write_forward.idle_in_transaction_session_timeout: el número de milisegundos que la instancia de base de datos del escritor espera a que se produzca actividad en una conexión que se reenvía desde una réplica de lectura que tiene una transacción abierta antes de cerrarla. Si la sesión permanece inactiva en la transacción al finalizar este período, Aurora la termina. Un valor de 0 deshabilita el tiempo de espera.

  • apg_write_forward.idle_session_timeout: el número de milisegundos que la instancia de base de datos del escritor espera a que se produzca actividad en una conexión que se reenvía desde una réplica de lectura antes de cerrarla. Si la sesión permanece inactiva al finalizar este período, Aurora la termina. Un valor de 0 desactiva el tiempo de espera.

rdswriteforwarduser

rdswriteforwarduser es un usuario que utilizaremos para establecer una conexión entre la réplica de lectura y la instancia de base de datos del escritor.

nota

rdswriteforwarduser hereda sus privilegios CONNECT en las bases de datos de los clientes mediante el rol PUBLIC. Si se revocan los privilegios del rol PUBLIC, tendrá que conceder los privilegios CONNECT para las bases de datos a las que deba reenviar las escrituras.