Обновление PostgreSQL 9.2 - 9.6 с нулевым временем простоя

9

Я должен обновить с PostgreSQL 9.2 до 9.6. Ниже приведены проблемы, с которыми я сталкиваюсь:

  1. Поскольку у нас есть настройка потоковой репликации, а PostgreSQL не поддерживает обновление до более низкой версии в режиме потоковой репликации, когда я обновляю master, мне приходится перестраивать ведомые устройства, и это занимает 3 часа. У меня нет этого свободного времени. В любой момент времени нам нужен один раб и один мастер. Есть ли другой способ выполнить обновление без необходимости перестраивать ведомые устройства, используя потоковую репликацию?

  2. Для построения логической репликации мы думали об использовании slony, но у slony есть некоторые ограничения в том, что он не реплицируется автоматически:

    • Изменения в больших объектах (BLOBS)
    • Изменения, сделанные командами DDL
    • Изменения в пользователях и ролях
      ... и наше приложение имеет непрерывные команды создания. Поэтому мы не можем использовать слони.

Пожалуйста, предложите что-нибудь, чтобы избежать перестройки подчиненного устройства и выполнить обновление с минимальным временем простоя и одним ведущим и одним подчиненным.

Prabhat
источник
3
Те же проблемы, которые мешают вам использовать Slony, не позволят вам использовать другие инструменты, такие как Bucardo, Londiste, pglogical и т. Д. Вам нужно будет адаптировать приложение, чтобы оно не выполняло непрерывное создание. И да, LOBs будет проблемой.
Крейг Рингер

Ответы:

1

Обновление базы данных потребует простоя на ваших серверах. Чтобы свести к минимуму время простоя, я бы посоветовал вам установить более новую версию на новом сервере, создать для нее настройку репликации и сбросить здесь все данные из старого экземпляра, а также изменить указание сервера, чтобы приложение указывало на новый сервер для подключения к базе данных.

Лохит Гупта
источник
2
Ну, мы недавно обновили базу данных на 9 ТБ с 9,3 до 9,6, используя pg_upgrade. Это заняло несколько минут (на главном и подчиненном вместе взятых), а на самосвал требуется более 3 часов.
Дезсо
Но взятие дампа не требует простоев.
Лохит Гупта
Абсолютно то, что я имел в виду (и забыл добавить), было то, что восстановление резервной копии занимает примерно то же самое время, что и ее получение, что означает несколько наших простоев в нашем случае.
Дезсо
Спасибо за предложение, так что я занимался модернизацией мастера и восстановлением раба, это правильная процедура
Прабхат
1
Шаг 2 не сработает. Формат WAL не совместим между основными версиями, поэтому необходимо pg_upgrade.
Дезсо