programing

pg_restore를 실행할 때 "[archiver] 지원되지 않는 버전(1.13) 파일 헤더"를 가져오는 중

powerit 2023. 5. 8. 22:30
반응형

pg_restore를 실행할 때 "[archiver] 지원되지 않는 버전(1.13) 파일 헤더"를 가져오는 중

방금 herku의 10.2와 일치하는 macos의 postgres 10.2로 업그레이드했습니다.데이터베이스 복사본을 다운로드하여 로컬로 복원하려고 합니다.업그레이드하기 전에 복원이 제대로 작동합니다.

나는 달립니다

pg_restore --verbose --clean --no-acl --no-owner -h localhost -d database_name backup.dump

하지만 다음 오류가 발생했습니다.

pg_restore: [archiver] 파일 헤더에서 지원되지 않는 버전(1.13)

데이터베이스가 정상적으로 작동하는 것 같습니다.레일즈 앱이고 나는 pg 보석을 업그레이드했습니다.달릴 수 있습니다rake db:create그리고.db:migrate잘 돼가고 있습니다.

보안 . 를 들어, 2018-03-01 보안 패치는 다음과 같습니다.Heroku첫 번째 행진을 했습니다. 중 합니다.10.3,9.6.8,9.5.12,9.4.17,그리고.9.3.22.

보안 패치는 https://www.postgresql.org/about/news/1834/ 에서 확인할 수 있습니다.

pg_dump 패치가 수정된 것 같습니다. 그래서 아마도 우리는 (패치가 적용된) Heroku의 덤프에 해당 패치 없이는 pg_restore를 더 이상 사용할 수 없을 것입니다.

저는 오늘 같은 문제를 접했습니다. Heroku 측에서 뭔가 변화가 있었는지 모르겠습니다. 왜냐하면 현지에서 9.6을 실행하고 있지만 Heroku의 데이터베이스는 9.4이므로 버전 포인트 차이에 대한 것은 아닌 것 같습니다(오늘까지 작동했습니다).

Postgres.app(Mac에서 https://postgresapp.com/) 을 사용하는 경우 실행 중인지 확인합니다.v2.1.3(이 문서의 최신 버전 기준).Postgres.app을 업그레이드하면 Postgres의 최신 패치 릴리스가 표시됩니다(현재 발생하고 있는 불일치의 원인이 될 수 있음). Heroku는 최신 보안 패치로 업그레이드되었으며 로컬 컴퓨터에 이 패치가 없을 수 있습니다.

Postgres.app을 2.1.0에서 2.1.3으로 업그레이드해야 했고 문제가 해결되었습니다.

이 문제가 처음 발생했을 때 Heroku 데이터베이스를 로컬로 복원한 방법은 다음과 같습니다.

$ rails db:drop
$ heroku pg:pull DATABASE_URL <insert local DB name> --app <app-name>

어제(03/01/2018)부터 Postgre에서 실행 중인 Heroku에서 백업을 복원하는 데 문제가 발생했습니다.SQL 9.5:

pg_restore: [archiver] unsupported version (1.13) in file header

Postgre 업그레이드9.5.11에서 9.5.12까지의 SQL 버전에서 이 문제가 해결되었습니다.

Ubuntu에서 postgresql을 성공적으로 업그레이드하지 못한 사람들(위에서 요한이 언급한 것처럼)을 위해 Postgre를 사용해 보십시오.공식 Postgre에 명시된 SQLapt 저장소SQL 다운로드 지침: https://www.postgresql.org/download/linux/ubuntu/

deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update

저를 위한 수정 사항은 Postgres.app 업데이트와 로컬 홈브루 Postgre 업데이트를 모두 포함했습니다.SQL.

Canuk의 답변을 통해 내 Postgres.app을 업데이트합니다.

Postgres.app > 업데이트 확인...을 엽니다.

로컬 홈브루 Postgre 업데이트수락된 답변에 대한 gerry3의 의견을 통한 SQL:

brew upgrade postgresql brew postgresql-upgrade-database

pgAdmin 3을 사용하는 Windows에서 이 문제가 발생했습니다.

저는 pgAdmin 3에서 pgAdmin 4로 업그레이드하여 문제를 해결했습니다.

PgAdmin과 같은 타사 도구를 사용하여 제공된 덤프 파일을 복원하는 경우 설치된 Postgres 버전이 최신 상태로 되어 있더라도 복원이 성공하지 못할 수 있습니다.이는 타사 도구가 자체 버전의 pg_restore 바이너리를 번들로 제공하는 경우가 많기 때문이며, 이는 최신 버전이 아닐 수 있습니다.https://help.heroku.com/YNH1ZJUS/why-am-i-getting-pg_restore-archiver-unsupported-version-1-13-in-file-header-error-with-pg_restore

운영 중인 버전과 일치하도록 수정하기 위해 DB를 로컬로 새 주 버전으로 업그레이드하는 것은 권장하지 않습니다(보안 패치 적용).

이것은 Ubuntu 16.04에서 수정되어 Heroku 데이터베이스에서 복원되었습니다.

먼저 디에고가 언급한 postgresql repo가 있는지 확인합니다.그런 다음 업그레이드된 클라이언트를 설치합니다.

sudo apt-get update && sudo apt-get install postgresql-client-10

Ubuntu 17.04 또는 17.10인 경우 Postgre를 참조하십시오.SQL의 zzy repo에는 필요한 업데이트된 클라이언트의 repo가 없습니다.당신은 대신 외국어 Postgres repo를 사용하기를 원할 것입니다.

pgadmin III에서 이 문제가 발생했으며 바이너리 위치를 전환하여 문제를 해결할 수 있었습니다.

File menu > Options > Binary Paths를 ProgramFiles/pgadmin 대신 postgresql/9.x/bin으로 변경하였습니다.복원은 나중에 제대로 작동했습니다.

다음은 pg_restore/pg_dump가 psql의 이전 버전을 제공한 Ubuntu(16.04 LTS)에서 문제를 해결한 방법입니다.

$ pg_restore --version
pg_restore (PostgreSQL) 9.4.8

$ psql --version
psql (PostgreSQL) 9.5.14

문제는 여러 pg 버전이 설치되어 있고 pg_restore가 이전 버전을 가리키고 있다는 것입니다.

$ pg_lsclusters
Ver Cluster Port Status Owner    Data directory               Log file
9.4 main    5432 online postgres /var/lib/postgresql/9.4/main /var/log/postgresql/postgresql-9.4-main.log
9.5 main    5433 online postgres /var/lib/postgresql/9.5/main /var/log/postgresql/postgresql-9.5-main.log

이 문제는 올바른 버전을 가리키는 ~/.postgresqlrc 파일을 생성하는 것입니다.

$ cat ~/.postgresqlrc

9.5 main *

이 작업이 완료되면 pg_restore가 올바른 버전을 가리키고 명령이 수행됩니다.

자세한 내용은 https://serverfault.com/questions/610777/wrong-version-of-pg-dump-on-ubuntu 에서 확인할 수 있습니다.

제공된 덤프 파일 복원을 지원하지 않는 이전 버전의 pg_restore 바이너리를 사용하고 있습니다.최신 Postgres 버전을 사용하는지 확인하십시오. 이 버전은 https://www.postgresql.org/about/news/1834/ (10.3, 9.6.8, 9.5.12, 9.4.17 및 9.3.22)보다 높아야 합니다.

pg_restore --version을 실행하여 사용 중인 pg_restore 버전을 확인할 수 있습니다.

PgAdmin과 같은 타사 도구를 사용하여 제공된 덤프 파일을 복원하는 경우 설치된 Postgres 버전이 최신 상태로 되어 있더라도 복원이 성공하지 못할 수 있습니다.이는 타사 도구가 자체 버전의 pg_restore 바이너리를 번들로 제공하는 경우가 많기 때문이며, 이는 최신 버전이 아닐 수 있습니다.

같은 오류가 발생했습니다.저는 로컬에서 postgresql 10.3으로 업데이트를 했고, 그로 인해 문제가 해결되었습니다.

Windows의 경우:

명령 프롬프트 열기(cmd), 그런 다음 위치로 이동합니다.C:\Program Files\PostgreSQL\9.6\bin다음 명령을 실행합니다.

pg_restore -U username -d dbname -1 filename.dump
pg_restore -U postgres -d app -1 G:\app09-07-2019.backup

당신에게 도움이 되길 바랍니다.

는 10분 전에 같은 호에 실렸는데, 2005년에 이 스레드에 대해 알게 되었습니다. https://www.postgresql.org/message-id/1106163722.780395.266900%40z14g2000cwz.googlegroups.com

기본적으로 그 남자는 덤프 파일이 손상되었다고 말하고 있습니다.

언급URL : https://stackoverflow.com/questions/49064209/getting-archiver-unsupported-version-1-13-in-file-header-when-running-pg-r

반응형