
우리는 방금 9.3에서 9.5로 업그레이드한 PostgreSQL 서버를 보유하고 있습니다. 우리의 모든 컴퓨터에는 9.3 클라이언트 패키지가 설치되어 있으며 결과적으로 pg_dump
이후 버전과 호환되지 않으므로 더 이상 작동하지 않습니다.
당연히 클라이언트 소프트웨어를 업그레이드해야 합니다. 제 질문은 어떤 버전으로 업그레이드해야 합니까?입니다. 처음에는 9.* 시리즈의 최신 릴리스인 9.6으로 전환하여 나중에 서버를 다시 업그레이드할 경우 이런 일이 발생하지 않도록 해야 한다고 생각했습니다. 하지만 그렇다면 10이나 11로 가면 어떨까요? 이와 같이 주요 버전을 혼합하면 단점이 있습니까? 10개 및 11개 클라이언트는 안정적인 것으로 간주됩니까?
답변1
내 조언은 서버와 동일한 버전에서 호환성을 유지하도록 클라이언트를 업그레이드하는 것입니다(예: pg_dump v9.5.x가 9.5.x postgres 서버에서 작동함). 버전 10을 사용하여 버전 9.5.x에서 pg_dump를 수행할 수 있지만 매일 수행할 것으로 예상하여 발생할 수 있는 버그를 처리할 준비가 되어 있어야 합니다.
표면적으로는 pg_dump 명령에 발생한 변경 사항이 새로운 명령 인수(아래 표시)임에도 불구하고 향후 버전의 클라이언트를 사용하여 이전 버전의 postgresql 서버에 대한 백업의 다양한 순열에 대해 테스트가 엄격한지 의심됩니다.
- 9.6에서는
--strict-names argument
- 10
--no-blobs
--no-publications
--no-subscriptions
--no-sync
주장을 소개
백업 수행이 항상 서버 자체에서 로컬로 호출될 필요는 없으므로 이 목적을 위해 항상 다른 머신을 사용할 수 있습니다(원격으로 백업 호출).
운영 체제 및 패키지 관리자에 따라 최신 버전의 pg_dump가 다음과 같이 이미 서버에 있을 수 있습니다. /usr/lib/postgresql/your_server_version_here/bin/, 다음과 같이 항상 새 버전에 대한 심볼릭 링크를 만들 수 있습니다(데비안 시스템으로 가정).
sudo ln -s --force /usr/lib/postgresql/9.5/bin/pg_dump /usr/bin/pg_dump