

# referencia de funciones de rds\_tools
<a name="PostgreSQL_rds_tools-functions-reference"></a>

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](https://www.postgresql.org/docs/current/functions.html) en la documentación de PostgreSQL.

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
```

**Topics**
+ [rds\_tools.role\_password\_encryption\_type](#rds_tools.role_password_encryption_type)
+ [rds\_tools.blue\_green\_get\_status](#rds_tools.blue_green_get_status)
+ [rds\_tools.postgres\_get\_av\_diag](#rds_tools.postgres_get_av_diag)
+ [rds\_tools.rds\_version](#rds_tools.rds_version)
+ [rds\_tools.logical\_seed\_lsn](#rds_tools.logical_seed_lsn)
+ [rds\_tools.db\_instance\_identifier](#rds_tools.db_instance_identifier)
+ [rds\_tools.dbi\_resource\_id](#rds_tools.dbi_resource_id)
+ [rds\_tools.multi\_az\_db\_cluster\_source\_dbi\_resource\_id](#rds_tools.multi_az_db_cluster_source_dbi_resource_id)
+ [rds\_tools.show\_topology](#rds_tools.show_topology)
+ [rds\_tools.pg\_ls\_multixactdir](#rds_tools.pg_ls_multixactdir)

## rds\_tools.role\_password\_encryption\_type
<a name="rds_tools.role_password_encryption_type"></a>

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](PostgreSQL_Password_Encryption_configuration.md).

### Prototipo de función
<a name="rds_tools.role_password_encryption_type-prototype"></a>

```
rds_tools.role_password_encryption_type()
```

### Argumentos
<a name="rds_tools.role_password_encryption_type-arguments"></a>

Ninguna.

### Output
<a name="rds_tools.role_password_encryption_type-output"></a>
+ `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
<a name="rds_tools.role_password_encryption_type-example"></a>

```
=> 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
<a name="rds_tools.blue_green_get_status"></a>

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
<a name="rds_tools.blue_green_get_status-prototype"></a>

```
rds_tools.blue_green_get_status(command_type)
```

### Argumentos
<a name="rds_tools.blue_green_get_status-arguments"></a>
+ `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
<a name="rds_tools.blue_green_get_status-output"></a>

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
<a name="rds_tools.blue_green_get_status-example"></a>

```
=> SELECT rds_tools.blue_green_get_status('DDL');
 blue_green_get_status
-----------------------
 f
(1 row)
```

## rds\_tools.postgres\_get\_av\_diag
<a name="rds_tools.postgres_get_av_diag"></a>

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](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.md).

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

### Prototipo de función
<a name="rds_tools.postgres_get_av_diag-prototype"></a>

```
rds_tools.postgres_get_av_diag()
```

### Argumentos
<a name="rds_tools.postgres_get_av_diag-arguments"></a>

Ninguna.

### Output
<a name="rds_tools.postgres_get_av_diag-output"></a>
+ `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
<a name="rds_tools.postgres_get_av_diag-example"></a>

```
=> 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
<a name="rds_tools.rds_version"></a>

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
<a name="rds_tools.rds_version-prototype"></a>

```
rds_tools.rds_version()
```

### Argumentos
<a name="rds_tools.rds_version-arguments"></a>

Ninguna.

### Output
<a name="rds_tools.rds_version-output"></a>

Cadena de caracteres que contiene la versión del motor.

### Ejemplo de uso
<a name="rds_tools.rds_version-example"></a>

```
=> SELECT rds_tools.rds_version();
 rds_version
-------------
 18.1.R1
(1 row)
```

## rds\_tools.logical\_seed\_lsn
<a name="rds_tools.logical_seed_lsn"></a>

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
<a name="rds_tools.logical_seed_lsn-prototype"></a>

```
rds_tools.logical_seed_lsn()
```

### Argumentos
<a name="rds_tools.logical_seed_lsn-arguments"></a>

Ninguna.

### Output
<a name="rds_tools.logical_seed_lsn-output"></a>

Un valor `pg_lsn`.

### Ejemplo de uso
<a name="rds_tools.logical_seed_lsn-example"></a>

```
=> SELECT rds_tools.logical_seed_lsn();
 logical_seed_lsn
------------------
 0/1677B68
(1 row)
```

## rds\_tools.db\_instance\_identifier
<a name="rds_tools.db_instance_identifier"></a>

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
<a name="rds_tools.db_instance_identifier-prototype"></a>

```
rds_tools.db_instance_identifier()
```

### Argumentos
<a name="rds_tools.db_instance_identifier-arguments"></a>

Ninguna.

### Output
<a name="rds_tools.db_instance_identifier-output"></a>

Una cadena de caracteres que contiene el identificador de instancias de base de datos.

### Ejemplo de uso
<a name="rds_tools.db_instance_identifier-example"></a>

```
=> SELECT rds_tools.db_instance_identifier();
 db_instance_identifier
------------------------
 my-postgres-instance
(1 row)
```

## rds\_tools.dbi\_resource\_id
<a name="rds_tools.dbi_resource_id"></a>

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](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DBInstance.html). Disponible a partir de la versión 1.4 de la extensión de `rds_tools`.

### Prototipo de función
<a name="rds_tools.dbi_resource_id-prototype"></a>

```
rds_tools.dbi_resource_id()
```

### Argumentos
<a name="rds_tools.dbi_resource_id-arguments"></a>

Ninguna.

### Output
<a name="rds_tools.dbi_resource_id-output"></a>

Una cadena de caracteres que contiene el ID de recurso de DBI.

### Ejemplo de uso
<a name="rds_tools.dbi_resource_id-example"></a>

```
=> SELECT rds_tools.dbi_resource_id();
          dbi_resource_id
-----------------------------------
 db-ABC123DEF456GHI789JKL012MNO345P
(1 row)
```

## rds\_tools.multi\_az\_db\_cluster\_source\_dbi\_resource\_id
<a name="rds_tools.multi_az_db_cluster_source_dbi_resource_id"></a>

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
<a name="rds_tools.multi_az_db_cluster_source_dbi_resource_id-prototype"></a>

```
rds_tools.multi_az_db_cluster_source_dbi_resource_id()
```

### Argumentos
<a name="rds_tools.multi_az_db_cluster_source_dbi_resource_id-arguments"></a>

Ninguna.

### Output
<a name="rds_tools.multi_az_db_cluster_source_dbi_resource_id-output"></a>

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
<a name="rds_tools.multi_az_db_cluster_source_dbi_resource_id-example"></a>

```
=> 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
<a name="rds_tools.show_topology"></a>

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
<a name="rds_tools.show_topology-prototype"></a>

```
rds_tools.show_topology([client_identifier])
```

### Argumentos
<a name="rds_tools.show_topology-arguments"></a>
+ `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
<a name="rds_tools.show_topology-output"></a>
+ `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
<a name="rds_tools.show_topology-example"></a>

```
=> 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
<a name="rds_tools.pg_ls_multixactdir"></a>

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
<a name="rds_tools.pg_ls_multixactdir-prototype"></a>

```
rds_tools.pg_ls_multixactdir()
```

### Argumentos
<a name="rds_tools.pg_ls_multixactdir-arguments"></a>

Ninguna.

### Output
<a name="rds_tools.pg_ls_multixactdir-output"></a>
+ `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
<a name="rds_tools.pg_ls_multixactdir-example"></a>

```
=> 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)
```