Debian의 pg_dump 버전 불일치

Debian의 pg_dump 버전 불일치

저는 Debian Unstable/Sid에서 PostgreSQL을 실행하고 있습니다. postgresql, postgresql-client, postgresql-client-common(143) 의 현재 버전(9.1)을 설치했습니다 .

내가 겪고 있는 문제는 pg_dump다음 오류가 발생하는 것을 실행하는 것입니다.

pg_dump: server version: 9.1.9; pg_dump version: 9.0.6
pg_dump: aborting because of server version mismatch

최신 버전을 얻는 방법을 알 수 없는 것 같습니다 . 패키지 pg_dump에서 나온 것 같아서 실행해 보았지만 pg_dump의 최신 버전이 제공되지 않았습니다.postgresql-client-commonapt-get --reinstall

이 문제를 어떻게 해결할 수 있나요? 아니면 최신 버전이 포함된 패키지를 어디서 찾을 수 있나요 pg_dump?

답변1

효과가 있을 수 있는 또 다른 옵션은 이전 병렬 버전을 제거하는 것입니다.

데비안/우분투에서:

sudo apt-get remove postgresql-8.4
sudo apt-get remove postgresql-client-8.4

이렇게 하면 최신 버전(예: 9.1)이 유지되고 이전 8.4 클라이언트 및 서버 라이브러리만 제거됩니다.

답변2

내 경우에는 두 개의 데이터베이스 세트가 있는데, 일부는 이전 버전의 Postgresql 8.4에서 실행되고 다른 일부는 버전 9.1에서 실행됩니다. 내가 한 일은 다음 명령을 사용하여 pg_dumpLinux 시스템에서 찾는 것 입니다.locate

$ locate pg_dump

/usr/bin/pg_dump
/usr/bin/pg_dumpall
/usr/lib/postgresql/8.4/bin/pg_dump
/usr/lib/postgresql/8.4/bin/pg_dumpall
/usr/lib/postgresql/9.1/bin/pg_dump
/usr/lib/postgresql/9.1/bin/pg_dumpall

기본값 /usr/bin/pg_dump은 Postgresql 버전 8.4이므로 /usr/lib/postgresql/9.1/bin/pg_dump다른 포트에서 실행되는 9.1 데이터베이스에서 덤프할 때 명령줄에서 이를 지정했고 제대로 작동했습니다.

$ /usr/lib/postgresql/9.1/bin/pg_dump -p 5434

답변3

몇 가지 옵션이 있습니다.

Postgres 사이트에서 .deb 9.1을 다운로드하세요.

다음 제목의 이 페이지를 살펴보세요.Linux 다운로드(Debian) - PostgreSQL. 업데이트된 .deb를 사이트에서 직접 다운로드하거나 해당 저장소를 다시 지정하고 다음과 같은 명령을 실행할 수 있습니다.

apt-get install postgresql-9.1

데비안 백포트

여기에서 특정 버전을 찾을 수 있습니다.http://backports.debian.org/.

일반 버전 사용

당신은 할 수PostgreSQL 바이너리 버전 다운로드예 를 들어 홈 디렉토리에 설치하십시오 /opt.

기업용으로 사전 구축된 버전 중 하나를 다운로드하세요.

나는 이것에 대한 경험이 많지 않지만 당신은 할 수 있습니다다음 중 하나를 다운로드하세요.범용 버전과 유사하며 설치된 클라이언트를 사용하여 데이터베이스를 있는 그대로 덤프합니다.

교차 배포 패키지

당신은 할 수패키지 다운로드배포와 독립적으로 구축됩니다. 방금 버전 9.1.9를 다운로드했는데 여기에 pg_dump도구가 포함되어 있습니다.

소프트웨어는 .rpm 또는 .deb 형식으로 제공되며 에 설치됩니다 /opt/postgres/9.1. 특히 pg_dump이 도구는 /opt/postgres/9.1/bin/pg_dump.

답변4

오늘도 같은 문제가 발생했는데 Eric의 답변이 가장 정확한 것 같습니다. 문제는 postgresql-client의 다른 버전이 있고 pg_dump가 가장 오래된 클라이언트만 사용한다는 것일 수 있습니다.

그가 설명하는 전체 경로를 사용하면 이 문제를 해결할 수 있지만 더 쉬운 해결책은 postgresql-client-common 패키지를 제거(모든 클라이언트 제거)한 다음 postgresql-client-9.3을 다시 설치하는 것입니다. 그러면 원하는 최신 버전의 pg_dump가 남게 됩니다.

관련 정보