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 RDS para 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 esta sección se describen las funciones de rds_tools disponibles en RDS para 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
Temas
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, comomd5oscram-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.blue_green_get_status
Comprueba si se ejecutan comandos restringidos durante las operaciones de la implementación azul/verde. Durante las implementaciones azul/verde que utilizan la replicación lógica, no se pueden replicar los comandos del lenguaje de definición de datos (DDL) ni las operaciones con objetos grandes (LO) entre los entornos azul y verde. Si se detecta un comando restringido, reinicie la implementación azul/verde, ya que los datos no se pueden replicar correctamente en el entorno verde. Disponible a partir de la versión 1.3 de la extensión de rds_tools.
Prototipo de función
rds_tools.blue_green_get_status(command_type)
Argumentos
-
command_type: el tipo de comando restringido que se debe comprobar. Los valores válidos son'DDL'(comandos del lenguaje de definición de datos) y'LO'(operaciones con objetos grandes).
Output
Un valor boolean. Devuelve true si se ejecutó un comando restringido del tipo especificado durante la implementación o false si no se detectó dicho comando.
Ejemplo de uso
=> SELECT rds_tools.blue_green_get_status('DDL'); blue_green_get_status ----------------------- f (1 row)
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);"}
rds_tools.rds_version
Muestra la versión del motor de RDS para PostgreSQL de la instancia de base de datos. Esta función lee la información de la versión de los archivos de configuración de la instancia. Disponible a partir de la versión 1.1 de la extensión de rds_tools.
Prototipo de función
rds_tools.rds_version()
Argumentos
Ninguna.
Output
Cadena de caracteres que contiene la versión del motor.
Ejemplo de uso
=> SELECT rds_tools.rds_version(); rds_version ------------- 18.1.R1 (1 row)
rds_tools.logical_seed_lsn
Devuelve el número de secuencia del registro inicial lógico (LSN) que representa el punto en el que la replicación lógica diverge de la instancia de origen. Utilice esta función para administrar las configuraciones de replicación lógica y comprender los puntos de coherencia de la replicación. Disponible a partir de la versión 1.2 de la extensión de rds_tools.
Prototipo de función
rds_tools.logical_seed_lsn()
Argumentos
Ninguna.
Output
Un valor pg_lsn.
Ejemplo de uso
=> SELECT rds_tools.logical_seed_lsn(); logical_seed_lsn ------------------ 0/1677B68 (1 row)
rds_tools.db_instance_identifier
Muestra el identificador de instancias de base de datos. Este identificador se especifica al crear la instancia de base de datos y los servicios de AWS lo utilizan en todo momento para identificar la base de datos. Disponible a partir de la versión 1.2 de la extensión de rds_tools.
Prototipo de función
rds_tools.db_instance_identifier()
Argumentos
Ninguna.
Output
Una cadena de caracteres que contiene el identificador de instancias de base de datos.
Ejemplo de uso
=> SELECT rds_tools.db_instance_identifier(); db_instance_identifier ------------------------ my-postgres-instance (1 row)
rds_tools.dbi_resource_id
Muestra el ID de recurso de la instancia de base de datos (ID de recurso DBI) de la instancia de base de datos. El ID del recurso DBI es un ID único e inmutable que AWS genera para la instancia de base de datos. Permanece coherente durante toda la vida útil de la instancia, incluso si cambia el nombre de la instancia. Utilice este valor para correlacionar la actividad de la base de datos con los registros de AWS CloudTrail u otros servicios de supervisión de AWS. Este valor coincide con el campo DbiResourceId devuelto por el comando de la API de RDS DBInstance. Disponible a partir de la versión 1.4 de la extensión de rds_tools.
Prototipo de función
rds_tools.dbi_resource_id()
Argumentos
Ninguna.
Output
Una cadena de caracteres que contiene el ID de recurso de DBI.
Ejemplo de uso
=> SELECT rds_tools.dbi_resource_id(); dbi_resource_id ----------------------------------- db-ABC123DEF456GHI789JKL012MNO345P (1 row)
rds_tools.multi_az_db_cluster_source_dbi_resource_id
Muestra el ID del recurso DBI de la instancia de origen para una implementación de clúster de base de datos Multi-AZ. Utilice esta función para comprender la relación entre las instancias en una configuración Multi-AZ y para solucionar problemas de replicación o de conmutación por error. Disponible a partir de la versión 1.4 de la extensión de rds_tools.
Prototipo de función
rds_tools.multi_az_db_cluster_source_dbi_resource_id()
Argumentos
Ninguna.
Output
Una cadena de caracteres que contiene el ID de recurso de DBI de origen. Devuelve NULL si la instancia no forma parte de un clúster de base de datos Multi-AZ, si el archivo de configuración no existe o si el campo dbi_resource_id no existe en la configuración.
Ejemplo de uso
=> SELECT rds_tools.multi_az_db_cluster_source_dbi_resource_id(); multi_az_db_cluster_source_dbi_resource_id -------------------------------------------- db-XYZ789ABC123DEF456GHI012JKL345MNO678P (1 row)
rds_tools.show_topology
Muestra los metadatos de topología de los clústeres Multi-AZ de RDS, lo que permite realizar conmutaciones rápidas al proporcionar información de conexión para todas las instancias del clúster. Las bibliotecas de los clientes, como el controlador de contenedor JDBC avanzado de AWS, utilizan esta función de devolución de conjuntos para conectarse directamente a todas las instancias de un clúster Multi-AZ de RDS. Para identificar el ID de recurso de la instancia de escritura, utilice esta función junto con la función rds_tools.multi_az_db_cluster_source_dbi_resource_id. Disponible a partir de la versión 1.4 de la extensión de rds_tools.
Prototipo de función
rds_tools.show_topology([client_identifier])
Argumentos
-
client_identifier(opcional): un identificador de la biblioteca del cliente o el proxy que consulta la topología. Este parámetro es opcional, pero se recomienda, ya que permite a Amazon RDS realizar un seguimiento de los clientes que consultan activamente la topología y proporciona telemetría para dar soporte a otros clientes.
Output
-
id: el ID de recurso de DBI de cada instancia del clúster Multi-AZ de RDS. -
endpoint: el punto de conexión de cada nodo del clúster. -
port: el número de puerto de cada instancia del clúster Multi-AZ de RDS. -
role: el rol del nodo en el clúster, como escritor o lector. -
status: el estado del nodo. -
version: la versión del registro de topología.
Ejemplo de uso
=> SELECT id, endpoint, port, role FROM rds_tools.show_topology('my-jdbc-app'); id | endpoint | port | role -----------------+-----------------------------------------------------------+------+-------- db-IDENTIFIER-1 | somedb-instance-1.aaaaaaaaaaaa.us-west-2.rds.amazonaws.com | 5432 | writer db-IDENTIFIER-2 | somedb-instance-2.aaaaaaaaaaaa.us-west-2.rds.amazonaws.com | 5432 | reader db-IDENTIFIER-3 | somedb-instance-3.aaaaaaaaaaaa.us-west-2.rds.amazonaws.com | 5432 | reader (3 rows)
rds_tools.pg_ls_multixactdir
Muestra el contenido del directorio pg_multixact, que almacena datos de transacciones múltiples en PostgreSQL. Utilice esta función de devolución de conjuntos para supervisar el uso de multixact, solucionar problemas relacionados con los conjuntos multixact y comprender los patrones de almacenamiento de las bases de datos. Disponible a partir de la versión 1.7 de la extensión de rds_tools.
Prototipo de función
rds_tools.pg_ls_multixactdir()
Argumentos
Ninguna.
Output
-
name: el nombre del archivo o directorio. -
size: el tamaño en bytes. -
modification: la marca temporal de la última modificación.
Ejemplo de uso
=> SELECT * FROM rds_tools.pg_ls_multixactdir(); name | size | modification ---------------------------+------+------------------------ pg_multixact/members/ | 4096 | 2026-10-01 19:17:29+00 pg_multixact/members/0000 | 8192 | 2025-08-22 21:53:46+00 pg_multixact/offsets/ | 4096 | 2026-10-01 19:17:29+00 pg_multixact/offsets/0000 | 8192 | 2026-10-01 19:22:38+00 (4 rows)