Скрипт VBS для автоархивации баз 8.2 (для многопроцессных кластеров) v.1.2

Администрирование - Архивирование (backup)

Скрипт для автоархивации базы с блокировкой  и отключением пользователей (для каждого рабочего процесса) + перезагрузка сервиса 1с

Этот скрипт развитие этой темы

http://www.infostart.ru/public/19722

также использовались наработки из

http://www.infostart.ru/public/63466

и

http://www.sql.ru/forum/actualthread.aspx?bid=63&tid=507764&pg=3

Мной данный скрипт используется для сохранения недельных архивов

А теперь собственно описание алгоритма работы скипта:

1. Уведомление юзеров о начале регламентных работ

2. Установка блокировки подключений на базу

3. Отключение конектов юзеров к нужной базе ДЛЯ КАЖДОГО ИЗ РАБОЧИХ ПРОЦЕССОВ

4. Выгрузка архива базы

5. Проверка наличния выгруженого архива

6. Удаление старых архивов базы

7. Снятие блокировки на подключение к базе.

8. Уведомление администратора о выгрузке и объеме свободного места на диске архива через нет сенд

9. Перезагрузка сервиса сервера 1с8.1 (рагент)

10. Уведомление администратора о удачной или неудачной перегрузке сервиса 1с8.1 через нет сенд

 

Здесь собрано множество ссылок  на подобные разработки часть которых я использовал, поэтому отдельное спасибо alexk-isза проделаную работу.

В следующем варианте скрипта хочу прикрутить еще тестирование  исправление базы.

Также использую сокращенный вариант скрипта для ежедневных выгрузок.

В НОВОЙ ВЕРСИИ от 25.01.10

ДОБАВЛЕНЫ:

1. Проверка на создание архива, в противном случае удаление не происходит.

2. Код для перезагрузки сервиса 1с

ИЗМЕНЕНЫ:

1. Переменные вынесены в начало скрипта

2. Последовательность создания и удаления архивов баз

В НОВОЙ ВЕРСИИ от 10.10.11

Добавлен варианты скрипта для 1с8.2

 

Скачать файлы

Наименование Файл Версия Размер
скрипт v.1.2 (1с8.2)
.vbs 8,41Kb
10.10.11
51
.vbs 8,41Kb 51 Скачать
Все скрипты одним архивом
.rar 9,08Kb
13.10.11
194
.rar 9,08Kb 194 Скачать
скрипт
.vbs 6,44Kb
25.01.10
193
.vbs 6,44Kb 193 Скачать
скрипт v.1.1
.vbs 7,88Kb
13.10.11
355
.vbs 7,88Kb 355 Скачать

См. также

Комментарии
1. ddis (rebuzx) 11.01.10 21:17 Сейчас в теме
2. Андрей (Asis) 13.01.10 10:30 Сейчас в теме
Думаю что удаление старых архивов базы (шаг 4) нужно делать в последнюю очередь.
Иначе есть вероятность (пусть небольшая но есть), что не окажется ни одного архива в случае сбоя на последующих шагах.
3. Андрей Александров (dred2001) 44 13.01.10 11:36 Сейчас в теме
(2). Да согласен.
В следующей версии добавлю проверку на создание файла выгрузки
а после этого только удаление устаревших.
4. Алексей Новоселов (a-novoselov) 977 14.01.10 19:00 Сейчас в теме
Отличный скрипт, ежедневные архивы делает наура! Маленькое пожелание на использование путей из переменной вначале, а так просто супер. Спасибо огромное.
5. Андрей Александров (dred2001) 44 25.01.10 18:08 Сейчас в теме
Обновил скрипт.
Старался учесть все пожелания.
От себя добавил перегрузку сервиса 1с.
Кстати хочу посоветоваться.
Стоит ли добавлять в скрипт код для тестирование исправление базы?
Сейчас у меня для тестирование исправление работает батник вот и думаю в отдельный скрипт его переделать или включить в состав этого.
Какие будут предложения?
6. Андрей Александров (dred2001) 44 29.01.10 13:38 Сейчас в теме
У меня один раз сервис 1с не стартонул, пришлось вручную запускать.
Скорей всего нужно увеличить время задержки между запуском сервиса и его опросом.
В следующей версии добавлю возможность задавать количество попыток запуска сервиса 1с.
7. Kiber_ Юрий (Kiber_) 11 03.02.10 12:05 Сейчас в теме
Чудненько! Как раз искал подобный скрипт...
Недельку потестю, потом напишу более весомый отзыв.

А пока огромное спасибо :)
8. Алексей Новоселов (a-novoselov) 977 05.02.10 08:07 Сейчас в теме
(5) Лучше тестирование исправление отдельным скриптом делать.
(6) Тоже было разок, добавил:
If UCase(InfoBase.Name) = UCase(BaseName) Then
    ' Устанавливаем запрет на подключение новых соединений
    InfoBase.ConnectDenied = True
    InfoBase.DeniedFrom = CStr(Now())
    InfoBase.DeniedTo = CStr(Now() + 1 / 12)
    InfoBase.DeniedMessage = LockMessageText
    InfoBase.PermissionCode = LockPermissionCode
    WorkingProcessConnection.UpdateInfoBase (InfoBase)
    WScript.Sleep(200000)
End If
...Показать Скрыть

Но еще раз сегодня архив не выгрузился :( . Можно добавить блокировку регламентных заданий на время выгрузки и количество попыток?
Кстати, неотработавшее задание висит как "Задание выполняется в настоящее время (0х41301)".
9. Андрей Александров (dred2001) 44 07.02.10 01:45 Сейчас в теме
(8) Да для универсальности можно добавить блокировку регламентных заданий. У меня они с выгрузкой базы пока не пересекаются но на будущее думаю не помешает.
А количество попыток обязательно добавлю, сам в этой необходимости уже убедился.
10. Kiber_ Юрий (Kiber_) 11 11.02.10 15:04 Сейчас в теме
Итак, протестил скрипт.
В целом - отлично. Автору огромное спасибо.
11. Котэ Пруидзе (kote) 464 17.02.10 09:10 Сейчас в теме
Не получилось использовать весь скрипт на Win2008 Server.. Пришлось убирать часть кода, отвечающую за "выгон" пользователей из БД SQL.. Не смог разобраться в причине :( Одни догадки..
==
Кто нибудь на такой ОС успешно воспользовал весь функционал?
12. Kiber_ Юрий (Kiber_) 11 18.02.10 08:46 Сейчас в теме
to kote: Ты-бы написал, какую ошибку выдает VBScript...
13. Алексей Новоселов (a-novoselov) 977 18.02.10 12:54 Сейчас в теме
(11) У тебя наверное на сервере COM соединение не установлено.
а вообще продолжение темы: http://infostart.ru/public/65849/
14. igor_gk (igor_gk) 46 19.03.10 12:06 Сейчас в теме
Прошу прощения за тупость, не ругайте плз, просто объясните...
Что такое, для чего?
....
'Код блокировки базы
LockPermissionCode = "1111"
....
15. Андрей Александров (dred2001) 44 21.03.10 23:47 Сейчас в теме
(14) Согласен формулировка в комментарии "'Код блокировки базы "не совсем точна,
имелось ввиду код разблокировки базы т.е. если указать параметр с этим кодом то вы получите доступ к базе при установлено блокировке, например "C:\Program Files\1cv81\bin\1cv8.exe" DESIGNER /UC 1111
16. Серега Путин (Confucius) 73 25.05.10 07:49 Сейчас в теме
Не работает скрипт почему то. Базу блокирует всех выгоняет. Пишет начало в лог. базу не выгружает. Проходит час блокировка снимаеться. Server 2008 Sp2 32 бит. Что может быть?
17. irteg 22.09.10 09:20 Сейчас в теме
если у пользователя не задан пароль, то остается окно авторизации пользователя
если имя пользователя содержит пробел, то некорректно сопоставляется пользователь при запуске
18. Fomix (fomix) 24 13.10.11 12:53 Сейчас в теме
А нельзя ли выложить все 3 скрипта в архиве???? Заранее спасибо!
19. Сергей C (a31) 26.10.11 18:51 Сейчас в теме
dred2001 пишет:
dred2001 25.01.10 18:08 URL ↓Цитата ↓Ответить

Обновил скрипт. Старался учесть все пожелания. От себя добавил перегрузку сервиса 1с. Кстати хочу посоветоваться. Стоит ли добавлять в скрипт код для тестирование исправление базы? Сейчас у меня для тестирование исправление работает батник вот и думаю в отдельный скрипт его переделать или включить в состав этого. Какие будут предложения?

Спасибо огромное за сей продукт!
Скачал, потестим, но надеюсь, что все отлично будет.
Спасибо еще раз!
20. Alex Stasyuk (GreenFox) 15.11.11 12:08 Сейчас в теме
Чтото у меня не заработало. Один раз по расписанию скрипт заработал, а после начал зависать, хотя может что-то я сам ошибся при изменении путей запуска 1с и папок в которые архивируется база.
21. Александр Сазонов (Asaqura) 05.12.11 01:23 Сейчас в теме
sql база. как будет работать?
22. Андрей Александров (dred2001) 44 05.12.11 12:09 Сейчас в теме
(21) Asaqura, Нормально.
Скрипт как раз и предназначен для работы с серверным вариантом.
23. Брест Беларусь (zhleonid8) 28.01.12 21:48 Сейчас в теме
заточен под сетевую?..............
25. Vitaliy Malikov (vitalyok) 26.04.13 22:39 Сейчас в теме
Не удается скрипт запустить. 1.1 жалуется на строку 232 символ 2, содержимое строки Set File = FSO.GetFile(file)

Что я делаю не так, с учетом того что указываю пути на существующие папки?

UPD: Прошу прощения, не было прав на запись в ту папку. ток всё равно с ошибкой падает, какой то другой теперь, но разбираться буду позднее, пора спать.
26. Алекс Ю (AlexO) 118 21.02.15 22:35 Сейчас в теме
(0)
В следующем варианте скрипта хочу прикрутить еще тестирование исправление базы.
А зачем этот швейцарский нож? На каждом этапе могут быть многочисленные ошибки/проблемы, которые полностью поставят крест на всем архивировании. Тем более, ТИИ, которое вообще может не пройти.
И тем более, выгрузка в DT крайне ненадежная сама по себе. А тут - масса операций с непредсказуемым результатом, выполняемых в автоматическом режиме!
А само создание архива 1С через скрипт - одна строчка.
Оставьте свое сообщение