저는 Linux 시스템(RHEL 7.4)에서 postgresql-9.4(포트 5432) 및 postgresql-10.0(포트 5433)을 사용하고 있습니다. Postgresql-9.4는 yum 저장소를 사용하여 설치되고 Postgresql-10.0은 다른 파티션의 소스를 사용하여 설치됩니다.
pg_dump를 사용하여 Postgresql-9.4에서 데이터베이스(dtbase.backup)를 백업하고 pg_restore를 사용하여 Postgresql-10.0에서 복원을 시도했습니다.
이 작업을 수행하면 다음 오류가 발생합니다.
pg_restore: [archiver] unsupported version (1.13) in file header
다른 포럼을 확인했지만 해결책을 찾을 수 없습니다. 어떤 도움이라도 대단히 감사하겠습니다.
답변1
9.4.17
9.4 설치가 이전 postgresql 버전 10과 10.3
호환되지 않는 덤프를 만드는 패치를 도입한 이상 으로 업데이트되었을 수 있습니다 .이 스택 오버플로 답변그리고포스트그레스 공지사항로 연결됩니다.
발표에서 :
이 릴리스에서는 보안 취약점을 해결합니다.
* CVE-2018-1058: pg_dump 및 기타 클라이언트 애플리케이션의 제어되지 않은 검색 경로 요소
이 변경으로 인해 두 버전 모두 CVE 패치를 포함하도록 업데이트되지 않은 경우 호환 가능한 pg_dump/pg_restore 워크플로가 있었던 이전 버전 간의 호환성이 중단됩니다.
yum에서도 설치하려면 버전 10 설치를 업그레이드하는 것이 좋습니다. 아직 버전 10을 사용해 본 경험은 없지만 postgres는 설치되는 디렉터리의 버전을 계속해서 관리할 가능성이 높으므로 yum에서 9.4 및 10.3을 설치할 수 있어야 합니다(보안 패치를 받는 것보다 소스에서 다시 빌드하는 것이 더 쉽습니다)! ).
답변2
업그레이드하지 않고 해결했습니다. 나는 다시 백업을 위해 9.4 대신 10.0의 pg_dump를 사용했고 이번에는 pg_restore가 작동했습니다.