четверг, 12 января 2012 г.

1С на сервере postgre — резервирование базы посредством командной строки (cmd)


Все мы знаем, что резервировать данные просто необходимо.
Для того что-бы делать резервную копию базы postgre — необходимо выгонять пользователей из базы. Но некоторые недобросовестные пользователи или не выходят из базы уходя с работы или имеют привычку подключаясь к базе через удаленку — тупо закрывать удаленку, а из базы не выходить.

Как мы поступим. Собьем настройки сетевой карты, а после выполнения резервирования — поставим все на место ;)
Итак решение:
Для начала узнаем индекс нашего с вами сетевого интерфейса — это нам необходимо для того что-бы не использовать названия (а они иногда называются кириллицей) сетевых подключений.
netsh interface ipv4 show interface
Данная команда выведет таблицу.
В моем случае индекс равен 11.
Далее создаем bat файл и пишем следующее:
netsh interface ip set address 11 source=static addr=192.168.2.56 mask=255.255.255.0 gateway=192.168.1.254
"C:\Program Files (x86)\1cv82\8.2.13.219\bin\1cv8.exe" config (/S"server\base1c") /N"LOGIN" /P"PASSWORD" /DumpIB "E:\backup\db\base.dt"
netsh interface ip set address 11 source=static addr=192.168.1.56 mask=255.255.255.0 gateway=192.168.1.254
"C:\Program Files\WinRAR\RAR.exe" a -agYYYYMMDD-NN E:\backup\db\backup "D:\1Cbackup\elitdb\base.dt"
Теперь остается данный батник поставить в планировщик и запускать от имени супер админа, т.к. меняются настройки сетевой карты.
Что мы получаем:
В назначенное время, ip адрес на сервере меняется с 192.168.1.56 на 192.168.2.56, тем самым от сервера все отрубаются.
Далее скрипт подрубается к базе с логином LOGIN и паролем PASSWORD и сохраняет базу по пути E:\backup\db\base.dt.
После ip адрес возвращается на место 192.168.1.56, а наш dt’ник архивируется winrar’ом с именем годмесяцденьномер

Комментариев нет:

Отправить комментарий