Организация работы 1С и сервера баз данных MS SQL

Рекомендации для организация работы 1С и сервера баз данных Microsoft SQL.
Мы не занимаемся системным администрированием на постоянной основе, но определенный опыт в этом отношении имеется, т.к. клиенты периодически просят помочь с настройкой или рекомендациями в этом вопросе. Итак с чего начать.
Во первых настройка сервера и баз данных MS SQL осуществляется при помощи утилиты Microsoft SQL Server Managment Studio. В последних версиях сервера MS SQL данный инструмент скачивается и устанавливается отдельно от дистрибутива сервера. Это довольно мощный инструмент для администрирования и диагностики работы сервера баз данных Microsoft SQL. Скачать его можно на официальном сайте https://docs.microsoft.com/ru-ru/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server...
Затем необходимо понять какая модель восстановления баз данных используется на данном сервере и на конкретной базе данных. Настройка модели восстановления устанавливается для каждой конкретной базы данных. Настройки для вновь созданных баз данных храняться в системной базе данных "model". Для того что бы понять какая модель восстановления используется необходимо найти нужную базу данных в обозревателе и открыть свойства. В свойствах выбрать "Параметры" и в заголовке будет модель восстановления:Свойства базы данных.png

Выбор модели восстановления напрямую зависит от вашей схемы резервного копирования баз данных. По умолчанию после установки сервера модель восстановления установлена в режим "Полная". Данный режим предполагает возможность восстановления состояния базы данных на любой момент её функционирования, но для этого необходимо настроить регулярное резервное копирование журнала базы данных и его обрезку после сохранения резервной копии. Если этого не делать то размер журнала базы данных будет неконтролируемо расти. Подробно про модели восстановления можно прочитать на сайте Microsoft. Поэтому если у Вас нет необходимости в восстановлении состояния базы данных на любое произвольное время или резервное копирование данных сервера организовано не средствами MS SQL, то я бы рекомендовал перевести модель восстановления всех баз данных в режим "Простая". При этом автоматически будет освобождаться место на диске, занятое журналами, устраняя таким образом необходимость в управлении размером журналов транзакций. В данной статье будет описана работа именно с такими базами данных. Полная модель восстановления для баз данных актуальна для баз данных с высоким уровнем нагрузки, когда при восстановлении важно получить состояние БД на какой то конкретный момент времени. Ну например откатится всего на 30 минут назад. Настройки для работы с полной моделью восстановления послужат материалом для другой статьи.
Итак мы определились. Модель восстановления простая. Каким образом запланировать регламентные операции для БД 1С и какие операции необходимо проводить? Сразу оговорюсь в данной статье изложен только минимум необходимый для качественной и быстрой работы баз данных. Так сказать "правила гигиены" для баз MS SQL с простой моделью восстановления.
Регламентные процедуры планов обслуживания для MS SQL лучше всего запускать автоматически с использованием службы агента SQL Server. Обращаю Ваше внимание, что данная служба может работать только для коммерческих лицензий Standart и Enterprise.
Настройка планов обслуживания осуществляется посредством Microsoft SQL Server Managment Studio. Подключаемся к нужному серверу. Открываем слева дерево  "Обозревателя объектов". Переходим в раздел "Управление" и выделяем подраздел "Планы обслуживания". Клацаем правой кнопкой и создаём новый план обслуживания и даём ему имя.(Можно воспользоваться Мастером планов обслуживания, но я бы не рекомендовал) Я разделяю планы обслуживания на ежедневные (короткий план) и еженедельные(длинный план). В ежедневный план обычно включаются следующие задачи:
Обозреватель объектов
1. Задача "Проверка целостности баз данных". Проверяется только физическая целостность таблиц баз данных. Исправление обнаруженных ошибок должно производится в ручном режиме после анализа того какие таблицы затронуты и как их и откуда нужно восстанавливать. Данный процесс "творческий" и заслуживает отдельной статьи.
2. Задача "Реорганизация индекса". Данная операция служит для изменения порядка страниц индекса в целях повышения эффективности поиска. Т.е. данный функционал устраняет фрагментацию и порядок страниц индекса, тем самым увеличивая скорость выполнения запросов. Данная операция может выполняться раз в день или чаще т.к. она не требует серьёзных ресурсов для выполнения. И она практически гарантировано завершится в короткий срок.
3. Задача "Обновление статистики". Эта задача осуществляет повторную выборку статистики распределения каждой пользовательской таблицы или индекса. При помощи статистики распределения SQL Server оптимизирует перемещение по таблицам во время обработки инструкций Transact-SQL. Обновление статистики гарантирует, что запросы будут компилироваться с актуальной статистикой. Однако обновление статистики вызывает перекомпиляцию запросов. Рекомендуется не обновлять статистику слишком часто, поскольку необходимо найти баланс между выигрышем в производительности за счет усовершенствованных планов запросов и потерей времени на перекомпиляцию запросов.Однако данное утвеждение справедливо для высоконагруженых баз данных. В принципе ежесуточное обновление статистики положительно влияет на работу большинства баз данных 1С.
4. Задача "Очистка процедурного кэша". Процедурный КЭШ рекомендуется очищать при каждом обновлении статистики. Данная операция тесно связана с предыдущей.
5. Если резервное копирование производится средствами MS SQL, то следующей задачей будет именно "Резервное копирование". В процессе снимается и архивируется дамп базы данных.
6. Задача "Очистка журнала". Данная операция очищает логи резервного копирования, журнала заданий и журнала плана обслуживания. Можно установить максимальный возраст записей.
7. Задача "Очистка после обслуживания". Данная процедура позволяет удалить устаревшие резервные копии баз данных. Можно установить максимальный возраст файлов для удаления.
Короткий план
В еженедельный план обслуживания я обычно включаю следующие задачи:
1. Задача "Проверка целостности баз данных". Проверяется только физическая целостность таблиц баз данных. Исправление обнаруженных ошибок должно производится в ручном режиме после анализа того какие таблицы затронуты и как их и откуда нужно восстанавливать. Данный процесс "творческий" и заслуживает отдельной статьи.
2. Задача "Сжатие базы данных". Сжатие файлов данных позволяет освободить неиспользуемое пространство путем перемещения страниц данных с конца файла в незанятое пространство ближе к началу файла. Когда в конце файла образуется достаточно свободного места, страницы данных в конце файла могут быть освобождены и возвращены в файловую систему. Данная операция сжимает данные в таблицах высвобождая место. Достаточно ресурсоёмкая и долгая операция, которую лучше проводить в нерабочее время.
3. Задача "Перестроение индекса". Данная операция служит для полного перестроения всех индексов в базе данных. Строятся новые индексы, а старые индексы удаляются. Достаточно ресурсоёмкая операция. Её лучше проводить в нерабочее время.
4. Задача "Обновление статистики". Эта задача осуществляет повторную выборку статистики распределения каждой пользовательской таблицы или индекса. При помощи статистики распределения SQL Server оптимизирует перемещение по таблицам во время обработки инструкций Transact-SQL. Обновление статистики гарантирует, что запросы будут компилироваться с актуальной статистикой. Однако обновление статистики вызывает перекомпиляцию запросов. Рекомендуется не обновлять статистику слишком часто, поскольку необходимо найти баланс между выигрышем в производительности за счет усовершенствованных планов запросов и потерей времени на перекомпиляцию запросов.Однако данное утвеждение справедливо для высоконагруженых баз данных. В принципе ежесуточное обновление статистики положительно влияет на работу большинства баз данных 1С.
5. Задача "Очистка процедурного кэша". Процедурный КЭШ рекомендуется очищать при каждом обновлении статистики. Данная операция тесно связана с предыдущей.
6. Если резервное копирование производится средствами MS SQL, то следующей задачей будет именно "Резервное копирование". В процессе снимается и архивируется дамп базы данных.
7. Задача "Очистка журнала". Данная операция очищает логи резервного копирования, журнала заданий и журнала плана обслуживания. Можно установить максимальный возраст записей.
8. Задача "Очистка после обслуживания". Данная процедура позволяет удалить устаревшие резервные копии баз данных. Можно установить максимальный возраст файлов для удаления.
Длинный план

Слева в конструкторе запросов имеется панель элементов из которой при помощи drag&drop перетаскиваются необходимые задачи. Соединяя блоки стрелочками мы задаём последовательность выполнения задач по обслуживанию. Также можно в свойствах стрелочек задавать условия при которых включается следующее задание. Каждое задание обязательно должно параметризироваться. Можно и оставить все настройки "по умолчанию", но как мимнимум необходимо выбрать список баз к которым будет применяться данная задача.
Задача по очистке процедурного кэша задаётся в виде задачи "Выполнения инструкции T-SQL" в настройках указывается наименование "Очистка процедурного кэша" и задается выполнение команды "DBCC FREEPROCCACHE". На скриншотах выше приведены реальные функционирующие планы обслуживания. После произведения необходимых настроек задач необходимо задать расписание выполнения планов обслуживания. Для этого кликаем по изображению календарика сверху и задаём нужное нам расписание проведения регламентного обслуживания в довольно таки простом мастере. 
Конструктор планов
Собственно на этом заканчивается весь процесс настройки простого плана обслуживания для баз данных 1С на MS SQL Server.
Дополнительно по регламентному обслуживанию баз 1С можно почитать тут: https://its.1c.ru/db/metod8dev#content:5837:hdoc

Андрей Тельнов
Вернуться обратно
ОПУБЛИКОВАТЬ В СОЦ.СЕТЯХ
Моя корзина
Отложенные
Недоступно
Избранное

Ваша корзина пуста, для оформления заказа перейдите в каталог и выберите интересующие вас товары

Перейти в каталог

Перейти в каталог

Товары, недоступные к заказу

Добавляйте ваши товары в избранное

Перейти в каталог

Избранное

Добавляйте ваши товары в избранное

Перейти в каталог