View a markdown version of this page

referencia de funciones de rds_tools - Amazon Aurora

referencia de funciones de rds_tools

La extensión de rds_tools proporciona un conjunto de funciones de utilidad para administrar y supervisar la instancia de base de datos Aurora PostgreSQL. Con estas funciones, puede diagnosticar los problemas de replicación, vacío y configuración directamente desde SQL, sin necesidad de utilizar herramientas de supervisión independientes. Estas funciones se suman a las funciones estándar de PostgreSQL. Para obtener más información acerca de las funciones de PostgreSQL estándar, consulte Funciones y operadores en la documentación de PostgreSQL.

En esta sección se describen las funciones de rds_tools disponibles en Aurora PostgreSQL. En la descripción de cada función se indica la versión de la extensión de rds_tools en la que estuvo disponible la función.

Para crear la extensión, ejecute el siguiente comando.

postgres=> CREATE EXTENSION rds_tools; CREATE EXTENSION

rds_tools.role_password_encryption_type

Devuelve el método de cifrado por contraseña usado para cada rol de base de datos. Esta función de devolución de conjuntos excluye de la salida los roles del sistema protegidos por RDS. Disponible a partir de la versión 1.0 de la extensión de rds_tools.

Para ver un ejemplo del uso de esta función para revisar el cifrado de contraseñas antes de migrar los usuarios de bases de datos a SCRAM, consulte Uso de SCRAM para el cifrado de contraseñas de PostgreSQL.

Prototipo de función

rds_tools.role_password_encryption_type()

Argumentos

Ninguna.

Output

  • rolname: el nombre del rol de la base de datos.

  • encryption_type: el método de cifrado de contraseñas utilizado, como md5 o scram-sha-256.

Ejemplo de uso

=> SELECT * FROM rds_tools.role_password_encryption_type(); rolname | encryption_type ---------------+----------------- postgres | md5 app_user | md5 readonly_user | scram-sha-256 (3 rows)

rds_tools.postgres_get_av_diag

Recupera información de diagnóstico sobre los procesos de vaciado automático que se bloquean o se retrasan, junto con sugerencias para resolver cada problema. Ejecute esta función de devolución de conjuntos en la base de datos con el ID de transacción más antiguo para obtener resultados precisos. Para obtener más información, consulte Identificación y resolución de los bloqueadores de vacío agresivo.

Disponible a partir de la versión 1.9 de la extensión de rds_tools.

Prototipo de función

rds_tools.postgres_get_av_diag()

Argumentos

Ninguna.

Output

  • blocker: la categoría de la actividad de base de datos que bloquea el vaciado. Puede ser uno de los siguientes:

    • Instrucción activa

    • Inactividad en la transacción

    • Transacción preparada

    • Ranura de replicación lógica

    • Réplica de lectura con ranura de replicación física

    • Réplica de lectura con replicación de streaming

    • Tablas temporales

  • database: el nombre de la base de datos donde se produce la actividad de bloqueo.

  • blocker_identifier: el identificador de la actividad de bloqueo. El valor depende del tipo de bloqueador:

    • Para una instrucción activa o una sesión inactiva durante la transacción, el ID del proceso con su instrucción SQL.

    • Para una transacción preparada, el nombre de la transacción preparada.

    • Para una réplica de lectura, la dirección IP de la réplica.

    • Para una ranura de replicación, el nombre de la ranura de replicación.

  • wait_event: el evento de espera de la sesión de bloqueo, si procede.

  • autovacuum_lagging_by: el número de transacciones que tiene pendiente el vaciado automático según la categoría.

  • suggestion: una sugerencia para resolver el problema, incluyendo el nombre de la base de datos, el ID del proceso y la acción a realizar.

  • suggested_action: una serie de acciones a realizar para resolver el bloqueo.

Ejemplo de uso

=> SELECT * FROM rds_tools.postgres_get_av_diag() ORDER BY autovacuum_lagging_by DESC; blocker | Active statement database | my_database blocker_identifier | SELECT pg_sleep(20000); wait_event | Timeout:PgSleep autovacuum_lagging_by | 568600871 suggestion | Connect to database "my_database", review carefully, and consider terminating the process using suggested_action. suggested_action | {"SELECT pg_terminate_backend(29621);"}