

# pgactive 스키마 이해
<a name="Appendix.PostgreSQL.CommonDBATasks.pgactive.schema"></a>

pgactive 스키마는 RDS for PostgreSQL에서 액티브-액티브 복제를 관리합니다. 이 스키마에는 복제 구성 및 상태 정보를 저장하는 테이블이 포함되어 있습니다.

**참고**  
pgactive 스키마는 발전 중이며 변경될 수 있습니다. 이러한 테이블의 데이터를 직접 수정하지 마세요.

pgactive 스키마의 키 테이블에는 다음이 포함됩니다.
+ `pgactive_nodes` - 액티브-액티브 복제 그룹의 노드에 대한 정보를 저장합니다.
+ `pgactive_connections` - 각 노드의 연결 세부 정보를 저장합니다.

## pgactive\$1nodes
<a name="Appendix.PostgreSQL.CommonDBATasks.pgactive.schema.nodes"></a>

pgactive\$1nodes는 액티브-액티브 복제 그룹에 참여하는 노드에 대한 정보를 저장합니다.


| 열 | Type | 콜레이션 | Nullable | 기본값 | 
| --- | --- | --- | --- | --- | 
| node\$1sysid | 텍스트 | – | Null이 아님 | – | 
| node\$1timeline | oid | – | Null이 아님 | – | 
| node\$1dboid | oid | – | Null이 아님 | – | 
| node\$1status | char | – | Null이 아님 | – | 
| node\$1name | 텍스트 | – | Null이 아님 | – | 
| node\$1dsn | 텍스트 | – | Null이 아님 | – | 
| node\$1init\$1from\$1dsn | 텍스트 | – | Null이 아님 | – | 
| node\$1read\$1only | 부울 | – | – | false | 
| node\$1seq\$1id | smallint | – | Null이 아님 | – | 

**node\$1sysid**  
`pgactive_create_group` 또는 `pgactive_join_group` 중에 생성된 노드의 고유 ID

**node\$1status**  
노드 준비 상태:  
+ **b** - 설정 시작
+ **i** - 초기화 중
+ **c** - 캐치업
+ **o** - 아웃바운드 슬롯을 만드는 중
+ **r** - 준비됨
+ **k** - 종료됨
이 열은 노드가 연결 또는 연결 해제되었는지 여부를 나타내지 않습니다.

**node\$1name**  
사용자가 제공한 고유 노드 이름입니다.

**node\$1dsn**  
연결 문자열 또는 사용자 매핑 이름입니다.

**node\$1init\$1from\$1dsn**  
이 노드가 생성된 DSN입니다.

## pgactive\$1connection
<a name="Appendix.PostgreSQL.CommonDBATasks.pgactive.schema.connection"></a>

pgactive\$1connections는 각 노드에 대한 연결 세부 정보를 저장합니다.


| 열 | Type | 콜레이션 | Nullable | 기본값 | 
| --- | --- | --- | --- | --- | 
| conn\$1sysid | 텍스트 | 없음 | Null이 아님 | 없음 | 
| conn\$1timeline | oid | 없음 | Null이 아님 | 없음 | 
| conn\$1dboid | oid | 없음 | Null이 아님 | 없음 | 
| conn\$1dsn | 텍스트 | 없음 | Null이 아님 | 없음 | 
| conn\$1apply\$1delay | 정수 | 없음 | 없음 | 없음 | 
| conn\$1replication\$1sets | 텍스트 | 없음 | 없음 | 없음 | 

conn\$1sysid  
이 항목이 참조하는 노드의 노드 식별자입니다.

conn\$1dsn  
pgactive.pgactive\$1nodes `node_dsn`과 동일합니다.

conn\$1apply\$1delay  
설정된 경우 원격 노드에서 각 트랜잭션을 적용하기 전에 기다릴 시간(밀리초)입니다. 주로 디버깅용입니다. null인 경우 글로벌 기본값이 적용됩니다.

## 복제 세트 작업
<a name="Appendix.PostgreSQL.CommonDBATasks.pgactive.replication"></a>

복제 세트는 복제 작업에서 포함하거나 제외할 테이블을 결정합니다. 기본적으로 달리 지정하지 않는 한 다음 함수를 사용하여 모든 테이블이 복제됩니다.
+ `pgactive_exclude_table_replication_set()` - 복제에서 지정된 테이블을 제외합니다.
+ `pgactive_include_table_replication_set()` - 복제에 지정된 테이블을 포함합니다.

**참고**  
복제 세트를 구성하기 전에 다음 사항을 고려하세요.  
`pgactive_create_group()`을 실행한 후 그리고 `pgactive_join_group()` 전에만 테이블 포함 또는 제외를 구성할 수 있습니다.
`pgactive_exclude_table_replication_set()`를 사용한 후에는 `pgactive_include_table_replication_set()`를 사용할 수 없습니다.
`pgactive_include_table_replication_set()`를 사용한 후에는 `pgactive_exclude_table_replication_set()`를 사용할 수 없습니다.

시스템은 초기 구성에 따라 새로 만들어진 테이블을 다르게 처리합니다.
+ 테이블을 제외한 경우: `pgactive_join_group()` 이후에 생성된 모든 새 테이블은 복제에 자동으로 포함됩니다.
+ 테이블을 포함한 경우: `pgactive_join_group()` 이후에 생성된 모든 새 테이블은 복제에서 자동으로 제외됩니다.

특정 테이블에 대한 복제 세트 구성을 보려면 `pgactive.pgactive_get_table_replication_sets()` 함수를 사용합니다.