Дано: Кластеры PostgreSQL 9.6.7-1.1C и 1С, где "9.6.7-1.1C" - это версия установленного старого кластера, а "10.5-24.1C" - это версия нового кластера.
Задача: обновить 9.6.7-1.1C до 10.5-24.1C.
Стоит отметить, что для некоторых ситуаций при обновлении, будет критично время простоя кластера, особенно при больших объемах баз.
1. Для тех, кому время не критично или базы не много весят, рекомендую сделать копии всех баз через конфигуратор 1С.
2. Копируем файлы настроек доступа к хосту pg_hba.conf и настроек кластер postgresql.conf из C:\Program Files\PostgreSQL\9.6.7-1.1C\data в любое место, в нашем случае в D:\temp. Файлы нам понадобятся для внесения изменений в новые файлы настроек от 10.5-24.1C, если таковые у вас есть.
3. Заходим в cmd под администратором и вводим
C:\Program Files\PostgreSQL\9.6.7-1.1C\bin\pg_dumpall -U postgres > D:\temp\db.out
Где db.out - файл дампа всего кластера (всех баз). Во время процесса будет запрошен пароль от пользователя PostgreSQL postgres, который вы вводили при установке 9.6.7-1.1C.
Полученный файл будет сжат. Если у вас совсем мало места, тогда можно через команду | и gzip или 7zip заархивировать файл D:\temp\db.out.
Рассмотрим 3 варианта обновления кластера
I вариант через pg_dumpall и psql
4. Останавливаем службы сервера 1С и службу от 9.6.7-1.1C
5. Устанавливаем 10.5-24.1C (установка по умолчанию в каталог 10.5-24.1C), пароль postgres оставляем прежним для удобства. Если установка происходит на тот же самый порт, то нет необходимости менять правила брендмауэра Windows. Я заведомо не деинсталирую 9.6.7-1.1C и не удаляю файлы баз PostgreSQL, т.к. я могу в любой момент вернуться к старому кластеру и запустить его без проблем.
Для кого-то критично место на диске, тогда следует на данном этапе деинсталировать кластер 9.6.7-1.1C и удалить файлы баз.
6. Файлы настроек из п. 2 мы сравниваем с аналогичными файлами из в C:\Program Files\PostgreSQL\10.5-24.1C\data и переносим необходимые изменения в новый файл. Не забываем сделать копию изначальных файлов 10.5-24.1C. Если у вас не было изменений в файлах 9.6.7-1.1C, то этот пункт делать не нужно.
7. Перезапускаем службу 10.5-24.1C, для применения новых настроек конфигурационных файлов.
8. Заходим cmd под администратором и проходим в
C:\Program Files\PostgreSQL\10.5-24.1C\bin\psql -U postgres -f D:\temp\db.out
Для минимизации времени отключения кластера можно сделать следующим образом:
- в п.5, устанавливая 10.5-24.1C мы ставим новый порт 5433 и службы кластеров должны быть запущены
- далее в cmd запускаем:
C:\Program Files\PostgreSQL\9.6.7-1.1C\bin\pg_dumpall -U postgres -p 5432 > D:\temp\db.out |
C:\Program Files\PostgreSQL\10.5-24.1C\bin\psql -U postgres -p 5433 -f D:\temp\db.out
Возможно, придется настроить брендмауэр для порта 5433
Во время процесса восстановления периодически нужно вводить пароль от пользователя postgres.
11. Стартуем службу сервера 1С.
10. После восстановления необходимо сделать переиндексацию в конфигураторе 1С или с помощью команды reindex database <имя базы> или с помощью PGAdmin 4.
Если у вас не работает PGAdmin 4, одно из решений, установить его отдельно с сайта разработчика
https://www.postgresql.org/ftp/pgadmin/pgadmin4/v4.8/windows/
II вариант через pg_upgrade (миграция)
5. Останавливаем службу 9.6.7-1.1C
6. Устанавливаем 10.5-24.1C, пароль postgres оставляем прежним.
7. Останавливаем службу 10.5-24.1
8. Заходим cmd под администратором и вводим
C:\Program Files\PostgreSQL\10.5-24.1C\bin\pg_upgrade - U postgres --old-datadir "C:/Program Files/PostgreSQL/9.6.7-1.1C/data" --new-datadir "C:/Program Files/PostgreSQL/10.5-24.1C/data" --old-bindir "C:/Program Files/PostgreSQL/9.6.7-1.1C/bin" --new-bindir "C:/Program Files/PostgreSQL/10.5-24.1C/bin"
Во время процесса миграции периодически нужно вводить пароль от пользователя postgres.
9. Стартуем службу 10.5-24.1C
10. Стартуем службу сервера 1С.
11. После восстановления необходимо сделать переиндексацию в конфигураторе 1С или с помощью команды reindex database <имя базы> или с помощью PGAdmin 4.
III вариант через полную переустановку кластеров PostgreSQL и 1С
4. Обязательное выполнение п. 1 и НЕ обязательное п. 3
5. Удаление 9.6.7-1.1C и баз из кластера 1С
6. Установка 10.5-24.1C.
7. Файлы настроек из п. 2 мы сравниваем с аналогичными файлами из в C:\Program Files\PostgreSQL\10.5-24.1C\data и переносим необходимые изменения в новый файл. Не забываем сделать копию изначальных файлов 10.5-24.1C. Если у вас не было изменений в файлах 9.6.7-1.1C, то этот пункт делать не нужно.
8. Перезапускаем службу 10.5-24.1C, для применения новых настроек конфигурационных файлов.
9. Создание и загрузка баз 1С из dt архивов п.1.