aurora_replica_status - Amazon Aurora

aurora_replica_status

Muestra el estado de todos los nodos de lector de Aurora PostgreSQL.

Sintaxis

aurora_replica_status()

Argumentos

Ninguno

Tipo de retorno

Registro SETOF con las siguientes columnas:

  • server_id: identificador de la instancia de base de datos.

  • session_id: un identificador único para la sesión actual, devuelto para la instancia principal y las instancias de lectura de la siguiente manera:

    • Para la instancia principal, session_id es siempre `MASTER_SESSION_ID’.

    • Para instancias de lectura, session_id es siempre el UUID (identificador único universal) de la instancia de lector.

  • durable_lsn: número de secuencia de registro (LSN) que se guarda en el almacenamiento.

    • Para el volumen principal, es el LSN duradero del volumen (VDL) principal efectivo actualmente.

    • Para cualquier volumen secundario, es el VDL principal al que se ha aplicado correctamente el secundario.

    nota

    Un número de secuencia de registro (LSN) es un número secuencial único que identifica un registro en el registro de transacciones de la base de datos. Los LSN se ordenan de tal manera que un LSN más grande representa una transacción que ha tenido lugar más tarde en la secuencia.

  • highest_lsn_rcvd: LSN más alto (más reciente) recibido por la instancia de base de datos de la instancia de base de datos de escritor.

  • current_read_lsn: LSN de la instantánea más reciente que se ha aplicado a todos los lectores.

  • cur_replay_latency_in_usec: número de microsegundos que se espera que tarden en reproducir el registro en el secundario.

  • active_txns: número de transacciones activas actualmente.

  • is_current: no se usa.

  • last_transport_error: último código de error de replicación.

  • last_error_timestamp: marca temporal del último error de replicación.

  • last_update_timestamp: marca temporal de la última actualización del estado de la réplica. En Aurora PostgreSQL 13.9, el valor last_update_timestamp de la instancia de base de datos a la que está conectado se establece en NULL.

  • feedback_xmin: la espera activa feedback_xmin de la réplica. ID de transacción activo mínimo (más antiguo) utilizado por la instancia de base de datos.

  • feedback_epoch: fecha de inicio que utiliza la instancia de base de datos cuando genera información en espera activa.

  • replica_lag_in_msec: tiempo en que esa instancia de lector se queda detrás de la instancia de escritor, en milisegundos.

  • log_stream_speed_in_kib_per_second: rendimiento del flujo de registro en kilobytes por segundo.

  • log_buffer_sequence_number: número de secuencia de búfer de registro.

  • oldest_read_view_trx_id: no se usa.

  • oldest_read_view_lsn: LSN más antiguo utilizado por la instancia de base de datos para leer desde el almacenamiento.

  • pending_read_ios: lecturas de la página pendientes que aún deben replicarse.

  • read_ios: número total de lecturas de página en la réplica.

  • iops: no se usa.

  • cpu: uso de CPU del proceso de réplica. Tenga en cuenta que no se trata del uso de CPU por parte de la instancia sino del proceso. Para obtener más información acerca del uso de CPU por parte de la instancia, consulte Métricas de nivel de instancia para Amazon Aurora.

Notas de uso

La función aurora_replica_status devuelve valores del gestor de estado de réplica de un clúster de base de datos de Aurora PostgreSQL. Puede utilizar esta función para obtener información sobre el estado de la replicación en el clúster de base de datos de Aurora PostgreSQL, incluidas las métricas de todas las instancias de base de datos del clúster de base de datos de Aurora. Por ejemplo, puede hacer lo siguiente:

  • Obtenga información sobre el tipo de instancia (escritor, lector) en el clúster de base de datos de Aurora PostgreSQL: puede obtener esta información comprobando los valores de las columnas siguientes:

    • server_id: contiene el nombre de la instancia especificada cuando creó la instancia. En algunos casos, como para la instancia principal (escritor), el nombre se crea normalmente anexando -instance-1 al nombre que cree para su clúster de base de datos de Aurora PostgreSQL.

    • session_id: el campo session_id indica si la instancia es un lector o un escritor. Para una instancia de escritor, session_id está siempre configurado en "MASTER_SESSION_ID". Para una instancia de lector, session_id está configurado con el UUID del lector específico.

  • Diagnosticar problemas de replicación comunes, como un retraso de réplica: el retraso de réplica es el tiempo en milisegundos que la caché de página de una instancia de lector está por detrás del de la instancia de escritor. Este retraso se produce porque los clústeres de Aurora utilizan replicación asíncrona, tal como se describe en Replicación con Amazon Aurora. Se muestra en la columna replica_lag_in_msec en los resultados devueltos por esta función. El retraso también puede producirse cuando se cancela una consulta debido a conflictos con la recuperación en un servidor en espera. Puede comprobar pg_stat_database_conflicts() para verificar que dicho conflicto está provocando el retraso de la réplica (o no). Para obtener más información, consulte el tema sobre el recopilador de estadísticas en la documentación de PostgreSQL. Para obtener más información acerca de la alta disponibilidad y la replicación, consulte la sección de Preguntas frecuentes de Amazon Aurora.

    Amazon CloudWatch almacena los resultados de replica_lag_in_msec a lo largo del tiempo, como la métrica AuroraReplicaLag. Para obtener más información acerca de las métricas de CloudWatch para Aurora, consulte Supervisión de métricas de Amazon Aurora con Amazon CloudWatch.

Para obtener más información sobre la solución de problemas de réplicas de lectura y reinicios de Aurora, consulte la pregunta sobre ¿por qué mi réplica de lectura de Amazon Aurora se quedó atrás y se reinició? en el AWS SupportCenter.

Ejemplos

En el siguiente ejemplo se muestra cómo obtener el estado de replicación de todas las instancias de un clúster de base de datos de Aurora PostgreSQL:

=> SELECT * FROM aurora_replica_status();

En el ejemplo siguiente se muestra la instancia de escritor en el clúster de base de datos de Aurora PostgreSQL docs-lab-apg-main:

=> SELECT server_id, CASE WHEN 'MASTER_SESSION_ID' = session_id THEN 'writer' ELSE 'reader' END AS instance_role FROM aurora_replica_status() WHERE session_id = 'MASTER_SESSION_ID'; server_id | instance_role ------------------------+--------------- db-119-001-instance-01 | writer

En el ejemplo siguiente se enumeran todas las instancias de lector de un clúster:

=> SELECT server_id, CASE WHEN 'MASTER_SESSION_ID' = session_id THEN 'writer' ELSE 'reader' END AS instance_role FROM aurora_replica_status() WHERE session_id <> 'MASTER_SESSION_ID'; server_id | instance_role ------------------------+--------------- db-119-001-instance-02 | reader db-119-001-instance-03 | reader db-119-001-instance-04 | reader db-119-001-instance-05 | reader (4 rows)

En el siguiente ejemplo se enumeran todas las instancias, hasta qué punto está rezagada cada instancia con respecto al escritor y cuánto tiempo ha pasado desde la última actualización:

=> SELECT server_id, CASE WHEN 'MASTER_SESSION_ID' = session_id THEN 'writer' ELSE 'reader' END AS instance_role, replica_lag_in_msec AS replica_lag_ms, round(extract (epoch FROM (SELECT age(clock_timestamp(), last_update_timestamp))) * 1000) AS last_update_age_ms FROM aurora_replica_status() ORDER BY replica_lag_in_msec NULLS FIRST; server_id | instance_role | replica_lag_ms | last_update_age_ms ------------------------+---------------+----------------+-------------------- db-124-001-instance-03 | writer | [NULL] | 1756 db-124-001-instance-01 | reader | 13 | 1756 db-124-001-instance-02 | reader | 13 | 1756 (3 rows)