

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 네이티브 PostgreSQL 클라이언트 애플리케이션
<a name="native-postgre-sql-client-applications"></a>

[pg\_dump](https://www.postgresql.org/docs/current/app-pgdump.html), [pg\_dumpall](https://www.postgresql.org/docs/current/app-pg-dumpall.html) 및 [pg\_restore](https://www.postgresql.org/docs/current/app-pgrestore.html)를 포함한 오프라인 마이그레이션에 대해 네이티브 PostgreSQL 클라이언트 애플리케이션을 사용할 수 있습니다. pg\_dump 유틸리티는 PostgreSQL 데이터베이스 백업을 위한 기능입니다. pg\_dump를 사용하여 일관된 백업을 만들고 단일 데이터베이스를 백업할 수 있습니다. 클러스터의 모든 데이터베이스(예: 역할 및 테이블스페이스)에 공통된 글로벌 객체를 백업하려면 pg\_dumpall을 사용합니다. 수퍼유저만 전체 덤프를 수행할 수 있으므로 pg\_dump 유틸리티를 수퍼유저로 실행하는 것이 좋습니다. 또한 pg\_dump 유틸리티는 작업 옵션 사용(병렬로 덤프 실행) 및 백업을 수행할 때 디렉터리 형식을 포함하여 백업 프로세스를 최적화하는 옵션을 제공합니다. pg\_dump에 대한 자세한 내용은 PostgreSQL 설명서의 [pg\_dump](https://www.postgresql.org/docs/current/app-pgdump.html) 페이지에서 *Options* 섹션을 참조하세요.

pg\_restore 유틸리티는 pg\_dump에서 생된한 아카이브에서 PostgreSQL 데이터베이스를 복원하기 위한 기능입니다. 사용자 지정 또는 디렉터리 형식으로 pg\_dump를 사용하는 경우 병렬 모드에서 pg\_restore 유틸리티를 실행할 수 있습니다. pg\_restore의 성능을 높이기 위해 다음 파라미터를 조정할 수 있습니다.
+ 요구 사항에 맞게 `shared_buffers`를 설정하고 인덱스 생성 속도를 높이도록 `maintenance_work_mem`를 높입니다.
+ 광범위한 로깅, autovacuum 대몬 및 `full_page_writes`를 끕니다.
+ (선택 사항) 스키마를 백업 및 복원하고 데이터 전용 덤프 및 복원을 사용합니다. 이 방법을 사용하는 경우 `disable-triggers` 옵션을 사용하여 성능을 개선할 수 있습니다.

대상 EC2 인스턴스에서 pg\_dump 및 pg\_restore를 실행할 수 있습니다. 속도와 성능을 높이려면 [AWS Direct Connect](https://docs.aws.amazon.com/directconnect/latest/UserGuide/Welcome.html)를 사용하는 것이 좋습니다. 마지막으로 백업 파일을 위한 스토리지가 충분한지 확인합니다.

## 아키텍처
<a name="architecture-native-postgresql-client-apps"></a>

다음 다이어그램에서는 네이티브 PostgreSQL 클라이언트 애플리케이션을 사용하여 온프레미스 PostgreSQL 데이터베이스를 AWS 클라우드로 마이그레이션하기 위한 아키텍처를 보여줍니다.

![네이티브 PostgreSQL 클라이언트 애플리케이션 아키텍처](http://docs.aws.amazon.com/ko_kr/prescriptive-guidance/latest/migration-databases-postgresql-ec2/images/native-client-applications-architecture.png)


이 다이어그램은 다음 워크플로를 보여줍니다.

1. pg\_dump를 사용하여 백업을 수행하세요.

1. EC2 인스턴스를 생성하고 인스턴스에 PostgreSQL을 설치하세요.

1. 덤프 파일을 Amazon EC2에 복사하세요.

1. pg\_restore를 사용하여 백업 파일을 복원하세요.

## 제한 사항
<a name="limitations-native-postgresql-client-apps"></a>

마이그레이션을 시작하기 전에 네이티브 PostgreSQL 클라이언트 애플리케이션을 사용할 경우 다음과 같은 제한 사항을 고려하는 것이 좋습니다.
+ 덤프 및 복원은 대규모 데이터베이스(즉, 300GB보다 큰 데이터베이스)에 시간이 많이 걸릴 수 있습니다.
+ 이 옵션을 사용하려면 전체 데이터베이스 가동 중지 시간이 필요합니다.
+ 백업을 수행한 다음 Amazon EC2에 백업을 복사하려면 서버에 상당한 양의 디스크 공간이 필요합니다.