Назад | Перейти на главную страницу

Клиент PostgreSQL v10 или v11 с сервером v9

У нас есть сервер PostgreSQL, который мы только что обновили с 9.3 до 9.5. На всех наших машинах установлен клиентский пакет 9.3, и в результате pg_dump больше не работает, поскольку не поддерживает прямую совместимость.

Очевидно, мы должны обновить клиентское программное обеспечение - у меня вопрос, до какой версии мы должны обновиться? Сначала я подумал, что нам следует перейти на 9.6, который является последним выпуском в серии 9. *, чтобы спасти нас от этого в будущем, если мы снова обновим сервер. Но если так, то почему бы не перейти на 10 или 11? Есть ли недостатки у такого смешивания основных версий? Считаются ли 10 и 11 клиентов стабильными?

Я бы посоветовал обновить клиент, чтобы он оставался совместимым с той же версией, что и ваш сервер (например, pg_dump v9.5.x работает с серверами postgres 9.5.x). Вы можете использовать версию 10 для выполнения pg_dump в версии 9.5.x, но тогда вы должны быть готовы бороться с любыми ошибками, которые могут возникнуть, если вы будете делать это ежедневно.

На первый взгляд, даже несмотря на то, что изменения, которые произошли с командой pg_dump, были новыми аргументами команды (показаны ниже), я сомневаюсь, что тестирование будет столь же тщательным для различных перестановок резервных копий с использованием клиентов будущих версий на более старые версии сервера postgresql.

  • 9.6 представил --strict-names argument
  • 10 представили --no-blobs --no-publications --no-subscriptions --no-sync аргументы

Поскольку резервное копирование не всегда нужно запускать локально на самом сервере, для этой цели всегда можно использовать разные машины (для удаленного запуска резервного копирования).

В зависимости от операционной системы и диспетчера пакетов более новая версия pg_dump, вероятно, уже находится на сервере, как в / usr / lib / postgresql / ваш_сервер_версия_здесь / bin /, вы всегда можете создать символическую ссылку на новую версию следующим образом (предполагается, что система debian):

sudo ln -s --force /usr/lib/postgresql/9.5/bin/pg_dump /usr/bin/pg_dump