Резервное копирование по расписанию для MS SQL Express


Внешняя дополнительная обработка, которая позволяет использовать регламентные задания 1С для запуска сценария резервного копирования на сервере MS SQL Express. Таким образом решается проблема отсутствия у Express версии сервера MS SQL собственного агента и планировщика заданий. Обработка позволяет настроить для себя разрешение записи на диск и выполняться в безопасном режиме.

Обработку добавляем в состав дополнительных внешних обработок информационной базы стандартными средствами и настраиваем для команды выполнения сценария нужное расписание.

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

Глобально отключить защиту от опасных действий можно через файл conf.cfg, располагающегося в ОС Windows:
— В каталоге binconf каталога конкретной версии «1С:Предприятие»;
— В каталоге C:Program Files1cv8conf.

В этом файле нужно добавить параметр DisableUnsafeActionProtection. С помощью данного параметра предоставляется возможность отключить защиту от опасных действий для определенных информационных баз. Информационные базы определяются набором регулярных выражений, разделяемых символом «;».
Если строка соединения с информационной базой будет удовлетворять какому-либо регулярному выражению, для такой информационной базы защита от опасных действий будет отключена.

Примеры:

DisableUnsafeActionProtection=test_.*;stage_.*; // отключает защиту для всех баз начинающихся с "test_" и "stage_"
DisableUnsafeActionProtection=.*                // отключает защиту для всех баз

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

Протестировано на платформе: 8.3.13.1513.

34 Comments

  1. CSiER
    Таким образом решается проблема отсутствия у Express версии сервера MS SQL собственного агента и планировщика заданий.

    Почему использовали именно такое решение (чем не понравился штатный cron / планировщик заданий) ?

    Reply
  2. elian

    (1) Вы, наверное, имеете ввиду планировщик заданий операционной системы? Дело в том, что, насколько я знаю, он начинает работать только тогда, когда кто-то выполнит вход на рабочий стол и работать он будет именно под этим пользователем. То есть, после перезагрузки сервера, чтобы планировщик заданий начал работать, администратор сервера должен на сервере выполнить вход в систему. А если админ сервера забыл это сделать или ему лень… то и резервного копирования не будет. Вот поэтому и такое решение.

    Reply
  3. elian

    (1) Планировщик заданий должен запускать .bat-файл, насколько я понимаю, то есть где-то на диске он должен лежать. А вдруг его кто-то удалит нечаянно. А тут всё что нужно находится в 1С и никаких лишних файлов нигде не валяется.

    Reply
  4. Sergey_SS

    Правильно написанные сценарий, запущенный планировщиком, прекрасно работает без авторизации пользователя это раз. Два вашу обработку так же кто нибудь может удалить… Три, если админ дурак, то он дурак навсегдао… У нормального админа , файлы сценариев случайно никто не удалит….

    Reply
  5. elian

    (4) Потому как я не админ… спорить не буду. Просто мне, 1С-нику, теплее на душе, когда задача решена без привлечения технических средств, над которыми я не властен, например, над системным планировщиком заданий.

    Reply
  6. elian

    (4) Будем считать, что эта обработка отнимает работу у админов и дает возможность 1С-никам стать более независимым от админов.

    Reply
  7. Timur.V

    Если сервер 1с (кластер 1с) и сервер ms sql express на разных компьютерах,

    есть вероятность, что при проблемах в кластере 1с — ваши задания не отработают.

    Эту задачу нужно делать: планировщиком задач Windows.

    Закинуть туда выполнение скрипта sql, который делает резервные копии.

    Reply
  8. elian

    (7) Тимур, специально Вам я разрешаю выполнять эту задачу планировщиком Windows. Всем остальным людям на планете, если только Вы позволите, я предлагаю выбирать более подходящий для них вариант самостоятельно.

    Reply
  9. elian

    (7) Конечно же… есть вероятность, что при каких-нибудь проблемах где-угодно… что угодно… не только мои, но и вообще любые задания могут не выполниться… С этим я полностью согласен. При проблемах с планировщиком, я полагаю, могут не выполниться и задания планировщика. Вы согласны?

    Reply
  10. Timur.V

    (9)

    Нет

    Т.к. ваше решение может оставить человека без бэкапа, когда он будет очень нужен.

    Правила работы примерно такие:

    1) Бэкап нужно выполнять средствами того компьютера, где установлен ms sql expess.

    2) Файл бэкапа нужно копировать на несколько носителей или разные компьютеры.

    3) файл бэкапа нужно проверять, что он рабочий

    Reply
  11. MSK_Step

    Да нормальное решение, можно даже отдельную 1с базу сделать для обслуживания. Не понятно чем не нравится такой вариант

    Reply
  12. elian

    (10) То есть, даже если будут проблемы с планировщиком, Вы уверены, что задания планировщика всегда выполнятся? Планировщик настолько надежная вещь, что даже если в нём проблемы, он всё равно работает? Это замечательно!

    Reply
  13. elian

    (11) Этот вариант не нравится админам, так как они понимают, что 1С-ник может обойтись и без них. Они боятся, что 1С-ник отберет у них кусок хлеба.

    Reply
  14. elian

    (10) Тогда, я думаю, следует переписать весь 1С на базу планировщика. Раз уж это настолько надежная штука, что даже когда с ним есть проблемы, он все равно исправно работает!

    Reply
  15. oldcopy

    Да нормальное решение, чего все на человека накинулись? Потому что лучше делать резервные копии так, чем не делать их вообще.

    Reply
  16. CSiER

    (2) Да, я про планировщик заданий операционной системы — настраивается он достаточно гибко. В плане надёжности, по моему опыту, регламентные задания в случае настройки отказоустойчивого кластера под 8.2 иногда сбоят (про 8.3 такого опыта нет). Предложение —

    добавить компрессию для бэкапа и его проверку (хотя бы на уровне «verify only»).

    Reply
  17. elian

    (16) Ну делайте планировщиком, если Вам так хочется. Я же не заставляю Вас делать моим решением.

    Reply
  18. elian

    (15) А им просто не нравится, что в 1С теперь есть свой планировщик заданий, недоступный для простого админа.

    Reply
  19. Sergey_SS

    (13)По моему у вас паранойя… Какой же нехороший человек вам так насолил, что вы так люто ненавидите Админов :-))))))))))

    Reply
  20. CSiER

    (17) Вы спросили что я имел ввиду — я ответил. Аналогично — не настаиваю использовать планировщик — лишь поделился опытом того, что регламентные в кластере 8.2 иногда перестают работать. А компрессию для бэкапа добавить и проверку — это предложение для Вашего варианта (туда же можно и результат отправки по почте) — все это обычно настраиваю в агенте ms sql.

    Reply
  21. elian

    (19) Нет у меня паранойи. Просто я Вас раскусил, а Вы теперь пытаетесь все свести к шутке.

    Reply
  22. elian

    (20) Ну выложили бы тогда код компрессии, проверки и отправки…

    Reply
  23. CSiER

    (22)

    Ну выложили бы тогда код компрессии, проверки и отправки…

    Компрессия — параметр команды бэкапа:

    BACKUP DATABASE [base] TO DISK = N’E:Mssql1Cackup1KA.BAK’ WITH NOFORMAT, INIT, NAME = N’Резервное копирование’, SKIP, NOREWIND, NOUNLOAD, STATS = 10, COMPRESSION

    RESTORE VERIFYONLY FROM DISK = ‘E:
    ame.BAK’

    Отправку писем настраиваю штатно через агента (для Вашего решения, думаю правильнее использовать отправку через 1С).

    Reply
  24. CSiER

    (3) не сразу увидел что мне было 2 ответа. Конечно, определённый риск есть. В целом, каждый выбирает то решение, которое подходит под его задачи/требования/окружение.

    Моё мнение: больше поэтов обработок хороших и разных 🙂

    Reply
  25. elian

    (24) Тогда непонятно: зачем изначально нужно было задавать вопрос: «Чем не понравился штатный планировщик?»… Если исходить из позиции «больше обработок…», то ответ на этот вопрос очевиден.

    Reply
  26. CSiER

    (25) потому что штатный планировщик — более распространённое решение. Вопрос был задан для того, чтобы сравнить Ваше решение и через планировщик.

    Reply
  27. Sergey_SS

    (21) Уважаемый elian, у МЕНЯ, лично вы ничего не украли, даже если не учитывать тот факт , что я пользовал Express только для экспериментов, а на боевых серверах либо стандарт либо интерпрайз. И тот факт что у меня работы итак хватает , и если 1С ники освободят меня от бэкапа 1С баз, так я наоборот возрадуюсь 🙂 Моя ЗП от этого не упадет :-)))))

    Весь спич я завел к тому, что отношусь к разряду тех, кто считает: «нафига изобретать велосипед ?» 🙂

    По мне так лучше бы вы написали и бесплатно выложили универсальные шаблоны конвертации данных из УТ в БП. :-)))) но это только по МНЕ. я ни в коем случае не указываю что вам делать 😉

    Reply
  28. elian

    (27) А Вы можете ответить для себя на вопрос, нафига изобретать электромобиль, если есть бензиновый автомобиль? Может быть, в этом Вы тоже не видите смысла?

    Reply
  29. elian

    (26) Ну вот, как раз для того, чтобы штатный планировщик стал менее распространенным решением и нужна эта обработка. Иначе все лавры будут продолжать доставаться штатному планировщику. Слишком жирно ему будет.

    Reply
  30. Sergey_SS

    (28) Если вы считаете что автомобиль и электромобиль это одинаковые вещи… то я умываю руки 🙂

    Reply
  31. elian

    (30) Ну так моя обработка и системный планировщик тоже вещи разные…

    Reply
  32. elian

    (30) Если Вы считаете, что моя обработка и системный планировщик — это одинаковые вещи… то умывайте руки! 🙂

    Reply
  33. webester

    (15)Его нормально спросили, почему не делаешь как все остальные? Может причины какие-то есть? Как с цепи сорвался, да, что вам не нравится, делаю как считаю нужным, делайте как хотите. Ему объяснили, четко и по существу в (10) что не нравится и какие есть минусы, я считаю очень важным, для понимания этих вещей, прежде чем использовать предложенное решение, нужно оценивать риски. Он продолжил огрызаться. Как будто его носом в какахи тыкают, просто обсуждают, вот и все. Я согласен с (24), что всегда должен быть выбор и ситуации бывают разные в конце концов это форум для разработчиков 1С, вот вам решение на 1С. Все верно. Но зачем так токсично агриться на замечания по существу, абсолютно непонятно. Какой-то странный молодой человек.

    Reply
  34. elian

    (33) С вашим талантом нужно идти работать в «Медузу». С чего вы взяли, что кого-то интересует Ваше мнение об авторе и в целом о происходящих событиях? Ищите себе трибуну для выступления? Ну напишите тогда, чего вы ещё считаете правильным и неправильным, мы послушаем.

    Reply

Leave a Comment

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