외부 PostgreSQL 데이터베이스 업그레이드

PostgreSQL 데이터베이스 엔진을 업그레이드할 때, PostgreSQL 커뮤니티와 클라우드 제공업체에서 권장하는 모든 단계를 따르는 것이 중요합니다. PostgreSQL 데이터베이스에는 두 가지 종류의 업그레이드가 있습니다:

  • 마이너 버전 업그레이드: 이에는 버그 및 보안 수정 사항만 포함됩니다. 항상 기존 애플리케이션 데이터베이스 모델과 하위 호환됩니다.

    마이너 버전 업그레이드 프로세스는 PostgreSQL 바이너리를 교체하고 데이터베이스 서비스를 재시작하는 것으로 구성됩니다. 데이터 디렉토리는 변경되지 않습니다.

  • 메이저 버전 업그레이드: 이에는 내부 저장 형식과 데이터베이스 카탈로그의 변경이 포함됩니다. 그 결과, 쿼리 최적화 도구가 사용하는 객체 통계는 새 버전으로 전송되지 않으며 ANALYZE로 재구성해야 합니다.

    문서화된 메이저 버전 업그레이드 프로세스를 따르지 않으면 종종 데이터베이스 성능 저하와 데이터베이스 서버의 높은 CPU 사용량이 발생합니다.

모든 주요 클라우드 제공업체는 데이터베이스 인스턴스의 인플레이스 메이저 버전 업그레이드를 지원하며, pg_upgrade 유틸리티를 사용합니다. 그러나 성능 저하 또는 데이터베이스 중단의 위험을 줄이기 위해 업그레이드 전후 단계를 따르는 것이 중요합니다.

외부 데이터베이스 플랫폼의 메이저 버전 업그레이드 단계를 주의 깊게 읽으세요:

메이저 버전 업그레이드 후 항상 ANALYZE 실행

메이저 버전 업그레이드 후 ANALYZE 작업을 실행하여 pg_statistic 테이블을 새로 고치는 것이 필수입니다. 왜냐하면 최적화 도구 통계는 pg_upgrade에 의해 전송되지 않기 때문입니다.

이 작업은 업그레이드된 PostgreSQL 서비스/인스턴스/클러스터의 모든 데이터베이스에 대해 수행해야 합니다.

ANALYZE 작업을 가속화하려면 vacuumdb 유틸리티를 사용하고, --analyze-only --jobs=njobs를 설정하여 njobs 개의 명령을 동시에 실행하여 ANALYZE 명령을 병렬로 실행합니다.