Введение
Опишем практический пример свёртки баз 1С по методике с применением DBREPLICATION, которая была описана в нашей статье - «
ПРИМЕНЕНИЕ DBREPLICATION ПРИ ОБРЕЗКЕ/СВЁРТКЕ БАЗ ДАННЫХ 1С НА MS SQL SERVER».
Проблематика
В крупной российской компании одна из важных прикладных систем реализована на платформе 1С 8 + MSSQLServer. База данных активно растёт, объём приближается к 3 терабайтам. Одновременно с этим база всё активнее используется, увеличивается нагрузка на программно-аппаратную часть. Опустим подробности, скажем лишь, что в конечном итоге возникло понимание о необходимости свернуть базу, и удалить из неё исторические данные по 2016 год включительно.
Выбор методики
Как было показано в нашей
статье, задача свёртки базы такого размера является весьма нетривиальной по многим причинам. Было принято решение использовать для этого методику с применением DBReplication. Основной мотив такого выбора – это надёжность результата и отсутствие простоя системы. Применение этой методики позволяет выполнить свёртку без цейтнота, имея в своём распоряжении столько времени, сколько нужно. Выполнить все операции, в том числе и верификацию данных, максимально аккуратно и надёжно.
Реализация
Сам по себе алгоритм свёртки решено было реализовать преимущественно средствами TSQL с небольшими включениями типовых средств 1С. В ходе обследования выяснилось, что далеко не все прикладные объекты можно свернуть по намеченную дату. Дело в том, что, как оказалось, особенности учета некоторых подразделений требовали, чтобы в ряде крупнейших подсистем присутствовали исторические данные в полном объеме на глубину до 5-7 лет.
Соответственно, фактический коэффициент уменьшения БД сильно ухудшился относительно первоначальных ожиданий. Первоначально ожидалось, что базу удастся уменьшить по меньшей мере в 2,5 раза.Но с учетом выявленных ограничений анализ показал, что обрезать удастся лишь около 33% исходного объёма. Тем не менее и эта величина было расценена как хорошая цель. В том числе потому, что выигрыш не ограничивается только лишь объёмом бд. Очень ценным является также и выигрыш в быстродействии отдельных таблиц, а размер ряда важнейших таблиц должен был уменьшиться значительно сильнее- примерно в 3 раза.
Основные вехи и результаты
Итак, свёртка состоялась. Основные результаты следующие. Длительность непосредственной свёртки данных составила около 12 часов. Синхронизация накопленных изменений посредством DBREPLICATIONзаняла около 1 часа. Затем специалисты Заказчика около 1 недели выполняли верификацию данных в свёрнутой базе. Такая длительность связана с тем, что проверка была крайне тщательной и всесторонней, с привлечением специалистов разного профиля. Она включала в себя в том числе построение некой модели данных во внешней системе.И это несмотря на то, что всё это ранее уже перепроверялось в тестовой среде. Но такая тщательность вполне понятна и оправдана –ведь права на ошибку нет. Пока шла проверка данных,свёрнутая база автоматически синхронизировалась с текущей боевой БД посредством DBREPLICATION. Верификация прошла успешно, ошибок не выявила.
Пользователей переключили в свёрнутую базу. Прежняя база стала выполнять роль исторического архива с доступом только на чтение. Репликацию отключили, поскольку синхронизировать исторический архив потребности не было.
Итоги проекта
- Примененная методика себя полностью оправдала:
- Благодаря ей Исполнитель получил достаточно времени на выполнение операций свертки без помех пользователям.
- Заказчик получил достаточно времени на выполнение предельно тщательной верификации данных, которая необходима для максимального снятия рисков.
- Простоя системы не было, пользователи работали в обычном режиме.
- Свёртка выполнена успешно:
- Все задачи, поставленные на проекте выполнены, цели достигнуты.
- Общий объем сворачиваемой БД уменьшился на 33%.
Примечание: большего эффекта по объёму добиться не удалось по объективным причинам - из-за ограничений, наложенных некоторыми большими подсистемами.
- Объём и количество строк в ряде важных активно используемых таблиц уменьшился в 3 раза.