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

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

Как мы поступим. Собьем настройки сетевой карты, а после выполнения резервирования — поставим все на место 😉

Итак решение:
Для начала узнаем индекс нашего с вами сетевого интерфейса — это нам необходимо для того что-бы не использовать названия (а они иногда называются кириллицей) сетевых подключений.
netsh interface ipv4 show interface
Данная команда выведет таблицу.

В моем случае индекс равен 11.

Далее создаем bat файл и пишем следующее:

Теперь остается данный батник поставить в планировщик и запускать от имени супер админа, т.к. меняются настройки сетевой карты.

Что мы получаем:
В назначенное время, ip адрес на сервере меняется с 192.168.1.56 на 192.168.2.56, тем самым от сервера все отрубаются.
Далее скрипт подрубается к базе с логином LOGIN и паролем PASSWORD и сохраняет базу по пути E:\backup\db\base.dt.
После ip адрес возвращается на место 192.168.1.56, а наш dt’ник архивируется winrar’ом с именем годмесяцденьномер

А как вы резервируете базу 1с?

(Просмотров 539, 1 за сегодня)

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

  1. вы показали как сделать резервирование средствами 1С
    к Postgresql никакого отношения не имеет
    скрипт можно применять к любой 1С хоть к файловой хоть к серверной
    С таком же успехом можно сменить настройки сетевой карты, остановить сервер 1С, сервер SQL и просто заархивировать каталог с БД
    Для резервирования БД PostgreSQl на Win использую pg_dump
    Преимущества
    Никого выгонять не надо
    При восстановлении больших БД предъявляются меньшие требования к памяти компьютера

    Пример

    set shell = createobject(«WScript.Shell»)
    dd = time
    archivator = chr(34) + «c:\Program Files (x86)\winrar\winrar.exe» + chr(34)
    archive = chr(34) + «g:\Arc\sql\backup_.rar» + chr(34)
    dump_ib=»g:\Arc\dt\dump_»+cstr(date)+».dt»
    dump_name= «g:\Arc\sql\tmp\trade.sql»
    pgdump=chr(34)+»c:\Program Files (x86)\PostgreSQL\9.0.4-eter4\bin\pg_dump.exe» +chr(34)+ » -c -f » + dump_name+ » -U postgres MyDataBase»

    ‘выгружаем БД и ждем окончания результата
    shell.Run pgdump,0,true

    ‘ архивируем результат выгрузки и после удаляем sql
    cmdline = archivator + » a -agYYYY-MM-DD_NN -dh -df -m4 -ep -rr25p -ibck -mt4 » + archive + » » + dump_name

    shell.Run cmdline, 0, false

  2. Да, я тоже имею ввиду серверный режим. Она сама умеет прерывать сеансы пользователей (но при этом кластер серверов должен быть на 1541 порту, иначе не сможет отключить юзеров)

    1. Спасибо Макс! Я попробую на нашем кластере по тестировать, если все пойдет гуд, то напишу мини обзор.

    2. Макс, спасибо тебе. Работает идеально. Пока траблов нет. Архив затем восстанавливается без проблем.

  3. я использую бесплатную утилиту Egida Backup (http://www.egida1c.ru/project/egidabackup/)
    из возможностей:

    Резервирование каталогов операционной системы;
    Резервирование информационных баз 1С, работающих как в файловом, так и в клиент-серверном режиме (поддерживаются версии 7.7, 8.0, 8.1);
    Возможность архивации резервируемых файлов;
    Возможность содания задания на восстановление базы данных 1С;
    Запуск копирования всех баз одним щелчком мыши;
    Задание расписания на автоматическое копирование;
    Возможность инкрементного копирования (только файлов, изменившихся со времени последнего копирования);
    Регулирование количества создаваемых копий и времени их хранения;
    Копирование файлов по маске;
    Возможность указания нескольких хранилищ резервных копий;
    Обновление программы через Интернет;
    Запуск командных скриптов;
    Создание очереди заданий;
    Создание снимков резервных копий за месяц или неделю.

    1. Макс, а она на лету базы копирует или надо пользователей из базы выгонять? Базы я имею ввиду работающие в клиент-серверном режиме.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *