gifts2017

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

Опубликовал Андрей Александров (dred2001) в раздел Администрирование - Архивирование (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) 44
.vbs 8,41Kb
10.10.11
44
.vbs 8,41Kb Скачать
Все скрипты одним архивом 190
.rar 9,08Kb
13.10.11
190
.rar 9,08Kb Скачать
скрипт 193
.vbs 6,44Kb
25.01.10
193
.vbs 6,44Kb Скачать
скрипт v.1.1 355
.vbs 7,88Kb
13.10.11
355
.vbs 7,88Kb Скачать

См. также

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

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