Дайте угадаю, Вы хотите поскорее скопировать команду при помощи, которой можно по-быстрому сделать бэкап базы 1С ?
Замечательно!
И так, вы копируете команду и запустив ее у себя, вместо создания резервной копии получаете ошибку и возможно уже не первую на сегодня.
И что делать ? снова в путь по сайтам, форумам, телегам в поисках «почему не работает бэкап в PostgreSQL»
Нет, Коллега, имея дело из СУБД PostgreSQL 14, следует набраться немного терпения и как минимум прочитать внимательно несколько строк ниже.
Резервное копирование в PostgreSQL зависит от многих факторов:
- В какой операционной системе выполняем команду
- Как настроена безопасность на кластере СУБД
- Удаленное или локальное подключение к СУБД PostgreSQL 14.
- Какую программу мы используем для резервного копирования.
Конечно, в рамках одной статьи не разобрать все возможные варианты, поэтому мы возьмем за пример лишь пару классических случаев:
- База 1С на СУБД в дата центре – Ubuntu Server 22.04 LTS (Удаленно)
- База 1С у нас в локальном расположении (Windows Server 2022)
Сперва рассмотрим вариант №2, когда PostgreSQL на Windows Server 2022 в нашей локальной сети.
Доступ к СУБД у нас разрешен только из 127.0.0.1 (localhost) как и рекомендуется по безопасности, если Сервер 1С и СУБД PostgreSQL 14 у Вас находятся вместе на одном хосте.
Иначе в файле (файрволле постгреса pg_hba.conf) надо прописать IP, где у вас находится Сервер 1С, строка – пример: host all all 192.168.1.50/32 md5 вместо 127.0.0.1/32
Соответственно настройки в pg_hba.conf и postgresql.conf будут следующие:
Обратите внимание на “стрелку” в pg_hba.conf
РЕКОМЕНДУЕТСЯ! Закомментировать ipv6 если вы используете ipv4
Если Сервер 1С у Вас на другом сервере (Хосте) , тогда в postgresql.conf в listen_addresses пишем IP который вы указываете на Сервере 1С для подключения к удаленному хосту, где работает PostgreSQL (например так: listen_addresses = ‘192.168.1.35’)
listen_addresses = ‘192.168.1.35’ это ip нашего сетевого IP интерфейса, который “слушает” наш PostgreSQL.
Другими словами 192.168.1.35 это IP на сервере СУБД PostgreSQL.
Подключившись например по RDP к нашему серверу (Windows Server 2022) из нашего ПК, мы запускаем CMD и выполним резервное копирование базы «BUX» на диск E:/BACKUP
(Скрипт мы выполняем в терминале, где и работает PostgreSQL 14 + Сервер 1С и располагаются базы 1С Предприятия 8.3.21)
Выполнять резервное копирование базы 1С мы будем самым простым и надежным способом, используя утилиту «pg_dump».
После установки СУБД PostgreSQL она поселилась у Вас в каталоге «Bin»:
“C:\Program Files\PostgreSQL 1C\14\bin\pg_dump”
pg_dump это консольная программа, соответственно работать с ней мы будем в командной строке:
1 |
"C:\Program Files\PostgreSQL 1C\14\bin\pg_dump" -U postgres -F c -b -v -f "E:\BACKUP\bux_13_10_2022.dump" bux |
Программа попросит нас ввести пароль пользователя postgres
Готово!
Бэкап уже на диске!
Разберем вкратце, что мы написали выше:
Путь к pg_dump: “C:\Program Files\PostgreSQL 1C\14\bin\pg_dump”
Роль от имени которой выполняем подключение к СУБД: -U postgres
Доп. Параметры: -F c -b -v –f
Где будет создан бэкап: “E:\BACKUP\bux_13_10_2022.dump”
База что бэкапим: bux
Чтоб всегда не писать полный путь к каталогу с программой pg_dump, можно внести ее путь размещения в переменные среды в Path:
Нажмите на клавиши» «Win» + «R».
В окне «Выполнить» введите команду: «systempropertiesadvanced» (без кавычек), а затем нажмите на кнопку «ОК».
Добавляем переменные среды в Path (Только добавляем!)
C:\Program Files\PostgreSQL 1C\14\bin (Для 1С)
C:\Program Files\PostgreSQL 1C\14\lib (Для 1С)
В следующей части статьи, мы разберём резервное копирование баз 1С в PostgreSQL на удаленном сервере Ubuntu server 22.04 LTS