

# Referência das funções do rds\_tools
<a name="PostgreSQL_rds_tools-functions-reference"></a>

A extensão `rds_tools` fornece um conjunto de funções utilitárias para gerenciar e monitorar a instância de banco de dados do Aurora PostgreSQL. Com essas funções, é possível diagnosticar problemas de replicação, vacuum e configuração diretamente por meio de SQL, sem ferramentas de monitoramento separadas. Essas funções complementam as funções padrão do PostgreSQL. Consulte mais informações sobre as funções padrão do PostgreSQL em [Functions e Operators](https://www.postgresql.org/docs/current/functions.html) na documentação do PostgreSQL.

Esta seção descreve as funções `rds_tools` disponíveis no Aurora PostgreSQL. A descrição de cada função indica a versão da extensão `rds_tools` a partir da qual ela ficou disponível.

Para criar a extensão, execute o seguinte comando.

```
postgres=> CREATE EXTENSION rds_tools;
CREATE EXTENSION
```

**Topics**
+ [rds\_tools.role\_password\_encryption\_type](#rds_tools.role_password_encryption_type)
+ [rds\_tools.postgres\_get\_av\_diag](#rds_tools.postgres_get_av_diag)

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

Retorna o método de criptografia de senha usado para cada perfil do banco de dados. Essa função que retorna um conjunto de linhas exclui da saída os perfis de sistema protegidos pelo RDS. Disponível a partir da versão 1.0 da extensão `rds_tools`.

Consulte um exemplo de uso dessa função para verificar a criptografia de senhas antes de migrar usuários do banco de dados para SCRAM em [Usar criptografia de senha SCRAM para PostgreSQL](PostgreSQL_Password_Encryption_configuration.md).

### Protótipo de função
<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>

Nenhum.

### Output
<a name="rds_tools.role_password_encryption_type-output"></a>
+ `rolname`: o nome do perfil do banco de dados.
+ `encryption_type`: o método de criptografia de senha utilizado, como `md5` ou `scram-sha-256`.

### Exemplo 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.postgres\_get\_av\_diag
<a name="rds_tools.postgres_get_av_diag"></a>

Recupera informações de diagnóstico sobre processos de autovacuum que estão bloqueando outros processos ou apresentando atrasos, além de sugestões para resolver cada problema. Para obter resultados precisos, execute essa função que retorna um conjunto de linhas no banco de dados com o ID de transação mais antigo. Consulte mais informações em [Identificar e resolver bloqueadores agressivos de vacuum](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.md).

Disponível a partir da versão 1.9 da extensão `rds_tools`.

### Protótipo de função
<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>

Nenhum.

### Output
<a name="rds_tools.postgres_get_av_diag-output"></a>
+ `blocker`: a categoria da atividade do banco de dados que está bloqueando o vacuum. O valor é um dos seguintes:
  + Instrução ativa
  + Ocioso na transação
  + Transação preparada
  + Slot de replicação lógica
  + Réplica de leitura com slot de replicação física
  + Réplica de leitura com replicação de streaming
  + Tabelas temporárias
+ `database`: o nome do banco de dados em que a atividade bloqueadora está ocorrendo.
+ `blocker_identifier`: o identificador da atividade bloqueadora. O valor depende do tipo de bloqueador:
  + Para uma instrução ativa ou uma sessão ociosa em uma transação, o ID do processo e a instrução SQL correspondente.
  + Para uma transação preparada, o nome da transação preparada.
  + Para uma réplica de leitura, o endereço IP da réplica.
  + Para um slot de replicação, o nome do slot de replicação.
+ `wait_event`: o evento de espera da sessão bloqueadora, quando aplicável.
+ `autovacuum_lagging_by`: o número de transações pelas quais o autovacuum está atrasado para a categoria.
+ `suggestion`: uma sugestão para resolver o bloqueio, incluindo o nome do banco de dados, o ID do processo e a ação a ser executada.
+ `suggested_action`: um array das ações a serem executadas para resolver o bloqueio.

### Exemplo 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);"}
```