Использование 1С Предприятие в клиент-серверном режиме дает очень много плюсов, к примеру, скорость и надежность работы. Но так же не надо забывать, что СУБД - это отдельная информационная система, которая требует определенного внимания и обслуживания. Мы подготовили основные рекомендации по созданию плана обслуживания баз данных Microsoft SQL Server в которых хранятся информационные базы 1С.
Рекомендуемые регламентные операции СУБД для работы «1С: Предприятие 8» клиент-серверного варианта при использовании СУБД MS SQL Server:
- Регулярное резервное копирование баз данных
- Обновление статистики
- Очистка процедурного КЭШа
- Реорганизация индекса
- Перестроение индекса
Создание плана обслуживания
Все перечисленные выше операции возможно автоматизировать при использовании Плана обслуживания в Microsoft SQL Server.
Для начала необходимо подключиться к серверу используя Microsoft SQL Server Management Studio (устанавливается отдельно от MS SQL Server); перейти во вкладку «Управление» - «Планы обслуживания» - ПКМ – «Создать план обслуживания…» и задать имя плана.
При создании Плана обслуживания автоматически создаётся Вложенный план, для которого необходимо создать «Расписание задания» через соответствующую кнопку возле таблицы Расписание.
Теперь в наш план необходимо добавить непосредственно сами задачи по обслуживанию. Для этого используем «Панель элементов» (слева от Обозревателя объектов) и добавляем нашу первую задачу «Проверка целостности базы данных».
В задаче «Проверка целостности базы данных» выберем необходимые для обслуживания базы: ПКМ по объекту данной задачи – «Изменить», в открывшемся окне из списка «Базы данных» выбираем необходимые нам базы (все кроме системных или конкретные)
Последующие задание необходимо выбирать исходя из нагрузки и времени выполнения регламентного задания: «Перестроение индекса» или «Реорганизация индекса».
«Перестроение индекса» - включает полное перестроение индексов таблиц базы данных, однако в версии MS SQL Server Standard происходит отключение всех клиентов от базы на время выполнения операции.
«Реорганизация индекса» - исправление уже имеющихся индексов, не требует отключение клиентов от базы
«Реорганизацию индекса» имеет делать смысл каждый день. В то время как полное «Перестроение индекса» лишь раз в неделю.
Добавляем необходимую нам задачу через «Панель элементов» и выбираем необходимые для этой задачи базы.
Далее нам необходимо установить между ними связь: выбираем нашу первую задачу «Проверка целостности базы данных» и кликнув (ЛКМ) на зеленую стрелку вниз (под объектом) протянем её до объекта нашей следующей задачи.
Открыв «Редактор управления очередностью» (2х ЛКМ по появившейся линии связи) мы можем задавать значение выполнения:
Успешное выполнение (зеленая линия) – последующие задание будет выполняться только в случае успешного выполнения предыдущего.
Ошибка (красная линия) – последующие задание будет выполняться только в случае ошибки выполнения предыдущего задания.
Завершение (темно-синяя линия) – последующие задание будет выполняться после предыдущего независимо от результатов выполнения предыдущего.
В данном случае, после успешного выполнения задачи «Проверка целостности базы данных» начнётся выполнение задачи «Реорганизация индекса», если проверка выявила повреждение базы данных, то последующие задачи обслуживания выполнятся не будут.
После «Реорганизации индекса» или «Перестроения индекса» рекомендуется выполнять «Обновление статистик». Добавим соответствующую задачу в «Панели элементов», так же, как и в предыдущий раз не забываем выбрать базы для выполнения задачи и установить связь с предыдущей задачей на «Завершение» после выполнения предыдущей.
Далее добавим задачу по «Очистке процедурного КЭШа», однако такая задача отсутствует в «Панели элементов», поэтому мы добавляем задачу «Выполнение инструкции T-SQL».
Изменим объект «Выполнение инструкции T-SQL» (2х ЛКМ) и в появившемся окне в поле «Инструкция T-SQL» пропишем:
dbcc freeproccache
После чего не забываем создать связь для вновь добавленной задачи.
Теперь перейдём непосредственно к созданию резервной копии базы, добавляем соответствующий элемент на «Панели элементов». Открываем параметры задачи (2х ЛКМ по объекту).
На вкладке «Общее» мы можем выбирать необходимый нам тип резервной копии (Полное, Разностное, Журнал транзакций), базы и компонент резервного копирования (базу данных целиком или отдельные её компоненты).
На вкладке «Целевой объект» есть возможность разбить резервную копию на несколько файлов, создавать файл резервной копии и каталоги для каждой базы отдельно, а также указывать путь хранения резервной копии.
На вкладке «Параметры» рекомендуется указать параметр «Сжимать резервные копии» для уменьшения размера бэкапа и «Проверку целостности резервной копии», так же там можно указать срок действия резервного набора и шифрование.
Со временем регулярное создание бэкапов приведет к заполнению дискового пространства, поэтому рекомендуется удалять устаревшие и неактуальные архивы, для этого мы добавим задачу «Очистка после обслуживания».
В ней мы указываем путь до наших бэкапов, расширение файла (в нашем случае стандартное *.bak) и временной промежуток по прошествии которого удалятся старые файлы бэкапов.
Помимо самих бэкапов баз, место на жестком диске могут занимать журналы регламентных заданий MS SQL Server, их мы тоже будем периодически очищать, добавив задачу «Очистка журнала».
В итоге наш «План обслуживания» будет выглядеть следующим образом:
Данные задачи рекомендуется выполнять не реже 1 раза в сутки в часы минимальной загруженности сервера. Мы так же можем добавлять в «Планы обслуживания» дополнительные «Вложенные планы», которые создаются и настраиваются аналогичным образом, если, например, есть необходимость делать бэкапы чаще 1 раза за сутки или раз в неделю проводить полное «Перестроение индекса» вместо регулярной реорганизации.
Просмотреть журнал выполнения «Плана обслуживания» на наличие ошибок возможно через «Просмотр журнала»: «Обозреватель объектов» - «Управление» - «Планы обслуживания» - ПКМ (по плану обслуживания) – «Просмотр журнала».
Отдельно стоит обратить внимание на запуск в системе службы «Агент SQL Server». Данная служба отвечает за выполнение «Планов обслуживания», соответственно, в свойствах службы необходимо проверить чтобы стоял «Тип запуска: Автоматический».
График обслуживания
Периодичность выполнения регламентных операций, рекомендуемая разработчиками «1С: Предприятие 8».
Периодичность | Операция | Описание задачи |
---|---|---|
Перед каждым выполнением плана обслуживания | Проверка целостности базы | Перед выполнением любых задач по обслуживанию баз рекомендуется проверить их целостность во избежание дальнейших и необратимых повреждений базы |
Не реже 1 раза в неделю | Реорганизация индекса | Дефрагментация индексов повышает эффективность работы запросов |
Не реже 1 раза в неделю | Перестроение индекса | Полное перестроение индексов таблиц базы данных, существенно оптимизирует работу базы (требует отключение клиентов в редакции MS SQL Server Standard) |
Не реже 1 раза в день | Обновление статистики | Помогает SQL серверу выстраивать оптимальный план выполнения запросов |
После выполнения операции «Обновление статистики» | Очистка процедурного КЭШа | Очистка КЭШа запросов для исключения выполнения сервером устаревших планов запросов |
Не реже 1 раза в день | Резервное копировании данных | Выполнение полного резервного копирования базы данных для возможности восстановление в случае повреждения |
Исходя из потребностей и свободного места в файловой системе | Очистка после обслуживания | Удаляет устаревшие архивы базы данных |
Исходя из потребностей и свободного места в файловой системе | Очистка журнала | Удаляет данные журнала связанные с процессами выполнения плана обслуживания |