PostgreSQL 인스턴스용 Amazon Relational Database Service(Amazon RDS)의 메이저 버전 업그레이드가 있을 때의 가동 중지 시간을 계산하려고 합니다.
간략한 설명
PostgreSQL DB 인스턴스용 Amazon RDS에 대한 메이저 버전 업그레이드를 수행하면 다음과 같은 상황이 발생합니다.
- 백업 및 롤백을 위해 업그레이드 전 스냅샷이 생성됩니다.
- 업그레이드 준비를 위해 인스턴스가 종료됩니다.
- 인스턴스에서 업그레이드 작업을 실행하는 데 pg_upgrade 유틸리티가 사용됩니다.
- 업그레이드 후 스냅샷이 생성되고 인스턴스의 네트워킹이 재구성됩니다.
메이저 버전 업그레이드에는 내부 데이터 스토리지 형식 변경이 포함되므로 예상 완료 시간 없이 가동 중지 시간이 발생할 수 있습니다. 업그레이드 전 백업은 증분 변경, pg_upgrade 데이터베이스 크기, 데이터베이스 수 및 데이터베이스 객체(예: 테이블) 수를 기반으로 합니다.
해결 방법
인스턴스 메이저 버전 업그레이드를 수행하기 전에 가동 중지 시간을 계산하려면 현재 인스턴스 설정과 데이터를 시뮬레이션하는 별도의 인스턴스를 테스트합니다. 개별 인스턴스를 테스트하려면 다음 단계를 수행하십시오.
참고: 다음 단계는 메이저 버전 업그레이드 프로세스 및 업그레이드에 필요한 시간에 대한 예측을 제공합니다.
- 현재 DB 인스턴스의 수동 스냅샷을 생성합니다.
참고: 수동 스냅샷을 생성한 후 인스턴스가 지연 로딩을 완료하거나 인스턴스의 사전 워밍업을 완료할 수 있도록 합니다.
- 테스트 인스턴스를 생성하려면 스냅샷을 복원합니다. 정확한 가동 중지 시간 추정을 위해 테스트 인스턴스 구성이 프로덕션 인스턴스와 동일해야 합니다.
- 테스트 인스턴스를 원하는 버전으로 업그레이드합니다.
- pg_statistic 테이블을 새로 고치려면 ANALYZE를 실행합니다.
- 결과를 비교한 다음, 프로덕션 업그레이드를 선택합니다.
읽기 전용 복제본이 포함된 Amazon RDS for PostgreSQL 인스턴스 업그레이드의 가동 중지 시간
메이저 버전 업그레이드를 수행할 때 Amazon RDS는 AWS 리전과 기본 DB 인스턴스 내에서 읽기 전용 복제본을 동시에 업그레이드합니다. 읽기 전용 복제본은 기본 인스턴스의 업그레이드 프로세스 시간을 연장할 수 있습니다.
복제본 업그레이드를 방지하려면 업그레이드 프로세스를 시작하기 전에 복제본을 독립형 인스턴스로 승격시키십시오. 이렇게 하면 업그레이드 가동 중지 시간을 줄이고 업그레이드 완료에 필요한 정확한 시간을 확보할 수 있습니다.
대형 객체가 포함된 Amazon RDS for PostgreSQL 인스턴스 업그레이드의 가동 중지 시간
메이저 버전 업그레이드를 수행하면 데이터베이스 내의 모든 객체가 스캔됩니다. 데이터베이스 내 객체 수에 따라 업그레이드 프로세스 시간이 달라집니다. 또한 Amazon RDS for PostgreSQL의 대형 객체(pg_largeobject)는 업그레이드 가동 중지 시간을 크게 증가시킬 수 있습니다.
대형 객체가 있는 인스턴스의 업그레이드 가동 중지 시간을 줄이려면 대형 객체를 검토하여 대형 객체를 제거할 수 있는지 파악하십시오. 또한 vacuumlo 유틸리티 도구를 사용하여 분리된 대형 객체를 식별하여 제거할 수 있습니다. vacuumlo 유틸리티 도구를 다운로드하여 로컬로 또는 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스에서 실행할 수 있습니다. 자세한 내용을 보려면 PostgreSQL 웹사이트에서 vacuumlo를 참조하십시오.
관련 정보
Amazon RDS를 PostgreSQL의 메이저 및 마이너 버전으로 업그레이드하기 위한 모범 사례
DB 인스턴스 엔진 버전 업그레이드