Настройка архивации баз MS SQL Server и мониторинг с помощью OneScript

20.05.20

База данных - Архивирование (backup)

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

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

Наименование Файл Версия Размер
BackupAndMonitoring
.zip 9,07Kb
5
.zip 9,07Kb 5 Скачать

Задача

Настроить архивацию баз следующим образом.

1. Недельный бэкап с возможностью восстановления на любой момент времени. Срок хранения: 7 дней.

2) Месячный бэкап на 01 число месяца. Срок хранения: 12 месяцев.

3) Годовой бэкап на 01 января. Срок хранения: бессрочно.

У баз модель восстановления Полная (FULL).

 

Предисловие

На протяжении времени выходили разные версии MS SQL Server.

Я давно настраиваю архивацию баз на разных версиях MS SQL Server и могу сказать, что в каждой версии, в каждой среде возникают свои нюансы, разные причины, из-за которых то один компонент сбоит, то другой, то третий и т.д.

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

Некоторые примеры, из которых можно сделать тот же вывод:

1) 1131561

2) helpme1c.ru

3) Forum MS

5) alta.ru-support-51

6) 126513

7) 85254

8) 63466

 

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

 

Проблемы.

1) Многие источники описывают работу специальных программ, но часто бывает, что какие-либо программы нельзя устанавливать.

2) Движок MS SQL Server сбоит, поэтому нет уверенности, что бэкапы делаются. Нужен мониторинг, причем ежедневный.

3) Мониторинг тоже сбоит. Поэтому нужен такой мониторинг или такие правила, которые дадут знать, что случилось исключение. В идеале — это сторонний сервис мониторинга, но если такого сервиса нет, если у заказчика отсутствует возможность развернуть такой сервис, тогда приходится обходиться простыми и дешевыми инструментами, но не менее эффективными. На основе данной проблемы происходит другая проблема — необходимость в человеческом дежурстве, ведь мониторинг тоже может сбоить. Вообще, автоматизация — это человеческая надежда на стабильность автомата, но так как любой автомат может сбоить, то либо другой автомат проверяет работу своего брата (хотя оба могут сбоить), либо проверяет сам человек.

 

Исходя из описанных проблем, составляем дополнительные требования.

1) Инструменты архивации и мониторинга должны быть либо встроенными в среду MS SQL Server или в систему, либо должны быть портативными, не требующими установки. Таким образом мы не нагружаем реестр системы лишним «мусором».

2) Должен быть скрипт, проверяющий состояние архивации и сообщающий статус человеку.

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

 

Выбранные инструменты.

1) Transact-SQL

2) Планировщик заданий Windows

3) OneScript.

Нужно сказать, что есть достаточно инструментов других, которые либо встроенные, либо не требуют установки, но когда открываешь их раз в год и некогда тратить драгоценное время, то приходится использовать то, на чем быстро решается задача. В данном случае таковыми инструментами для меня являются Transact-SQL, OneScript, Планировщик заданий Windows. Кстати, я собирался вместо OneScript использовать PowerShell, но оказалось, что с ним гораздо больше «подводных камней», а значит и вариантов сбоя (например, форматы дат, использование библиотек, в одной среде скрипт работает, в другой нет).

 

Схемы архивации и мониторинга

 

Как все это настроить?

1) Подготовка библиотек.

1.1) Правим файл Bases.os.

1.2) В каталоге «..\OneScript\lib» создаем каталог «bases» и добавляем в него файл Bases.os.

1.3) В командной строке устанавливаем библиотеку работы с почтой: E:\OneScript\bin\opm.bat install InternetMail.

 

2) Настройка еженедельной архивации баз и мониторинга.

2.1) В среде MS SQL Server настраиваем план обслуживания: раз в неделю создавать бэкапы в папке «F:\WEEK», с опцией «Создавать вложенный каталог для каждой базы данных».

2.2) Правим скрипт BackupWeekly.os.

2.3) Правим скрипт BackupWeekly.bat и добавляем его в планировщик заданий. По расписанию этот скрипт должен запуститься после завершения работы плана обслуживания (2.1) в этот же день.

 

3) Настройка ежемесячной архивации баз и мониторинга.

3.1) В среде MS SQL Server настраиваем план обслуживания: раз в месяц создавать бэкапы в папке «F:\MONTH», с опцией «Создавать вложенный каталог для каждой базы данных».

3.2) Правим скрипт BackupMonthly.os.

3.3) Правим скрипт BackupMonthly.bat и добавляем его в планировщик заданий. По расписанию этот скрипт должен запуститься после завершения работы плана обслуживания (3.1) в этот же день.

 

4) Настройка ежедневной архивации журналов транзакций и мониторинга.

4.1) В MS SQL Server включаем расширенные процедуры:

EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
-- Enable the xp_cmdshell procedure
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE

4.2) Правим скрипт BackupLOG.SQL и в среде MS SQL Server в агенте добавляем новое задание, вставляем данный скрипт. Расписание, например, каждые 3 часа.

4.3) Правим скрипт BackupDaily.os.

4.4) Правим скрипт BackupDaily.bat и добавляем его в планировщик заданий. По расписанию этот скрипт должен запуститься после завершения работы задания (4.2).

 

Уязвимости

1) Человек может забыть, что письмо должно поступить, особенно, когда много разных писем.

2) Бэкапы хранятся только на одном диске. Исчез диск — исчезло все. Но возможно дописать копирование бэкапов в несколько мест.

 

Проверкаа бэкапов контроль надежная архивация архивации T-SQL Transact-SQL MS SQL Server OneScript скрипт баз копирование запись в файл текстовый почта

См. также

Мониторинг баз и серверов 1С

Журнал регистрации Мониторинг Платформа 1С v8.3 Платные (руб)

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

9000 руб.

28.08.2019    28546    10    21    

58

Конфигурация Session Monitor

Мониторинг Инструменты администратора БД Платформа 1С v8.3 Россия Платные (руб)

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

1500 руб.

01.12.2020    12538    26    0    

41

Библиотека создания клиент-серверных приложений для сценарного языка OneScript

Инструментарий разработчика Работа с интерфейсом OneScript Россия Бесплатно (free)

Представленная библиотека позволяет создать многопоточный TCP сервер, к которому может одновременно подключиться множество TCP клиентов с удаленных компьютеров. Эти клиенты могут вызывать методы скриптов как на сервере, так и на других клиентах. Методы будут выполнены в контексте скрипта на удаленной машине. Возможна передача параметров в метод и получение результата. Для TCP клиента можно создать графический интерфейс с большим набором элементов управления, модальными диалоговыми окнами и с обработкой событий.

31.07.2023    1204    ahyahy    8    

28

tempdb, почему она всё время растет?

Администрирование СУБД Мониторинг Бесплатно (free)

С проблемами распухания tempdb при работе с базой данных 1С регулярно сталкиваются и админы, и разработчики. О том, как мониторить, диагностировать и решать такие проблемы, на конференции Infostart Event 2021 Moscow Premiere рассказал Александр Криулин.

14.06.2023    7183    AlexKriulin    8    

78

Первый день архитектора 1С на новой работе

Мониторинг Сервера Администрирование СУБД Бесплатно (free)

Как быстро познакомиться с системой на новой работе или если вас пригласили провести аудит контура на 1С? О том, какие инструменты использовать для быстрой проверки настроек сервера 1С, сервера MS SQL и общей оценки инфраструктуры на производительность, на конференции Infostart Event 2021 Post-Apocalypse рассказал архитектор 1С Юрий Былинкин.

01.06.2023    9082    ardn    18    

71

Может, все-таки включим мониторинг?

Мониторинг Бесплатно (free)

Если с системой что-то может случиться, это рано или поздно случится. О том, как научиться узнавать о проблемах не только от пользователей, а, возможно, и прогнозировать их заранее, на конференции Infostart Event 2021 Moscow Premiere рассказал системный архитектор ООО «Серебряная пуля» Артем Кузнецов.

19.05.2023    6353    ktb    5    

59

Мобильный помощник эксперта 1С (приложение android, позволяющее строить отчеты на СКД по логам технологического журнала и не только)

Технологический журнал Мониторинг Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Приложение на мобильной платформе 1С Предприятие, позволяющее разбирать все, что может быть разобрано в командной строке linux, и выводить полученный результат типовыми методами системы компоновки данных. По мотивам направления Эксперт по технологическим вопросам

16.05.2023    2116    capitan    0    

18

Как я мониторинг разворачивал

Мониторинг Россия Абонемент ($m)

Статья об опыте развертывания системы мониторинга, сборе и агрегации технологического журнала.

1 стартмани

10.05.2023    9783    andreysidor4uk    44    

134
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. duhin 03.05.20 08:29 Сейчас в теме
>У баз модель восстановления Полная (Simple).
о_О
2. info1i 214 03.05.20 11:37 Сейчас в теме
(1) Спасибо за замечание! Ошибку исправил. Конечно, же FULL.
Оставьте свое сообщение