Бэкап базы PostgreSQL через pg_dump в Windows: инструкция для новичков
- Необходимо сделать быструю резервную копию базы PostgreSQL перед обновлением конфигурации 1С.
- Графическая утилита pgAdmin зависает или выдает ошибку при создании дампа.
- Требуется написать простой скрипт для регулярного снятия резервных копий средствами СУБД.
Пошаговая инструкция по созданию бэкапа через CMD:
Утилита pg_dump.exe входит в комплект поставки PostgreSQL и позволяет выгрузить базу данных в компактный сжатый файл .backup прямо на работающем сервере без отключения пользователей.
- Откройте Командную строку от имени Администратора: Нажмите Пуск → введите
cmd→ нажмите правой кнопкой «Запуск от имени администратора». - Перейдите в папку bin вашего PostgreSQL:
(номер версии папки может отличаться: 14-1C, 15-1C, 16-1C).cd /d "C:\Program Files\PostgreSQL\15-1C\bin" - Выполните команду создания резервной копии:
pg_dump.exe -h localhost -p 5432 -U postgres -F c -b -v -f "D:\Backup_1C\buh_prod.backup" ib_buhgalteriya - Расшифровка ключей команды:
-h localhost— сервер подключения;-U postgres— имя суперпользователя СУБД;-F c— специальный сжатый кастомный формат PostgreSQL (Custom format);-f "путь"— куда сохранить файл;ib_buhgalteriya— точное имя вашей базы данных в PostgreSQL.
- Введите пароль: Консоль запросит пароль пользователя
postgres. Введите его (символы при вводе отображаться не будут) и нажмите Enter.
Частые вопросы (FAQ)
Как сделать так, чтобы скрипт не спрашивал пароль при автоматическом запуске?
Создайте в папке C:\Users\ИмяПользователя\AppData\Roaming\postgresql файл с именем pgpass.conf и пропишите в нем строку вида: localhost:5432:*:postgres:ВашПароль.
Как потом восстановить базу из созданного файла .backup?
Используйте утилиту pg_restore: pg_restore.exe -h localhost -p 5432 -U postgres -d ИмяБазы -v "D:\Backup_1C\buh_prod.backup".
Выгонять ли пользователей 1С во время работы pg_dump?
Нет! PostgreSQL делает согласованный снапшот данных в режиме MVCC (многоверсионности). Пользователи могут спокойно продолжать выписывать документы во время создания дампа.
Чем формат Custom (-F c) лучше простого SQL-дампа (-F p)?
Формат Custom сжат алгоритмом zlib (занимает в 5-7 раз меньше места) и позволяет восстанавливать базу многопоточно в несколько ядер процессора командой pg_restore -j 4.