Автоматическое обновление и резервное копирование баз 1С

Случилось так, что взял я на поддержку порядка пятидесяти не типовых баз данных 1С, но с одинаковой конфигурацией. А базы эти расположены в разных городах, в разных часовых поясах, да на разных серверах. И чтобы сделать обновление приходилось тратить много часов на то, чтобы слезно попросить пользователей выйти из базы, сделать резервную копию и накатить новую конфигурацию. Долго сказка сказывается, да не быстро дело делается. Решил я этот процесс автоматизировать…

Выковал я из стали BAT-файл, да вооружил им Шедулер серверный. А файл тот был следующего содержания:

BASE_NAME — Имя базы данных, используется в наименовании лог-файлов и файлов резервных копий.

CONNECT_STR — строка подключения к информационной базе. В случае файлового варианта должна выглядить так «File=»»D:\1C_Base\МояБазаДанных»»;» (обратите внимание на двойные кавычки). Для клиент-серверного варината «Srvr=»»ИмяСервера»»;Ref=»»МояБазаДанных»»;».

USER_NAME и USER_PWD — Соответственно логин и пароль пользователя под которым делается обновление. Полные права давать не обязательно, в типовых конфигурациях достаточно права администрирования.

START_FILE — Путь к программе 1С:Предприятие. Следует обратить внимание на то, что нужно обращаться к конкретному релизу (например, «C:\Program Files (x86)\1cv82\8.2.19.90\bin\1cv8.exe»), а не к файлу запускатору («C:\Program Files (x86)\1cv82\common\1cestart.exe»). Дело в том, что этот файл запускает еще один новый процесс, а сам закрывается. В этом случае BAT-файл не будет дожидаться завершения каждого отдельного действия и запустить несколько версий 1С одновременно.

BACKUP_DIR — Путь для резервных копий. Имена файлов генерируются как ИмяБазыДанных_Год-Месяц-Число.

CF_DIR — Путь к файлу обновления 1Cv8.cf. Если файл в указанной директории есть, то начинается обновление, если нет — работа BAT-файла завершается.

LOG_DIR — Путь где будут храниться лог-файлы. Имена файлов генерируются как Год-Месяц-Число_ИмяБазыДанных.

Прошу прощения за английские слова. Проблема в том, что BAT-файл должен быть в кодировке 866 OEM, а лог программа 1С пишет в 1251 ANSI.

Итак, что делает скрипт.

1. Проверяет наличие файла обновления по указанному пути. Если файла нет, то скрипт завершается.

2. Убивает зависшие процессы: tskill *1cv8* /a /v

3. Завершает работу всех пользователей и блокирует базу для входа.

4. Если в текущую дату еще не делалась резерваная копия, то делает выгрузку данных.

5. Обновляет конфигурацию.

6. Обновляет информационную базы.

7. Разблокирует базу для входа пользователей.

Теперь я просто кладу вечером файл обновления в нужную папку, прихожу утром и, на всякий случай, проверяю логи, дабы убедиться, что все обновилось.

Реклама

4 комментария к “Автоматическое обновление и резервное копирование баз 1С”

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