Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

PostgreSQL: как сделать дамп базы (pg_dump) и развернуть в 1С (pg_restore)

Обновлено: 26.08.2026  ·  Официальная база знаний
  • Необходимо перенести рабочую базу 1С с одного сервера PostgreSQL на другой.
  • База данных слишком большая (более 50-100 ГБ), и стандартная выгрузка в файл .dt зависает или выдает ошибку нехватки памяти.
  • Требуется быстро создать точную резервную копию базы данных без остановки работы пользователей.

Что такое pg_dump и pg_restore простыми словами?

pg_dump — это специальная служебная утилита PostgreSQL, которая «фотографирует» всю вашу базу данных 1С и аккуратно упаковывает ее в один сжатый файл-архив (дамп). pg_restore — утилита, которая распаковывает этот файл и создает готовую к работе базу на новом сервере.

Шаг 1. Создание резервной копии (Дампа)

  1. Зайдите на сервер, где работает база, и откройте командную строку (cmd в Windows или терминал в Linux).
  2. Выполните команду для выгрузки (замените имена на свои):
    # Для Windows (запуск из папки bin PostgreSQL):
    "C:\Program Files\PostgreSQL 14-1C\bin\pg_dump.exe" -h localhost -p 5432 -U postgres -F c -b -v -f "C:\Backups\1c_buh.dump" 1c_buh_base
  3. Введите пароль пользователя postgres. Начнется процесс архивации, и в папке появится файл 1c_buh.dump.

Шаг 2. Создание пустой базы на новом сервере

  1. Перенесите файл 1c_buh.dump на новый сервер.
  2. Создайте чистую пустую базу данных в PostgreSQL (например, через консоль pgAdmin или команду):
    createdb -h localhost -p 5432 -U postgres -O postgres 1c_buh_new

Шаг 3. Восстановление данных (pg_restore)

  1. Выполните команду восстановления базы из дампа:
    "C:\Program Files\PostgreSQL 14-1C\bin\pg_restore.exe" -h localhost -p 5432 -U postgres -d 1c_buh_new -v "C:\Backups\1c_buh.dump"
  2. После завершения добавьте созданную информационную базу в Консоли кластера серверов 1С:Предприятия.
Практический опыт инженера: Для ускорения восстановления больших баз на многоядерных серверах добавляйте параметр параллелизма -j: например, pg_restore -j 4 восстановит базу в 4 потока в разы быстрее.

Частые вопросы (FAQ)

Почему перенос через pg_dump лучше, чем через выгрузку .dt из 1С?

Формат .dt не предназначен для больших баз и резервного копирования. На базах от 30-50 ГБ выгрузка в .dt часто падает с ошибкой нехватки памяти, а pg_dump работает на уровне СУБД, делает копию без остановки пользователей и гарантирует целостность.

Что означает параметр -F c в команде pg_dump?

Параметр -F c указывает создавать дамп в специальном бинарном сжатом формате (Custom format). Он занимает меньше места на диске и позволяет восстанавливать базу в несколько параллельных потоков.

Нужно ли выгонять пользователей из 1С при создании pg_dump?

Нет, не обязательно. PostgreSQL использует механизм MVCC (многоверсионность транзакций), благодаря чему дамп создается в согласованном состоянии на момент старта команды без блокировки работы людей.

Что делать, если при восстановлении pg_restore сыпятся предупреждения (warnings)?

Небольшие предупреждения о существующих системных объектах (например, public schema) допустимы и не являются критической ошибкой, если в конце команда завершилась без фатального сбоя (Fatal Error).