인플레이스 주 버전 업그레이드 문제 해결

이 문서에서는 PostgreSQL용 AlloyDB 데이터베이스를 인플레이스로 주 버전으로 업그레이드하는 동안 발생할 수 있는 문제를 해결하는 방법을 설명합니다. 자세한 내용은 데이터베이스 주 버전 인플레이스 업그레이드를 참고하세요. 인플레이스 주 버전 업그레이드 오류에 대한 자세한 내용은 데이터베이스 인플레이스 주 버전 업그레이드 오류를 참고하세요.

업그레이드 실패를 분석하려면 응답에서 실패한 업그레이드 단계를 파악하고 이 문서의 정보를 사용하여 가능한 해결 방법을 파악합니다.

AlloyDB는 요청을 동기식으로 검증하고 다음 중 하나가 참인 경우 오류 메시지를 반환합니다.

  • 요청이 잘못되었습니다. 예를 들어 제공된 타겟 주요 버전이 지원되지 않거나 현재 주요 버전 이하인 경우입니다.
  • 클러스터 리소스가 메이저 버전 업그레이드를 트리거할 수 없는 상태입니다. 예를 들어 클러스터 또는 연결된 인스턴스가 READY 상태가 아닌 경우

요청이 유효하더라도 다음과 같은 이유로 업그레이드가 실패할 수 있습니다.

  • 다양한 단계에서 실행되는 업그레이드 전 검사가 실패하면 위반이 감지되었음을 나타냅니다. 업그레이드를 다시 시작하기 전에 이러한 위반사항을 해결해야 합니다.
  • 내부 오류는 업그레이드를 다시 시도해야 함을 의미합니다. 재시도해도 실패하면 Google Cloud 지원팀에 문의하세요.

AlloyDB 업그레이드 전 검사 실패

업그레이드 전 검사 실패는 다음 단계 중 하나에서 발생할 수 있습니다.

  • AlloyDB 사전 업그레이드 검사 (ALLOYDB_PRECHECK)
  • pg_upgrade 검사 (PG_UPGRADE_CHECK)
  • 기본 클러스터 업그레이드 (PRIMARY_INSTANCE_UPGRADE)

업그레이드 전 검사 실패는 업그레이드 전 검증 단계에서 AlloyDB가 감지하는 문제로, 인플레이스(In-Place) 주요 버전 업그레이드가 실패할 수 있습니다. 예를 들어 AlloyDB는 현재 버전과 대상 버전 간의 확장 프로그램 비호환성을 확인합니다.

오류 메시지는 업그레이드 작업 응답의 logs_url에 채워집니다. Google Cloud 콘솔에서 로그 탐색기로 이동하여 이러한 로그를 볼 수 있습니다. 자세한 내용은 업그레이드 로그 보기를 참고하세요.

로그에 표시될 수 있는 실패 및 해당 오류 메시지를 보려면 데이터베이스 인플레이스 주 버전 업그레이드 오류를 참고하세요.

다음은 AlloyDB 사전 업그레이드 검사에 의해 로그에 생성된 요약의 예입니다.

Total number of databases checked for custom checks: 
Total number of databases containing pg_largeobject: 
Total number of databases containing extensions compatibility violation: 

pg_upgrade 확인 실패

PG_UPGRADE_CHECK는 표준 pg_upgrade 유틸리티를 사용하여 위반을 확인합니다. 이 업그레이드 확인에는 버전별 데이터 구조의 차이, 인코딩 및 콜레이션 변경, 데이터 유형 수정, 시스템 카탈로그 조정 등 다양한 요인으로 인해 발생하는 데이터 불일치가 포함됩니다.

pg_upgrade 중에 생성되는 tables_with_oids.txttables_using_reg.txt와 같은 여러 파일이 postgres_upgrade로 내보내집니다. labels.FILE_NAME 라벨을 사용하여 이러한 파일을 필터링할 수 있습니다.

해결해야 할 오류가 포함된 파일 이름은 다음과 같습니다.

파일 이름 설명

tables_with_oids.txt

이 파일에는 객체 식별자(OID)와 함께 나열된 테이블이 포함되어 있습니다. OID를 사용하지 않도록 테이블을 삭제하거나 수정합니다.

tables_using_composite.txt

이 파일에는 시스템 정의 복합 유형을 사용하여 나열된 테이블이 포함되어 있습니다. 테이블을 삭제하거나 이러한 복합 유형을 사용하지 않도록 수정합니다.

tables_using_unknown.txt

이 파일에는 UNKNOWN 데이터 유형을 사용하여 나열된 테이블이 포함되어 있습니다. 테이블을 삭제하거나 이 데이터 유형을 사용하지 않도록 수정합니다.

tables_using_sql_identifier.txt

이 파일에는 SQL_IDENTIFIER 데이터 유형을 사용하여 나열된 테이블이 포함되어 있습니다. 테이블을 삭제하거나 이 데이터 유형을 사용하지 않도록 수정합니다.

tables_using_reg.txt

이 파일에는 REG* 데이터 유형(예: REGCOLLATION 또는 REGNAMESPACE)을 사용하여 나열된 테이블이 포함되어 있습니다. 테이블을 삭제하거나 이 데이터 유형을 사용하지 않도록 수정합니다.

postfix_ops.txt

이 파일에는 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.

다음 단계