

# rds\_tools 함수 참조
<a name="PostgreSQL_rds_tools-functions-reference"></a>

`rds_tools` 확장은 Aurora PostgreSQL DB 인스턴스를 관리하고 모니터링하기 위한 유틸리티 함수 세트를 제공합니다. 이러한 함수를 사용하면 별도의 모니터링 도구 없이 SQL에서 직접 복제, vacuum 및 구성 문제를 진단할 수 있습니다. 이러한 함수들은 표준 PostgreSQL 함수 외에 추가로 제공되는 것입니다. 표준 PostgreSQL 함수에 대한 자세한 내용은 PostgreSQL 설명서에서 [Functions and Operators](https://www.postgresql.org/docs/current/functions.html)를 참조하세요.

이 섹션에서는 Aurora PostgreSQL에서 사용할 수 있는 `rds_tools` 함수를 설명합니다. 각 함수의 설명에는 해당 함수를 사용할 수 있게 된 `rds_tools` 확장 버전이 명시되어 있습니다.

확장을 생성하려면 다음 명령을 실행합니다.

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

각 데이터베이스 역할에 사용되는 암호 암호화 방법을 반환합니다. 이 집합 반환 함수는 RDS로 보호되는 시스템 역할은 출력에서 제외합니다. `rds_tools` 확장 버전 1.0부터 사용할 수 있습니다.

데이터베이스 사용자를 SCRAM으로 마이그레이션하기 전에 이 함수를 사용하여 암호 암호화 방식을 검토하는 예제는 [SCRAM for PostgreSQL 암호 암호화 사용](PostgreSQL_Password_Encryption_configuration.md) 섹션을 참조하세요.

### 함수 프로토타입
<a name="rds_tools.role_password_encryption_type-prototype"></a>

```
rds_tools.role_password_encryption_type()
```

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

없음.

### 출력
<a name="rds_tools.role_password_encryption_type-output"></a>
+ `rolname` - 데이터베이스 역할의 이름입니다.
+ `encryption_type` - 사용되는 암호 암호화 방법(`md5` 또는 `scram-sha-256`)입니다.

### 사용 예
<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>

차단 상태이거나 지연되고 있는 autovacuum 프로세스에 관한 진단 정보와 각 문제를 해결하기 위한 제안 사항을 반환합니다. 정확한 결과를 얻으려면 트랜잭션 ID가 가장 오래된 데이터베이스에서 이 집합 반환 함수를 실행하세요. 자세한 정보는 [공격적인 vacuum 블로커 식별 및 해결](Appendix.PostgreSQL.CommonDBATasks.Autovacuum_Monitoring.md)을 참조하세요.

`rds_tools` 확장 버전 1.9부터 사용할 수 있습니다.

### 함수 프로토타입
<a name="rds_tools.postgres_get_av_diag-prototype"></a>

```
rds_tools.postgres_get_av_diag()
```

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

없음.

### 출력
<a name="rds_tools.postgres_get_av_diag-output"></a>
+ `blocker` - vacuum을 차단하는 데이터베이스 활동의 범주입니다. 값은 다음 중 하나입니다.
  + 활성 문
  + 트랜잭션의 유휴 상태
  + 준비된 트랜잭션
  + 논리적 복제 슬롯
  + 물리적 복제 슬롯을 사용하는 읽기 전용 복제본
  + 스트리밍 복제를 사용하는 읽기 전용 복제본
  + 임시 테이블
+ `database` - 차단 활동이 발생하고 있는 데이터베이스의 이름입니다.
+ `blocker_identifier` - 차단 활동의 식별자입니다. 이 값은 다음과 같이 차단 요인의 유형에 따라 달라집니다.
  + 실행 중인 문 또는 트랜잭션 내 유휴 세션인 경우, 프로세스 ID와 해당 SQL 문이 표시됩니다.
  + 준비된 트랜잭션인 경우, 준비된 트랜잭션 이름이 표시됩니다.
  + 읽기 복제본인 경우, 해당 복제본의 IP 주소가 표시됩니다.
  + 복제 슬롯인 경우, 복제 슬롯 이름이 표시됩니다.
+ `wait_event` - 해당하는 경우 차단 세션의 대기 이벤트입니다.
+ `autovacuum_lagging_by` - 해당 범주에서 autovacuum이 지연되고 있는 트랜잭션 수입니다.
+ `suggestion` - 데이터베이스 이름, 프로세스 ID, 수행할 조치를 포함하여 차단 요인을 해결하기 위한 제안 사항입니다.
+ `suggested_action` - 차단 요인을 해결하기 위해 수행해야 하는 조치 사항의 배열입니다.

### 사용 예
<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);"}
```