Обновление PostgreSQL на Windows

13.01.26

База данных - Инструменты администратора БД

Указана последовательность действий при обновлении PostgreSQL на примере Windows. Также описаны некоторые особенности.

В данной инструкции описана последовательность действий при обновлении PostgreSQL на примере Windows, а также рассмотрены ключевые особенности и лучшие практики.

Дано:

  • Старый кластер: PostgreSQL 9.6.7-1.1C

  • Новый кластер: PostgreSQL 10.5-24.1C

Задача: Обновить кластер 9.6.7-1.1C до 10.5-24.1C.

Важно! Для многих систем критично время простоя кластера, особенно при работе с большими объемами баз данных. Выбирайте вариант обновления, исходя из ваших требований ко времени простоя.


Подготовительные шаги (общие для всех вариантов)

  1. Резервное копирование баз 1С. Для максимальной надежности создайте резервные копии всех баз данных через конфигуратор 1С (файлы .dt). Это ваш главный "запасной парашют".

  2. Копирование файлов конфигурации. Сохраните файлы pg_hba.conf и postgresql.conf из каталога данных старого кластера (C:\Program Files\PostgreSQL\9.6.7-1.1C\data) в надежное место (например, D:\temp). Они понадобятся, если вы вносили в них изменения и хотите перенести их в новую версию.

  3. Создание полного дампа кластера. Откройте командную строку (cmd) с правами администратора и выполните команду:

    "C:\Program Files\PostgreSQL\9.6.7-1.1C\bin\pg_dumpall.exe" -U postgres > D:\temp\db.out
    

    В процессе будет запрошен пароль суперпользователя postgres. Этот дамп является дополнительной страховкой и используется в Варианте I.


Вариант I: Обновление через pg_dumpall и psql (надежный, но медленный)

Этот метод заключается в полной выгрузке данных и последующей их загрузке в новый, чистый кластер.

  1. Остановка служб. Остановите службу сервера 1С и службу старого кластера PostgreSQL (postgresql-x64-9.6).

  2. Установка нового кластера. Установите PostgreSQL 10.5-24.1C. Для удобства используйте тот же пароль для пользователя postgres и тот же порт (по умолчанию 5432), что и в старой версии.

  3. Перенос настроек. Сравните сохраненные файлы конфигурации (из шага 2) с новыми файлами в C:\Program Files\PostgreSQL\10.5-24.1C\data. Аккуратно перенесите только необходимые вам изменения.

  4. Применение настроек. Перезапустите службу нового кластера (postgresql-x64-10) для применения изменений.

  5. Восстановление данных из дампа. В командной строке с правами администратора выполните:

    "C:\Program Files\PostgreSQL\10.5-24.1C\bin\psql.exe" -U postgres -f D:\temp\db.out
    

    Периодически может потребоваться ввод пароля.

  6. Запуск служб. Запустите службу сервера 1С.

  7. Обслуживание баз. После восстановления обязательно выполните переиндексацию баз данных (через конфигуратор 1С или командой REINDEX DATABASE <имя_базы>;).

Оптимизация для минимизации времени простоя

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

  1. Установка. Установите новый кластер 10.5-24.1C на другой порт, например, 5433. Обе службы (старая и новая) должны быть запущены.

  2. Перенос данных. Выполните в cmd следующую команду, которая напрямую передает данные без создания промежуточного файла:

    "C:\Program Files\PostgreSQL\9.6.7-1.1C\bin\pg_dumpall.exe" -U postgres -p 5432 | "C:\Program Files\PostgreSQL\10.5-24.1C\bin\psql.exe" -U postgres -p 5433
    
  3. Завершение. После завершения процесса остановите старый кластер, измените порт нового кластера на стандартный (5432), перезапустите его и службы 1С.


Вариант II: Обновление через pg_upgrade (быстрый, предпочтительный)

Этот метод выполняет бинарное обновление данных на месте, что значительно быстрее, чем дамп/восстановление.

  1. Установка нового кластера. Установите PostgreSQL 10.5-24.1C, используя тот же пароль для postgres.

  2. Остановка служб. Остановите службу обоих кластеров: старого (9.6.7-1.1C) и нового (10.5-24.1C).

  3. Инициализация переменных. Для удобства в cmd задайте пути:

    set OLD_BIN="C:\Program Files\PostgreSQL\9.6.7-1.1C\bin"
    set NEW_BIN="C:\Program Files\PostgreSQL\10.5-24.1C\bin"
    set OLD_DATA="C:\Program Files\PostgreSQL\9.6.7-1.1C\data"
    set NEW_DATA="C:\Program Files\PostgreSQL\10.5-24.1C\data"
    
  4. (Рекомендуется) Проверка перед обновлением. Запустите pg_upgrade в режиме проверки. Это не изменит данные, но покажет возможные проблемы.

    %NEW_BIN%\pg_upgrade.exe --check -U postgres --old-datadir=%OLD_DATA% --new-datadir=%NEW_DATA% --old-bindir=%OLD_BIN% --new-bindir=%NEW_BIN%
    
  5. Выполнение обновления. Если проверка прошла успешно, запустите процесс обновления:

    %NEW_BIN%\pg_upgrade.exe -U postgres --old-datadir=%OLD_DATA% --new-datadir=%NEW_DATA% --old-bindir=%OLD_BIN% --new-bindir=%NEW_BIN%
    
  6. Запуск нового кластера. Стартуйте службу 10.5-24.1C.

  7. (Обязательно) Сбор статистики. После обновления pg_upgrade создает в рабочем каталоге файл analyze_new_cluster.bat. Обязательно запустите его, чтобы оптимизатор запросов нового кластера работал корректно.

  8. Запуск 1С. Стартуйте службу сервера 1С.


Вариант III: Полная переустановка

Этот метод подходит, если вы хотите начать "с чистого листа" или другие методы не сработали.

  1. Резервное копирование. Убедитесь, что у вас есть .dt файлы всех баз (шаг 1).

  2. Удаление. Полностью удалите старый кластер PostgreSQL (9.6.7-1.1C).

  3. Установка. Установите новый кластер 10.5-24.1C.

  4. Настройка. При необходимости перенесите нужные вам параметры в файлы конфигурации нового кластера (шаг 2).

  5. Создание и загрузка баз. Создайте новые, пустые базы данных и загрузите в них данные из .dt архивов, созданных на шаге 1.


Замечание о PGAdmin 4

Если после обновления у вас возникли проблемы с PGAdmin, рекомендуется установить последнюю версию с официального сайта. Это обеспечит совместимость и безопасность.

Официальная страница загрузки: https://www.pgadmin.org/download/

Вступайте в нашу телеграмм-группу Инфостарт

PostgreSQL Обновление PostgreSQL PostgreSQL 1С Windows Server Миграция баз данных pg_upgrade pg_dumpall psql Резервное копирование backup Дамп базы данных dump Восстановление базы данных restore Кластер PostgreSQL postgresql.conf pg_hba.conf Переиндексация reindex

См. также

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку одновременно в несколько потоков. А так же автоматически, без непосредственного участия пользователя. Решение в Реестре отечественного ПО

24900 руб.

20.08.2024    63434    332    160    

297

Инструменты администратора БД Инструментарий разработчика Роли и права Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    24272    92    42    

101

Закрытие периода Инструменты администратора БД Корректировка данных Бухгалтер Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 Россия Бухгалтерский учет Платные (руб)

Расширение «Оперативное проведение» в 4 раза уменьшает время проведения документов и закрытия месяца. Является комплексным решением проблем 62 и 60 счетов. Оптимизирует проведение при включенной функциональной опции «Раздельный учет НДС». Используется в более 10 организациях уже 2 года. Совместимо с конфигурацией Бухгалтерия 3.0 (+КОРП).

14640 руб.

29.04.2020    49095    134    159    

89

Инструменты администратора БД Роли и права Системный администратор Программист Пользователь 1С 8.3 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Документооборот 1С:Зарплата и кадры государственного учреждения 3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)

Роли… Вы тратите много времени и сил на подбор ролей среди около 2400 в ERP или 1500 в Рознице 2, пытаясь понять какими правами они обладают? Вы все время смотрите права в конфигураторе или отчетах чтоб создать нормальные профили доступа? Вы хотите наглядно видеть какие права дает профиль и редактировать все в простом виде? А может хотите просто указать подсистему и дать права на просмотр и добавление на объекты и не лезть в дебри прав и чтоб обработка сама подобрала нужные роли? Все это теперь стало возможно! Обновление от 17.06.2025, версия 1.3

21960 руб.

06.12.2023    21704    76    10    

109

Инструменты администратора БД Системный администратор 1С:Предприятие 8 1С:Комплексная автоматизация 1.х 1С:Управление производственным предприятием Платные (руб)

Конфигурация Комплексная автоматизация 1.1 (и УПП 1.3 тоже) хранит файлы и изображения в справочнике Хранилище дополнительной информации в реквизите Хранилище типа ХранилищеЗначений. Та же история с ВложениямиЭлектроннойПочты. Но при этом присоединенные файлы в Электронном документообороте хранит в томах на диске. Эта доработка позволяет использовать стандартный механизм хранения файлов, изображений и вложений электронных писем в томах на диске. При этом можно разделить тома хранения по объектам конфигурации.

5490 руб.

10.11.2015    65927    102    59    

84

Инструменты администратора БД Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

Брандмауэр для сервера 1С включает в себя управление возможностью начала и возобновления сеансов пользователей по различным условиям, ограничение общего числа возможных сеансов для работы с информационной базой, резервирование возможности работы с информационной базой определенных польззователей, запрет запуска нескольких сеансов для пользователя, журнализация событий начала (возобновления) и завершения (гибернации) сеансов, ведение списка активных сеансов для информационных баз кластера серверов

12200 руб.

06.02.2017    35542    149    18    

54
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Indgo 433 14.06.19 11:35 Сейчас в теме
статья полезна, только есть ли смысл переходить на 10?
2. extalionos 116 14.06.19 11:51 Сейчас в теме
(1) Перевел в этом году несколько баз и Linux и Windows.
Со стороны 1С проблем после обновления не заменил.
Замеров производительности не производил, но визуально 10 стала работать шустрее. На Ubuntu значительно быстрее.
Говоря о дистрибутиве PostgreSQL 10.5 от 1С, сделаны следующие улучшения:
1. Перед построением плана запроса выполняется упрощение запроса (удаление избыточных соединений и т.д.). План запроса строится по упрощенному запросу.
2. При вычислении стоимости сортировки учитываются стоимость сортировки одной или нескольких колонок, стоимость самой сортировки, количество операций сравнения полей.
3. Улучшена оценка стоимости соединения при построении плана запроса в том случае, если в планируемом запросе используется соединение таблиц с условием по нескольким колонкам.
4. При планировании запроса, содержащего выражение СГРУППИРОВАТЬ ПО, планировщик выбирает наиболее оптимальный индекс из имеющихся (исходя из списка полей в выражении). На основании выбранного индекса планировщик может изменить порядок полей в выражении СГРУППИРОВАТЬ ПО для того, чтобы порядок полей соответствовал выбранному индексу.

Источник: https://dl04.1c.ru/content/AddCompPostgre/10_5_24_1C/postgreUpdate_ru.htm#934bfa22-ee3d-11e8-a3f7-0050569f678a

Про PostgreSQL Pro судить не могу. Стоит денег)
A_Max; cleaner_it; +2 Ответить
3. Indgo 433 14.06.19 12:13 Сейчас в теме
Я перевел одну базу на Ubuntu, одну на виндовоз. Та что на винде на 11 - начала потреблять больше ресов. А так все на том же уровне.
Все эти заявления про то что 11 быстрее - на мой взгяд маркетинговый ход.
Так же тесты дома делал на 32 ядреном амд проце с 64 Гб оперативы и Sams SSD 970 pro на тестах Гилева. Под Виндовозом 10 - Разница 1-2 роцента в пределах погрешности между 9 и 11 версией. На серверных платформах так же прироста не заметил.
4. extalionos 116 14.06.19 15:20 Сейчас в теме
(3) То что не стало хуже уже хорошо:)
5. inomaratadeath 17.04.20 15:57 Сейчас в теме
7. Файлы настроек из п. 2 мы сравниваем с аналогичными файлами из в C:\Program Files\PostgreSQL\10.5-24.1C\data и переносим необходимые изменения в новый файл.


Надо именно вносить изменения? Просто скопировать с старого каталога в новый - не получится?
И почему нельзя просто директорию с базами перенести в новый каталог установки pgsql и переиндексировать?
7. extalionos 116 17.04.20 18:08 Сейчас в теме
(5) На сколько я знаю, структура файлов настройки разная. Соответственно возможны ошибки. Перенести можно, только вот сомневаюсь что у вас что-то запустится.
6. inomaratadeath 17.04.20 17:16 Сейчас в теме
8. Заходим cmd под администратором и вводим
C:\Program Files\PostgreSQL\10.5-24.1C\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"


в каталоге с установленным экземпляром нет pg_upgrade. Ни в старом экземпляре, ни в новом. Наверное - надо исправить на
C:\Program Files\PostgreSQL\10.5-24.1C\bin\pg_upgrade - U postgres
и далее по тексту.
8. extalionos 116 17.04.20 18:08 Сейчас в теме
9. inomaratadeath 18.04.20 17:25 Сейчас в теме
C:\Windows\System32>t:\PostgreSQL\11.5-12.1C\bin\pg_upgrade - U postgres --old-d
atadir "t:/PostgreSQL/9.4.2-1.1C/data" --new-datadir "t:/PostgreSQL/11.5-12.1C/d
ata" --old-bindir "t:/PostgreSQL/9.4.2-1.1C/bin" --new-bindir "t:/PostgreSQL/11.
5-12.1C/bin"

Try "pg_upgrade --help" for more information.
Failure, exiting



в логах винды ничего нет ((
10. inomaratadeath 20.04.20 14:44 Сейчас в теме
psql:t:/temp/db.out:1818156: \connect: FATAL:  database files are incompatible w
ith server
DETAIL:  The data directory was initialized by PostgreSQL version 9.4, which is
not compatible with this version 11.5.


:) прелесть какая...

короче, самый простой метод -- через *.dt
philya; KolBbl4; +2 Ответить
11. skros 04.10.21 11:44 Сейчас в теме
добрый день

в версии posgresql 12.7-5.1C есть проблема pg_dump начинает делать дамп сутками, когда ранее делал за 4-5 минут, предыдущий релиз все норм

может кому полезно будет
dime2; BigB; +2 Ответить
12. dime2 38 29.07.25 21:01 Сейчас в теме
Дополнительные детали.
II вариант через pg_upgrade (миграция)
1. Дать полные права пользователю windows, из-под которого делается pg_upgrade на папки с каталогами обоих postgres или только для обеих data.
Иначе можно словить
could not create lock file "postmaster.pid": Permission denied

2. Прописать в pg_hba.conf обоих версий вход без запроса пароля
Иначе можно словить
no password supplied

Так как некоторые версии требуют пароля пользователя postges, но у pg_upgrade нет опции его ввести или запросить.
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
IPv6 из-за того, что часто localhost спонтанно становится ::1/128 даже при отключённом IPv6.

3. После запуска нового postgres
11. После восстановления необходимо сделать переиндексацию в конфигураторе 1С или с помощью команды reindex database <имя базы> или с помощью PGAdmin 4.

3.1. vacuumdb -U postgres --all --analyze-in-stages
3.2. reindexdb -U postgres --all
4. После завершения миграции вернуть права доступа pg_hba.conf на md5 (или что там стояло) вместо trust и убрать права пользователя windows из-под которого выполнялась миграция c каталогов data.
Slava_prog; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация