Перейти к основному содержанию

Maintenance Plans — резервное копирование и обслуживание баз данных 1С в Microsoft SQL Server 2019

Microsoft SQL Server 2019

Microsoft SQL Server 2019 позволяет использовать встроенные средства резервного копирования и обслуживания баз данных — Maintenance Plans. Описываемый план обслуживания успешно используется для баз данных 1С, но не ограничивается ими.

Ранее уже была подобная статья для Microsoft SQL Server 2014:

Maintenance Plans — резервное копирование и обслуживание баз данных в Microsoft SQL Server 2014

Но с тех пор в план обслуживания были внесены некоторые изменения.

В данном случае план предназначен для обслуживания баз данных исключительно с моделью восстановления FULL. Если вы используете другую модель восстановления, то нужно внести изменения в план, потому что резервное копирование лога транзакций вам может не понадобиться. Модель восстановления FULL используется из-за настроенного зеркалирования баз данных.

sql

Данный план решает задачи:

  1. Резервное копирование баз данных.
  2. Ежедневное сжатие баз данных и лога транзакций.
  3. Оптимизация индексов.
  4. Сброс статистики.
  5. Обслуживание баз данных.

Резервное копирование будет осуществляться на сетевую шару другого сервера от имени пользователя, под которым запущен экземпляр SQL сервера.

Планы обслуживания

Создавать планы обслуживания буду с нуля. Вернее я создам один план обслуживания, а в нём будет пять субпланов. Но мне это название "субпланы" или "подпланы" не нравится, я их просто называю "планы".

Итак, у нас сервер, на котором несколько баз данных 1С в режиме восстановления FULL. Планы обслуживания и резервного копирования не настроены.

Работаем в Management Studio. Коннектимся к серверу и переходим в Management → Maintenance Plans. Нажимаем правую кнопку, выбираем New Maintenance Plan...

sql

Указываем название плана, я пишу "Backup". OK.

sql

Создаётся основной план обслуживания.

Внутри создаём пять планов. 1C_DAILY, 1C_HOURLY, 1C_MONTHLY — для резервного копирования и обслуживания. 1C_INDEX — для работы с индексами. 1C_STAT — для работы со статистикой.

sql

1C_DAILY

Настраиваем расписание. План будет выполняться ежедневно по ночам в 1:10.

sql

После создания расписания создаём сам план обслуживания:

sql

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

sql

После проверки целостности запускается резервное копирование файлов данных. Для этого в типе резервного копирования выбираем опцию Full.

sql

Во вкладке Destination задаём путь для хранения резервных копий. Я сохраняю ежедневные бэкапы в папке daily. Расширения файлов — bak.

sql

Во вкладке Options указываем дополнительные параметры и срок хранения. Я буду хранить ежедневные бэкапы 94 дня. После истечения срока бэкапы пометятся как expired.

sql

Третий шаг в плане — снова резервное копирование. На этот раз лога транзакций. Для этого в типе резервного копирования выбираем опцию Transaction Log.

sql

Во вкладке Destination задаём путь для хранения резервных копий логов. Я сохраняю ежедневные бэкапы логов в той же папке daily. Расширения файлов — trn.

sql

Во вкладке Options указываем дополнительные параметры и срок хранения. Я буду хранить хранить ежедневные бэкапы логов также 94 дня.

sql

А дальше план выполнения разделяется на две ветки, которые выполняются параллельно, поскольку не мешают друг другу.

В первой ветке выполняется сжатие баз данных. Без этого логи будут бесконечно расти. Освобождённое место отдаём операционной системе.

sql

После сжатия выполняется блок T-SQL команд:

DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE

sql

Во второй ветке проводится обслуживание баз данных. Сначала удаляются старые ежедневные бэкапы старше 94 дней.

sql

Затем удаляются старые ежедневные бэкапы логов старше 94 дней.

sql

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

sql

Для того, чтобы можно было отправлять уведомления на почту, вам может потребоваться предварительно настроить Database Mail.

Включаем Database Mail в Microsoft SQL Server 2019

1C_HOURLY

Настраиваем расписание. План будет выполняться один раз в час каждую 17-ю минуту.

sql

После создания расписания создаём сам план обслуживания:

sql

План простой, всего два пункта. Сначала делаем резервную копию лога транзакций.

sql

Во вкладке Destination задаём путь для хранения резервных копий логов. Я сохраняю ежечасные бэкапы логов в папке hourly. Расширения файлов — trn.

sql

Во вкладке Options указываем дополнительные параметры и срок хранения. Я буду хранить хранить ежечасные бэкапы логов 7 дней.

sql

Потом проводим обслуживание, удаляем старые ежечасные бэкапы логов старше 7 дней.

sql

1C_MONTHLY

Настраиваем расписание. План будет выполняться один раз в месяц первого числа в 5:10 утра.

sql

После создания расписания создаём сам план обслуживания:

sql

В этом плане у нас будет пять шагов. Первой запускается проверка целостности всех пользовательских баз данных.

sql

После проверки целостности делаем резервное копирование файлов данных. Для этого в типе резервного копирования выбираем опцию Full.

sql

Во вкладке Destination задаём путь для хранения резервных копий. Я сохраняю ежемесячные бэкапы в папке monthly. Расширения файлов — bak.

sql

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

sql

Третий шаг в плане — резервное копирование лога транзакций. Для этого в типе резервного копирования выбираем опцию Transaction Log.

sql

Во вкладке Destination задаём путь для хранения резервных копий логов. Я сохраняю ежемесячные бэкапы логов в той же папке monthly. Расширения файлов — trn.

sql

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

sql

Следующим шагом чистим историю. Удаляем всё что старше двух лет.

sql

Отправляем уведомление.

sql

1C_INDEX

Настраиваем расписание. План будет выполняться один раз в неделю по субботам в 4:10 утра.

sql

После создания расписания создаём сам план обслуживания:

sql

Всего три шага. Перестроение индексов. Перестраиваю в 8 потоков.

sql

Реорганизация индексов.

sql

Уведомление.

sql

1C_STAT

Настраиваем расписание. План будет выполняться один раз в неделю по воскресеньям в 21:00.

sql

После создания расписания создаём сам план обслуживания:

sql

Три шага. Сначала Обновление статистики.

sql

После выполняется блок T-SQL команд:

DBCC DROPCLEANBUFFERS
DBCC FREEPROCCACHE

sql

Уведомление.

sql

Вместо заключения

Если у кого-то есть советы и дельные мысли по поводу обслуживания и резервного копирования баз данных 1С — пишите.

Теги

 

Похожие материалы

Maintenance Plans — резервное копирование и обслуживание баз данных в Microsoft SQL Server 2014

Microsoft SQL Server 2014 позволяет воспользоваться встроенными средствами резервного копирования и обслуживания баз данных. В данном случае план предназначен для обслуживания баз данных исключительно с моделью восстановления FULL. Если вы используете другую модель восстановления, то нужно воспользоваться другим планом, потому что резервное копирование лога транзакций вам может не потребоваться.

Теги

MSSQL — уменьшаем Initial Size в tempdb

Срочно понадобилось уменьшить размер tempdb. Можно выполнить сжатие, перезапуск сервера, танцы с бубнами. Всё это уменьшит размер tempdb, но не сделает его меньше Initial Size. И это большая проблема, особенно для тех экземпляров, где база tempdb вынесена в оперативную память.

Теги