Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 сен 2021, 04:31

Бэкап 1C на PosgreSQL под Windows

Автор Labaman, 23 июл 2017, 10:14

0 Пользователей и 1 гость просматривают эту тему.

Labaman

Добрый день!
Уже давно сталкиваюсь с проблемой автоматического бэкапа БД под Windows Server 2012 следующего плана:
Делаю бэкапы при помощи pg_dump.
1С и PostgreSQL работает на Linux-серваке, на нем 1 раз в неделю делается бэкап всех БД, причем всегда все отрабатывает нормально.
Требуется делать ежедневные бэкапы на файловый сервер под управлением Windows Server 2012. Для этих целей был поставлен pgAdmin4 v 1.6.
Написал батник:
rem @echo off
set PGADM="C:\Program Files (x86)\pgAdmin 4\v1\runtime\pg_dump.exe"
set Day=%DATE:~0,2%
set Month=%DATE:~3,2%
set Year=%DATE:~6,4%
set dat=%Day%%Month%%Year%
MKDIR D:\archive\1cdumps-%dat%
%PGADM% --host servak1c --port 5432 --username "postgres" --role "postgres" --no-password  --format custom --blobs --compress 9 --encoding UTF8 --verbose --file "D:\archive\1cdumps-%dat%\buha82_dump.backup" "buha82"
<--Далее в аналогичном формате все нужные мне базы-->>

Данный батник запихал в планировщик Windows, на каждый день в 3:20, с параметром "Выполнять вне зависимости от зарегистрированного пользователя" и вбил учетные данные админа.
Но тут начались "невероятные мистические события":
Если данный батник запустить вручную - он прекрасно отрабатывает.
Если же поставить его в планировщик, то он либо не отработает, либо создаст "нулевые" копии (файлы бэкапов 0 байт), либо же отработает нормально и создаст нормальные копии.
В общем если есть люди, которые админят 1C+Postgres, помогите, пожалуйста, разобраться с этой мистикой.... :trhregerhg:

Владислав Большов

По идеологическим причинам, терпеть не могу пользоваться скриптами для 1С. Если у предприятия хватило денег купить лицензию, купят и утилиту для нормального бэкапа. Если нет... сами понимаете!

Для PostgreSQL, Handy Backup, например. Там и для 1С что-то есть, кажется, но это отдельно вникать надо.

AIFrame

А почему не делать их локально на Linux-серваке, класть в фтп и по фтп-же виндой забрать? Ну или в самбу. Или кроном отправить в шару на винде?
Ну да ладно.

В целях диагностики:
    @echo off
    set PGADM="C:\Program Files (x86)\pgAdmin 4\v1\runtime\pg_dump.exe"
    SET LOG="C:\Log\log.txt"
    :: вот это зачем делать? Я понимаю, когда надо YYYY_mm_DD, но ты же в том же порядке ставишь, только без точек. Сделай реплейс да и все
    SET _today=%DATE%
    SET dat=%_today:.=%
    SET ARCH_FOLDER=D:\archive\1cdumps-%dat%
    if not EXIST %ARCH_FOLDER% (
        MKDIR %ARCH_FOLDER%
    )
    SET PG_PARAMS=--host servak1c --port 5432 --username "postgres" --role "postgres"
    SET PG_OPTS=--no-password  --format custom --blobs --compress 9 --encoding UTF8 --verbose
    SET PG_OUTP_buha82=--file "%ARCH_FOLDER%\buha82_dump.backup" "buha82"
    %PGADM% %PG_PARAMS% %PG_OPTS% %PG_OUTP_buha82% >>%LOG%

И читай лог

Теги:

Похожие темы (5)

74680

Ответов: 16
Просмотров: 3719

5827

Ответов: 2
Просмотров: 7784

Рейтинг@Mail.ru Rambler's Top100

Поиск