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

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

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

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

решение1

Я бы посоветовал обновить клиент, чтобы он оставался совместимым с той же версией, что и ваш сервер (например, 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

Связанный контент