외부 PostgreSQL 데이터베이스 업그레이드
PostgreSQL 데이터베이스 엔진을 업그레이드할 때는 PostgreSQL 커뮤니티와 클라우드 제공업체의 권장 단계를 모두 따르는 것이 중요합니다. 마이너 버전 업그레이드: 버그 수정 및 보안 수정만 포함됩니다. 마이너 버전 업그레이드 프로세스는 PostgreSQL 바이너리를 교체하고 데이터베이스 서비스를 재시작하는 것으로 구성됩니다.
PostgreSQL 데이터베이스 엔진을 업그레이드할 때는 PostgreSQL 커뮤니티와 클라우드 제공업체의 권장 단계를 모두 따르는 것이 중요합니다. PostgreSQL 데이터베이스에는 두 가지 업그레이드 방식이 있습니다:
-
마이너 버전 업그레이드: 버그 수정 및 보안 수정만 포함됩니다. 기존 애플리케이션 데이터베이스 모델과 항상 하위 호환됩니다.
마이너 버전 업그레이드 프로세스는 PostgreSQL 바이너리를 교체하고 데이터베이스 서비스를 재시작하는 것으로 구성됩니다. 데이터 디렉터리는 변경되지 않습니다.
-
메이저 버전 업그레이드: 내부 저장소 형식과 데이터베이스 카탈로그를 변경합니다. 결과적으로 쿼리 최적화 도구가 사용하는 객체 통계는 새 버전으로 전달되지 않으며
ANALYZE로 재구축해야 합니다.문서화된 메이저 버전 업그레이드 프로세스를 따르지 않으면 데이터베이스 성능 저하 및 데이터베이스 서버의 높은 CPU 사용량이 발생할 수 있습니다.
모든 주요 클라우드 제공업체는 pg_upgrade 유틸리티를 사용하여 데이터베이스 인스턴스의 인플레이스 메이저 버전 업그레이드를 지원합니다. 그러나 성능 저하 또는 데이터베이스 중단 위험을 줄이기 위해 사전/사후 업그레이드 단계를 따라야 합니다.
외부 데이터베이스 플랫폼의 메이저 버전 업그레이드 단계를 주의 깊게 읽으세요:
- Amazon RDS for PostgreSQL
- Azure Database for PostgreSQL Flexible Server
- Google Cloud SQL for PostgreSQL
- PostgreSQL community
pg_upgrade
메이저 버전 업그레이드 후 항상 데이터베이스에서 ANALYZE 실행#
메이저 버전 업그레이드 후에는 ANALYZE 작업을 실행하여 pg_statistic 테이블을 새로 고치는 것이 필수입니다. 최적화 도구 통계는 pg_upgrade에 의해 전달되지 않기 때문입니다.
이는 업그레이드된 PostgreSQL 서비스/인스턴스/클러스터의 모든 데이터베이스에 대해 수행해야 합니다.
이 작업이 GitLab 성능을 크게 저하시킬 수 있으므로 유지 관리 기간을 계획할 때 ANALYZE 실행 시간을 포함해야 합니다.
ANALYZE 작업 속도를 높이려면 njobs 명령을 동시에 실행하여 ANALYZE 명령을 병렬로 실행하는 --analyze-only --jobs=njobs 옵션과 함께 vacuumdb 유틸리티를 사용하세요.
