이 문서에서는 데이터를 마이그레이션하거나 기존 인스턴스를 교체하지 않고 데이터베이스를 최신 버전으로 업그레이드할 수 있는 PostgreSQL용 AlloyDB 데이터베이스 인플레이스 주 버전 업그레이드에 대해 설명합니다.
PostgreSQL 커뮤니티는 새로운 기능, 성능 개선, 보안 개선사항이 포함된 새로운 주 버전을 주기적으로 출시합니다. PostgreSQL에서 새로운 메이저 버전을 출시하면 AlloyDB는 호환되는 버전에 대한 지원을 추가합니다. 데이터베이스를 최신 상태로 유지하려면 상위 주 버전으로 업그레이드하여 AlloyDB 클러스터를 업그레이드하면 됩니다. 이 인플레이스 업그레이드 기능을 사용하거나 새 AlloyDB 클러스터로 데이터를 이전하여 클러스터를 업그레이드할 수 있습니다.
자세한 내용은 데이터베이스 버전 정책을 참고하세요.
인플레이스 주 버전 업그레이드는 다음과 같은 이유로 클러스터의 주 버전을 업그레이드하는 데 효율적인 방법입니다.
- AlloyDB는 업그레이드 후에도 클러스터 및 인스턴스 세부정보와 인스턴스 이름, IP 주소, 데이터베이스 플래그와 같은 데이터베이스 설정을 유지합니다.
- 애플리케이션 연결 문자열은 변경할 필요가 없습니다.
- 모든 클러스터 인스턴스 (기본 및 읽기 풀)가 동일한 작업의 일부로 업그레이드됩니다.
인플레이스 주 버전 업그레이드 워크플로
클러스터에서 업그레이드를 시작하면 AlloyDB에서 다음 작업을 실행합니다.
- 업그레이드 전 검사를 실행하여 업그레이드에 영향을 줄 수 있는 비호환성을 찾습니다.
- 클러스터의 내부 클론 생성을 포함하여 주 버전 업그레이드를 준비합니다.
- 기본 인스턴스를 사용할 수 없게 합니다. 다운타임이 시작됩니다. 읽기는 읽기 풀을 통해 계속할 수 있습니다.
- 업그레이드 전 백업을 시작합니다.
- 기본 인스턴스를 업그레이드합니다.
- 읽기 풀 인스턴스를 사용할 수 없게 만듭니다.
- 기본 인스턴스를 사용할 수 있도록 설정합니다. 다운타임이 종료됩니다.
- 업그레이드 후 백업을 시작합니다.
- 읽기 풀 인스턴스를 업그레이드합니다.
업그레이드 전 검사가 통과하면 클러스터가 동일한 프로젝트의 내부 클러스터로 클론됩니다. 클러스터를 클론하는 데 필요한 백업 및 복원은 데이터베이스 크기에 따라 완료하는 데 다소 시간이 걸릴 수 있습니다. 다음은 데이터베이스 크기와 해당 백업 및 복원 시간의 예입니다.
- 1TB의 경우 클러스터를 클론하는 데 약 30분이 소요됩니다.
- 10TB의 경우 클러스터를 클론하는 데 약 2시간이 걸립니다.
클론 작업 중에도 원래 클러스터를 계속 사용할 수 있습니다. 클론 작업이 완료되면 업그레이드 프로세스가 시작됩니다. 기본 인스턴스가 업그레이드될 때까지 기본 인스턴스를 읽기와 쓰기에 모두 사용할 수 없습니다. 예상 다운타임은 일반적으로 20분에서 1시간이며 주로 데이터베이스 스키마와 객체 수에 따라 달라집니다.
기본 인스턴스가 업그레이드되기 전에 어떤 단계에서든 주 버전 업그레이드에 실패하면 AlloyDB는 모든 변경사항을 자동으로 롤백합니다.
기본 인스턴스가 업그레이드된 후 클러스터 버전이 대상 버전으로 업그레이드되며 이 시점 이후에는 오류에 대해 롤백이 트리거되지 않습니다. 예를 들어 하나 이상의 읽기 풀 인스턴스 업그레이드가 실패하면 AlloyDB는 클러스터를 롤백하지 않습니다. 이 경우 Google Cloud CLI 지원팀에 문의하세요.
자세한 내용은 데이터베이스 주 버전 인플레이스 업그레이드를 참고하세요.
업그레이드 상태
인플레이스 데이터베이스 주 버전 업그레이드 작업이 진행되는 동안 업그레이드 상태를 모니터링할 수 있습니다.
업그레이드 프로세스에는 다음 단계가 포함됩니다.
ALLOYDB_PRECHECK
PG_UPGRADE_CHECK
PREPARE_FOR_UPGRADE
PRIMARY_INSTANCE_UPGRADE
READ_POOL_INSTANCES_UPGRADE
ROLLBACK
(읽기 풀 업그레이드 전에 실패한 경우에만 해당)CLEANUP
이러한 단계의 가능한 상태는 다음과 같습니다.
NOT_STARTED
IN_PROGRESS
SUCCESS
FAILED
CANCEL_IN_PROGRESS
CANCELLED
업그레이드 취소
기본 인스턴스 업그레이드 중 특정 지점까지는 업그레이드 작업을 취소할 수 있습니다. 이 지점을 지나면 업그레이드를 취소할 수 없습니다.
Google Cloud 콘솔에서 업그레이드 취소 버튼이 비활성화되어 있으면 작업을 취소할 수 없습니다. Google Cloud CLI 또는 REST API를 사용하여 업그레이드 상태에서 upgradeClusterStatus
를 선택하여 업그레이드를 취소할 수 있는지 확인할 수 있습니다.
cancellable
가true
이면 업그레이드를 취소할 수 있습니다.cancellable
가false
이거나 상태에서 누락된 경우 업그레이드를 취소할 수 없습니다.
자동 업그레이드 전후 백업
주 버전 업그레이드를 수행하면 AlloyDB에서 다음과 같은 연속 백업을 자동으로 만듭니다. 여기서 XX
는 소스 주 버전이고 YY
는 타겟 주 버전입니다.
- 업그레이드 전 백업은 업그레이드가 시작되기 직전에 생성됩니다. 이 백업은
pre-upgrade-bkp-pgXX-pgYY-<uuid>
형식을 사용하여 이름이 지정됩니다. 이 백업을 사용하여 업그레이드 전 상태로 복원할 수 있습니다. 복원은 인플레이스 작업이 아니며 새 클러스터를 만듭니다. - 업그레이드 후 백업은 기본 인스턴스가 업그레이드된 후에 생성됩니다. 이 백업은
post-upgrade-bkp-pgXX-pgYY-<uuid>
형식을 사용하여 이름이 지정됩니다.
연속 백업은 증분 방식이므로 이전 연속 백업과 비교하여 변경된 데이터만 저장됩니다. 이 접근 방식을 사용하면 백업의 크기와 비용 (리소스)이 줄어들고 백업 생성 프로세스가 빨라집니다. 자세한 내용은 데이터 백업 및 복구 개요를 참고하세요.
백업 목록을 보면 업그레이드 백업이 CONTINUOUS
유형으로 나열된 것을 알 수 있습니다. 자세한 내용은 백업 목록 보기를 참고하세요.
point-in-time recovery (PITR)를 실행하려면 버전의 백업을 사용할 수 있어야 합니다. 업그레이드 후 백업 또는 기본 인스턴스가 업그레이드된 후 시작된 다른 백업이 완료될 때까지 업그레이드된 클러스터에서는 복원을 사용할 수 없습니다.