Amazon RDS에서 PostgreSQL로 데이터 가져오기 - Amazon Relational Database Service

Amazon RDS에서 PostgreSQL로 데이터 가져오기

Amazon RDS로 이동하려는 기존 PostgreSQL 배포가 있다고 가정하세요. 작업의 복잡성은 데이터베이스의 크기와 전송하는 데이터베이스 객체 유형에 따라 다릅니다. 예를 들어 프로시저 및 트리거와 함께 기가바이트 규모의 데이터세트가 데이터베이스에 저장되어 있다고 가정하겠습니다. 이러한 데이터베이스는 트리거나 프로시저 없이 근소한 메가바이트 규모의 테스트 데이터가 저장된 데이터베이스보다 더욱 복잡할 가능성이 높습니다.

다음과 같은 경우에는 기본 PostgreSQL 데이터베이스 마이그레이션 도구를 사용하는 것이 좋습니다.

  • 같은 유형의 마이그레이션을 수행합니다. 이 경우 대상 데이터베이스와 동일한 데이터베이스 엔진으로 데이터베이스에서 마이그레이션합니다.

  • 전체 데이터베이스를 마이그레이션합니다.

  • 기본 도구를 사용하여 최소한의 가동 중지로 시스템을 마이그레이션할 수 있습니다.

대부분의 다른 경우에는 AWS Database Migration Service(AWS DMS)를 사용하여 데이터베이스 마이그레이션을 수행하는 것이 최선의 방식입니다. AWS DMS는 가동 중지 없이 데이터베이스를 마이그레이션할 수 있으며 대부분의 데이터베이스 엔진에서는 대상 데이터베이스로 전환할 준비가 될 때까지 지속적으로 복제를 계속할 수 있습니다. AWS DMS를 사용하여 동일하거나 다른 데이터베이스 엔진으로 마이그레이션할 수 있습니다. 원본 데이터베이스와 다른 데이터베이스 엔진으로 마이그레이션하는 경우 AWS Schema Conversion Tool(AWS SCT)를 사용하여 마이그레이션할 수 있습니다. AWS SCT를 사용하여 AWS DMS로 마이그레이션되지 않은 스키마 객체를 마이그레이션합니다. AWS DMS에 대한 자세한 내용은 AWS Database Migration Service란 무엇입니까?를 참조하세요.

가져오기에 대해서만 다음 설정을 포함하도록 DB 파라미터 그룹을 수정합니다. 파라미터 설정을 테스트하여 DB 인스턴스 크기에 가장 효율적인 설정을 찾아야 합니다. 또한 가져오기가 완료된 후 이들 파라미터를 프로덕션 값으로 되돌려야 합니다.

DB 인스턴스 설정을 다음과 같이 수정합니다.

  • DB 인스턴스 백업 비활성화(backup_retention을 0으로 설정).

  • Multi-AZ 비활성화.

다음 설정을 포함하도록 DB 파라미터 그룹을 수정합니다. 이들 설정은 데이터를 가져올 때만 사용해야 합니다. 파라미터 설정을 테스트하여 DB 인스턴스 크기에 가장 효율적인 설정을 찾아야 합니다. 또한 가져오기가 완료된 후 이들 파라미터를 프로덕션 값으로 되돌려야 합니다.

파라미터 가져오기 시 권장 값 설명

maintenance_work_mem

524288, 1048576, 2097152 또는 4194304(KB). 이들 설정은 512MB, 1GB, 2GB 및 4GB에 해당합니다.

이 설정의 값은 호스트 크기에 따라 달라집니다. 이 파라미터는 CREATE INDEX 문에서 사용되며 각 병렬 명령은 이 크기의 메모리를 사용할 수 있습니다. 이 값을 너무 높게 설정하여 메모리가 부족해지지 않도록 최선의 값을 계산합니다.

max_wal_size

256(버전 9.6), 4096(버전 10 이상)

자동 체크포인트 중에 WAL이 증가할 수 있는 최대 크기입니다. 이 파라미터를 늘리면 충돌 복구에 소요되는 시간이 늘어날 수 있습니다. 이 파라미터는 PostgreSQL 9.6 이상에서 checkpoint_segments를 대체합니다.

PostgreSQL 버전 9.6의 경우 이 값은 16MB 단위입니다. 이후 버전의 경우 이 값은 1MB 단위입니다. 예를 들어 버전 9.6에서 128은 각각 16MB 크기인 128개의 청크를 의미합니다. 버전 12.4에서 2048는 각각 1MB 크기인 2048개의 청크를 의미합니다.

checkpoint_timeout

1800

이 설정의 값은 WAL 교체 빈도를 줄일 수 있습니다.

synchronous_commit

Off

쓰기 속도를 높이려면 이 설정을 비활성화합니다. 이 파라미터를 끄면 서버 충돌 시 데이터 손실 위험이 증가합니다(FSYNC를 끄지 않음).

wal_buffers

8192

이 값은 8KB 단위입니다. 이는 다시 WAL 생성 속도에 도움이 됩니다.

autovacuum

0

리소스를 사용하지 않으므로 데이터를 로드하는 동안에는 PostgreSQL auto-vacuum 파라미터를 비활성화합니다.

이런 설정과 함께 pg_dump -Fc(압축) 또는 pg_restore -j(병렬) 명령을 사용합니다.

참고

PostgreSQL의 pg_dumpall 명령을 사용하려면 DB 인스턴스를 생성할 때 부여되지 않은 super_user 권한이 필요하며, 따라서 이 명령은 데이터 가져오기에 사용할 수 없습니다.