PostgreSQL 데이터베이스를 전송하도록 설정 - Amazon Relational Database Service

PostgreSQL 데이터베이스를 전송하도록 설정

시작하기 전에 RDS for PostgreSQL DB 인스턴스가 다음 요구 사항을 충족하는지 확인하세요.

  • 소스 및 대상 RDS for PostgreSQL DB 인스턴스는 동일한 버전의 PostgreSQL을 실행해야 합니다.

  • 대상 DB에는 전송할 소스 DB와 같은 이름의 데이터베이스를 가질 수 없습니다.

  • 전송을 실행하는 데 사용하는 계정은 소스 DB와 대상 DB 모두에 대한 rds_superuser 권한이 필요합니다.

  • 소스 DB 인스턴스의 보안 그룹은 대상 DB 인스턴스의 인바운드 액세스를 허용해야 합니다. 소스 및 대상 DB 인스턴스가 VPC에 있는 경우 이미 해당 경우일 수 있습니다. 보안 그룹에 대한 자세한 내용은 보안 그룹을 통한 액세스 제어 섹션을 참조하세요.

소스 DB 인스턴스에서 대상 DB 인스턴스로 데이터베이스를 전송하려면 각 인스턴스와 연결된 DB 파라미터 그룹을 몇 번 변경해야 합니다. 즉, 소스 DB 인스턴스에 대한 사용자 지정 DB 파라미터 그룹을 생성하고 대상 DB 인스턴스에 대한 사용자 지정 DB 파라미터 그룹을 생성해야 합니다.

참고

DB 인스턴스가 이미 사용자 지정 DB 파라미터 그룹을 사용하여 구성된 경우 다음 절차의 2단계부터 시작할 수 있습니다.

데이터베이스 전송을 위한 사용자 지정 DB 그룹 파라미터 구성

다음 단계에서는 rds_superuser 권한을 가진 계정을 사용하세요.

  1. 소스 및 대상 DB 인스턴스가 기본 DB 파라미터 그룹을 사용하는 경우 인스턴스에 적합한 버전을 사용하여 사용자 지정 DB 파라미터 그룹을 생성해야 합니다. 이렇게 하면 여러 파라미터의 값을 변경할 수 있습니다. 자세한 내용은 Amazon RDS의 파라미터 그룹 단원을 참조하십시오.

  2. 사용자 지정 DB 파라미터 그룹에서 다음 파라미터 값을 변경합니다.

    • shared_preload_libraries - 라이브러리 목록에 pg_transport를 추가합니다.

    • pg_transport.num_workers - 기본값은 3입니다. 데이터베이스에 필요한 경우 이 값을 늘리거나 줄입니다. 200GB 데이터베이스의 경우 8이하의 값이 좋습니다. 이 파라미터의 기본값을 늘리면 max_worker_processes 값도 늘려야 합니다.

    • pg_transport.work_mem - 기본값은 PostgreSQL 버전에 따라 128MB 또는 256MB입니다. 기본 설정은 일반적으로 변경되지 않을 수 있습니다.

    • max_worker_processes - 이 파라미터의 값은 다음 계산을 사용하여 설정해야 합니다.

      (3 * pg_transport.num_workers) + 9

      전송과 관련된 다양한 백그라운드 작업자 프로세스를 처리하기 위해 대상에서 필요한 값입니다. max_worker_processes,에 관한 자세한 내용은 PostgreSQL 문서에서 리소스 소비를 참조하세요.

    pg_transport 파라미터에 대한 자세한 내용은 전송 가능한 데이터베이스 파라미터 참조 단원을 참조하십시오.

  3. 소스 RDS for PostgreSQL DB 인스턴스 및 대상 인스턴스를 재부팅하면 파라미터 설정이 적용됩니다.

  4. RDS for PostgreSQL 소스 DB 인스턴스에 연결합니다.

    psql --host=source-instance.111122223333.aws-region.rds.amazonaws.com --port=5432 --username=postgres --password
  5. DB 인스턴스의 퍼블릭 스키마에서 불필요한 확장을 제거합니다. 실제 전송 작업 중에만 pg_transport 확장이 허용됩니다.

  6. 다음과 같이 pg_transport 확장을 설치합니다.

    postgres=> CREATE EXTENSION pg_transport; CREATE EXTENSION
  7. RDS for PostgreSQL 대상 DB 인스턴스에 연결합니다. 불필요한 확장을 제거한 다음 pg_transport 확장을 설치합니다.

    postgres=> CREATE EXTENSION pg_transport; CREATE EXTENSION