Azure Database for PostgreSQL - 유연한 서버의 주 버전 업그레이드
적용 대상: Azure Database for PostgreSQL - 유연한 서버
Azure Database for PostgreSQL 유연한 서버는 PostgreSQL 버전 17(미리 보기), 16, 15, 14, 13, 12, 11을 지원합니다. Postgres 커뮤니티는 약 1년에 한 번씩 새로운 기능을 포함하는 새로운 주 버전을 릴리스합니다. 또한 각 주 버전에는 부 릴리스 형태로 정기적인 버그 수정이 제공됩니다. 부 버전 업그레이드에는 기존 애플리케이션과 호환되는 변경 내용이 포함됩니다. Azure Database for PostgreSQL 유연한 서버는 고객의 유지 관리 기간 동안 정기적으로 부 버전을 업데이트합니다.
주 버전 업그레이드는 부 버전 업그레이드보다 더 복잡합니다. 여기에는 기존 애플리케이션과 호환되지 않을 수 있는 내부 변경 내용과 새로운 기능이 포함될 수 있습니다.
Azure Database for PostgreSQL 유연한 서버에는 클릭 한 번으로 서버의 현재 위치 주 버전 업그레이드를 수행하는 기능이 있습니다. 이 기능은 서버에 액세스하는 사용자 및 애플리케이션의 중단을 최소화하여 업그레이드 프로세스를 간소화합니다.
전체 업그레이드는 주 버전 업그레이드 후에도 현재 서버의 서버 이름과 기타 설정을 보존합니다. 데이터 마이그레이션이나 애플리케이션 연결 문자열 변경이 필요하지 않습니다. 현재 위치 업그레이드는 데이터 마이그레이션보다 빠르고 가동 중지 시간이 짧습니다.
Process
전체 주 버전 업그레이드에 대한 몇 가지 중요한 고려 사항은 다음과 같습니다.
현재 위치 주 버전 업그레이드 프로세스 중에 Azure Database for PostgreSQL 유연한 서버는 사전 검사 절차를 실행하여 업그레이드가 실패할 수 있는 잠재적인 문제를 식별합니다.
사전 검사에서 비호환성을 찾으면 오류 메시지와 함께 업그레이드 사전 검사가 실패했음을 보여 주는 로그 이벤트를 만듭니다.
사전 확인에 성공하면 Azure Database for PostgreSQL 유연한 서버가 서비스를 중지하고 업그레이드를 시작하기 직전에 암시적 백업을 수행합니다. 업그레이드 오류가 있는 경우 서비스는 이 백업을 사용하여 데이터베이스 인스턴스를 이전 버전으로 복원할 수 있습니다.
Azure Database for PostgreSQL 유연한 서버는 pg_upgrade 도구를 사용하여 전체 주 버전 업그레이드를 수행합니다. 이 서비스는 버전을 건너뛰고 최신 버전으로 직접 업그레이드할 수 있는 유연성을 제공합니다.
HA(고가용성)를 사용하도록 설정된 서버의 현재 위치 주 버전 업그레이드 중에 서비스는 HA를 사용하지 않도록 설정하고 주 서버에서 업그레이드를 수행한 다음 업그레이드가 완료된 후 HA를 다시 사용하도록 설정합니다.
대부분의 확장은 일부 예외를 제외하고 전체 주 버전 업그레이드 중에 자동으로 이후 버전으로 업그레이드됩니다.
Azure Database for PostgreSQL 유연한 서버에 대한 전체 주 버전 업그레이드 프로세스는 지원되는 최신 부 버전을 자동으로 배포합니다.
전체 주 버전 업그레이드는 짧은 가동 중지 시간이 발생하는 오프라인 작업입니다. 가동 중지 시간은 일반적으로 15분 미만입니다. 기간은 관련된 시스템 테이블 수에 따라 달라질 수 있습니다.
업그레이드 전 장기 실행 트랜잭션 또는 높은 워크로드로 인해 데이터베이스를 종료하는 데 걸리는 시간이 늘어나고 업그레이드 시간이 늘어날 수 있습니다.
전체 주 버전 업그레이드가 성공하면 이전 버전으로 되돌릴 수 있는 자동화된 방법이 없습니다. 그러나 업그레이드 이전 지점으로 PITR(특정 시점 복원)을 수행하여 이전 버전의 데이터베이스 인스턴스를 복원할 수 있습니다.
Azure Database for PostgreSQL 유연한 서버는 업그레이드 중에 데이터베이스의 스냅샷을 만듭니다. 업그레이드가 시작되기 전에 스냅샷이 만들어집니다. 업그레이드에 실패하면 시스템은 스냅샷에서 데이터베이스를 해당 상태로 자동으로 복원합니다.
PostgreSQL 16에는 역할 기반 보안 측정값이 도입되었습니다. Azure Database for PostgreSQL 유연한 서버의 주 버전 업그레이드 후 서버에서 만들어진 첫 번째 사용자(ADMIN 옵션이 부여됨)는 이제 필수 유지 관리 작업을 위해 다른 역할에 대한 관리자 권한을 갖게 됩니다.
업그레이드 후
주 버전 업그레이드가 완료되면 각 데이터베이스에서 명령을 실행 ANALYZE
하여 테이블을 새로 고치는 pg_statistic
것이 좋습니다. 그렇지 않으면 성능 문제가 발생할 수 있습니다.
postgres=> analyze;
ANALYZE
주 버전 업그레이드 로그
주 버전 업그레이드 로그(PG_Upgrade_Logs
)는 자세한 서버 로그에 대한 직접 액세스를 제공합니다. PG_Upgrade_Logs
를 업그레이드 프로세스에 통합하면 새 PostgreSQL 버전으로 더욱 원활하고 투명하게 전환하는 데 도움이 될 수 있습니다.
다음 서버 매개 변수를 사용하여 서버 로그와 동일한 방식으로 주 버전 업그레이드 로그를 구성할 수 있습니다.
- 이 기능을 켜려면
logfiles.download_enable
을ON
으로 설정합니다. - 로그 파일의 보존 기간(일)을 정의하려면
logfiles.retention_days
를 사용합니다.
업그레이드 로그 설정
사용을 PG_Upgrade_Logs
시작하려면 PostgreSQL 서버 로그 및 주 버전 업그레이드 로그 캡처를 구성할 수 있습니다.
서버 로그용 UI를 통해 업그레이드 로그에 액세스할 수 있습니다. 여기에서 PostgreSQL 주 버전 업그레이드의 진행률과 세부 정보를 실시간으로 모니터링할 수 있습니다. 이 UI는 로그를 볼 수 있는 중앙 위치를 제공하므로 업그레이드 프로세스를 보다 쉽게 추적하고 문제를 해결할 수 있습니다.
업그레이드 로그 사용의 이점
- 통찰력 있는 진단:
PG_Upgrade_Logs
는 업그레이드 프로세스에 대한 귀중한 인사이트를 제공합니다. 수행된 작업에 대한 자세한 정보를 캡처하고 발생하는 오류 또는 경고를 강조 표시합니다. 이러한 세부 수준은 보다 원활한 전환을 위해 업그레이드 중에 발생할 수 있는 문제를 진단하고 해결하는 데 도움이 됩니다. - 간소화된 문제 해결: 이러한 로그에 직접 액세스하면 잠재적인 업그레이드 장애 요인을 신속하게 식별하고 해결할 수 있으므로 가동 중지 시간을 줄이고 작업에 미치는 영향을 최소화할 수 있습니다. 로그는 보다 효율적이고 효과적인 문제 해결을 가능하게 하여 중요한 문제 해결 도구 역할을 합니다.
제한 사항
현재 위치 주 버전 업그레이드에 대한 사전 확인 작업이 실패하면 다음 제한 사항에 대한 자세한 오류 메시지와 함께 업그레이드가 실패합니다.
현재 전체 주 버전 업그레이드는 읽기 복제본을 지원하지 않습니다. 읽기 복제본 역할을 하는 서버가 있는 경우 주 서버에서 업그레이드를 수행하기 전에 복제본을 삭제해야 합니다. 업그레이드 후 복제본을 다시 만들 수 있습니다.
Azure Database for PostgreSQL - 유연한 서버에는 유연한 서버가 배포된 가상 네트워크 내의 대상 포트 5432 및 6432와 로그 보관을 위해 Azure Storage로 트래픽을 보내고 받는 기능이 필요합니다.
배포된 서브넷 내의 유연한 서버와의 트래픽을 제한하도록 NSG(네트워크 보안 그룹)를 구성하는 경우 서브넷 내의 대상 포트 5432 및 6432에 대한 트래픽을 허용해야 합니다. 서비스 태그 Azure Storage를 대상으로 사용하여 Azure Storage에 대한 트래픽을 허용합니다.
- 네트워크 규칙이 제대로 설정되지 않은 경우 HA는 주 버전 업그레이드 후에 자동으로 사용하도록 설정되지 않으며 HA를 수동으로 사용하도록 설정해야 합니다. 대상 포트 및 스토리지에 대한 트래픽을 허용하고 서버에서 HA 기능을 사용하도록 설정하도록 NSG 규칙을 수정합니다.
현재 위치 주 버전 업그레이드는 특정 확장을 지원하지 않으며 특정 확장을 업그레이드하는 데 몇 가지 제한 사항이 있습니다.
-
다음 확장은 모든 PostgreSQL 버전에서 지원되지 않습니다.
Timescaledb
,pgaudit
,dblink
,orafce
,pg_partman
,postgres_fdw
.pgrouting
업그레이드 대상이 Postgres 16 이상일 때 지원되지 않는 확장입니다.
PostGIS 확장이 설치된 서버를 업그레이드하는 경우 다음을 명시적으로 포함하도록
search_path
서버 매개 변수를 설정합니다.- PostGIS 확장의 스키마.
- PostGIS에 의존하는 확장입니다.
- 다음 확장에 대한 종속성 역할을 하는 확장:
postgis
,postgis_raster
,postgis_sfcgal
,postgis_tiger_geocoder
,postgis_topology
,address_standardizer
,address_standardizer_data_us
,fuzzystrmatch
(postgis_tiger_geocoder
에 필수).
논리적 복제 슬롯으로 구성된 서버는 지원되지 않습니다.
SSDv2 스토리지를 사용하는 서버는 주 버전 업그레이드를 지원하지 않습니다.
종속 뷰를
pg_stat_activity
사용하는 서버는 지원되지 않습니다.
관련 콘텐츠
- Azure Database for PostgreSQL - 유연한 서버의 주 버전 업그레이드
- Azure Database for PostgreSQL - 유연한 서버의 고가용성
- Azure Database for PostgreSQL - 유연한 서버의 백업 및 복원.
Azure Database for PostgreSQL 제품 팀과 제안 및 버그를 공유합니다.