이 문서에서는 PostgreSQL용 AlloyDB 데이터베이스를 인플레이스 메이저 버전으로 업그레이드하는 동안 발생할 수 있는 문제를 해결하는 방법을 설명합니다. 자세한 내용은 데이터베이스 인플레이스 메이저 버전 업그레이드를 참조하세요. 인플레이스 메이저 버전 업그레이드 오류에 대해 알아보려면 데이터베이스 인플레이스 메이저 버전 업그레이드 오류를 참조하세요.
업그레이드 실패를 분석하려면 응답에서 실패한 업그레이드 단계를 파악하고 이 문서의 정보를 사용하여 가능한 해결 방법을 확인하세요.
AlloyDB는 요청을 동기식으로 검증하고 다음 중 하나라도 해당하는 경우 오류 메시지를 반환합니다.
- 요청이 잘못되었습니다. 예를 들어 제공된 대상 메이저 버전이 지원되지 않거나 현재 메이저 버전 이하인 경우입니다.
- 클러스터 리소스가 메이저 버전 업그레이드를 트리거할 수 없는 상태입니다. 예를 들어 클러스터 또는 연결된 인스턴스가
READY상태가 아닌 경우입니다.
요청이 유효한 경우 다음과 같은 이유로 업그레이드가 실패할 수 있습니다.
- 다양한 단계에서 실행되는 업그레이드 전 검사가 실패할 수 있으며, 이는 위반이 감지되었음을 나타냅니다. 업그레이드를 다시 시작하기 전에 이러한 위반 사항을 해결해야 합니다.
- 내부 오류는 업그레이드를 다시 시도해야 함을 의미합니다. 재시도가 실패하면 Google Cloud 지원팀에 문의하세요.
AlloyDB 업그레이드 전 검사 실패
업그레이드 전 검사 실패는 다음 단계 중 언제든지 발생할 수 있습니다.
- AlloyDB 사전 업그레이드 검사(
ALLOYDB_PRECHECK) pg_upgrade검사(PG_UPGRADE_CHECK)- 기본 클러스터 업그레이드(
PRIMARY_INSTANCE_UPGRADE)
업그레이드 전 검사 실패는 업그레이드 전 검증 단계에서 AlloyDB가 감지하는 문제로, 인플레이스 메이저 버전 업그레이드가 실패할 수 있습니다. 예를 들어 AlloyDB는 현재 버전과 대상 버전 간의 확장 프로그램 비호환성을 확인합니다.
오류 메시지는 업그레이드 작업 응답의 logs_url에 입력됩니다. Google Cloud 콘솔에서 로그 탐색기로 이동하여 이러한 로그를 확인할 수 있습니다. 자세한 내용은 업그레이드 로그 보기를 참조하세요.
로그에서 확인할 수 있는 실패 및 해당 오류 메시지는 데이터베이스 인플레이스 메이저 버전 업그레이드 오류를 참조하세요.
다음은 AlloyDB 업그레이드 전 검사에서 로그에 생성되는 요약의 예시입니다.
Total number of databases checked for custom checks: 3 Total number of databases containing pg_largeobject: 0 Total number of databases containing event triggers permissions issue: 0 Total number of databases containing extensions compatibility violation: 1 Total number of databases containing search path violations: 0
pg_upgrade 검사 실패
PG_UPGRADE_CHECK는 표준 pg_upgrade 유틸리티를 사용하여 위반 사항을 확인합니다. 이 업그레이드 검사에는 버전별 데이터 구조의 차이, 인코딩 및 콜레이션 수정, 데이터 유형 수정, 시스템 카탈로그 조정 등 다양한 요인으로 인해 발생하는 데이터 불일치가 포함됩니다.
pg_upgrade 중에 생성되는 tables_with_oids.txt 및 tables_using_reg.txt와 같은 여러 파일이 postgres_upgrade 로그 파일로 내보내집니다. labels.FILE_NAME 라벨을 사용하여 이러한 파일을 필터링할 수 있습니다.
해결해야 할 오류가 포함된 파일 이름은 다음과 같습니다.
| 파일 이름 | 설명 |
|---|---|
|
이 파일에는 객체 식별자(OID)와 함께 나열된 테이블이 포함되어 있습니다. OID를 사용하지 않도록 테이블을 삭제하거나 수정합니다. |
|
이 파일에는 시스템 정의 복합 유형을 사용하여 나열된 테이블이 포함되어 있습니다. 테이블을 삭제하거나 이러한 복합 유형을 사용하지 않도록 수정합니다. |
|
이 파일에는 UNKNOWN 데이터 유형을 사용하여 나열되는 테이블이 포함되어 있습니다. 테이블을 삭제하거나 이 데이터 유형을 사용하지 않도록 수정합니다. |
|
이 파일에는 SQL_IDENTIFIER 데이터 유형을 사용하여 나열되는 테이블이 포함되어 있습니다. 테이블을 삭제하거나 이 데이터 유형을 사용하지 않도록 수정합니다. |
|
이 파일에는 REG* 데이터 유형(예: REGCOLLATION 또는 REGNAMESPACE)을 사용하여 나열된 테이블이 포함되어 있습니다. 테이블을 삭제하거나 이 데이터 유형을 사용하지 않도록 수정합니다. |
|
이 파일에는 postfix(오른쪽 단항) 연산자를 사용하여 나열된 테이블이 포함되어 있습니다. 이러한 연산자를 사용하지 않도록 테이블을 삭제하거나 수정합니다. |
pg_upgrade 실패
PG_UPGRADE 로그의 구조는 PG_UPGRADE_CHECK 로그의 구조와 유사합니다.
다음은 labels.FILE_NAME=pg_upgrade_dump*.log: 라벨이 있는 로그의 예시입니다.
pg_upgrade_dump: error: query failed: ERROR: out of shared memory HINT: You might need to increase max_locks_per_transaction.
다음 단계
- 데이터베이스 인플레이스 메이저 버전 업그레이드 오류에 대해 알아봅니다.
- 데이터베이스 인플레이스 메이저 버전 업그레이드를 수행하는 방법을 알아봅니다.