다음을 통해 공유


Azure Database for PostgreSQL - 유연한 서버의 주 버전 업그레이드

적용 대상: Azure Database for PostgreSQL - 유연한 서버

Azure Database for PostgreSQL 유연한 서버는 PostgreSQL 버전 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_enableON으로 설정합니다.
  • 로그 파일의 보존 기간(일)을 정의하려면 logfiles.retention_days를 사용합니다.

업그레이드 로그 설정

PG_Upgrade_Logs 사용을 시작하려면 Azure Portal 또는 Azure CLI를 통해 로그를 구성할 수 있습니다. 사용자의 워크플로에 가장 적합한 방법을 선택합니다.

서버 로그용 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.

  • 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에 필수).
  • 논리적 복제 슬롯으로 구성된 서버는 지원되지 않습니다.

다음 단계