업그레이드 문제: 중복 키로 인한 업그레이드 실패, 스냅샷 복원 실패

어제 비슷한 사례를 겪었습니다(Help! Upgrade led to complete fail - #8 by Judith 참조). 대략적으로 말하면, 다음과 같은 조치를 취해야 할 것 같습니다.

  • postgres_data_old를 다시 postgres_data로 이름 변경
  • 이전 컨테이너 재시작
  • 중복된 사용자 이름(또는 대소문자가 달라서 중복으로 간주되는 사용자)을 이름 변경하여 손상된 인덱스 문제 해결
  • 모든 인덱스가 정상적으로 복구되었는지 확인하기 위해 사용자 테이블에 인덱스 생성
  • PostgreSQL 13 업데이트에 설명된 대로 PostgreSQL 12 템플릿으로 변경
  • 업그레이드를 위해 재빌드
  • 정상적으로 작동하면 템플릿을 원래대로 되돌리고 업그레이드를 완료
  • 사용자 이름(username)뿐만 아니라 username_lower도 업데이트해야 한다는 점에 유의

어제 해결한 사례에는 2020년 2월로 거슬러 올라가는 중복 사용자 이름이 있었기 때문에, 이전 데이터베이스를 복원하여 이 문제를 해결하려고 하지 않는 것이 좋습니다.

이를 해결하려면 PostgreSQL 명령줄을 사용하여 레코드를 수정하는 방법, 데이터베이스를 재빌드하는 방법, 그리고 PostgreSQL 13 업그레이드 과정에서 발생하는 복잡하지만 잘 문서화된 문제들을 다루는 방법을 이해해야 합니다.

예산이 500달러 정도 있다면 저에게 연락하실 수 있습니다. 연락처는 프로필에 기재되어 있습니다.