Миграция и консолидация баз данных

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

Коротко о задаче

Данные переживают всё остальное. Приложения переписывают, интерфейсы меняют, подрядчиков меняют, а база остаётся и растёт. Поэтому любая работа с ней требует осторожности: код можно откатить, потерянные данные вернуть неоткуда.

Задачи бывают трёх видов.

Смена СУБД. Причины разные: уход вендора с рынка, невозможность продлить лицензию, стоимость владения, требования к отечественному программному обеспечению, упор в возможности текущей системы. Перенос осложняется тем, что типы данных, синтаксис запросов и поведение при конкурентном доступе отличаются, и дословный перенос работает не всегда.

Консолидация. Данные лежат в трёх местах: старая система, новая система и таблица, которую ведёт бухгалтерия. Записи об одном и том же клиенте не совпадают, дубликаты множатся, сводный отчёт собирается вручную. Свести это в одно хранилище означает решить, что считать истиной при расхождении, и это вопрос не технический.

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

Мы работаем со всеми тремя.

Что входит в услугу

  • Обследование базы

Изучаем структуру, объёмы, связи, качество данных. Ищем дубликаты, битые ссылки, поля со смешанными форматами, записи-сироты. Обследование почти всегда обнаруживает то, о чём не знали.

  • Правила преобразования

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

  • Пробный перенос

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

  • Сверка результата

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

  • Боевой перенос

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

  • План отката

Определяем точку невозврата и порядок возврата на исходную систему. Старую базу оставляем доступной для чтения в течение оговорённого срока.

  • Оптимизация после переноса

Добавляем недостающие индексы, разделяем оперативные и архивные данные, ускоряем тяжёлые запросы.

Что это даёт заказчику

  • Данные переносятся полностью. Сверка проводится до переключения, а не после того, как пользователь не нашёл свою запись.
  • Известное окно простоя. Пробные прогоны дают фактическое время, а не оценку на глаз.
  • Возможность вернуться. План отката подготовлен и проверен заранее.
  • Единая картина после консолидации. Отчёты перестают расходиться, потому что источник становится один.
  • Ускорение как побочный результат. Наведение порядка в структуре обычно даёт заметный прирост скорости.

Как мы работаем

Основная СУБД в наших проектах — PostgreSQL, все наши платформы работают на ней. Переносим и с других систем, включая коммерческие, лицензии на которые стало сложно продлевать.

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

Смежные направления: {{ссылка: Замена зарубежного ПО на отечественные аналоги}}, {{ссылка: Системы резервного копирования и восстановления}}, {{ссылка: Интеграция систем и разработка API}}.

Наш опыт

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

Отдельно — опыт работы с данными в регулируемых отраслях, где к переносу предъявляются повышенные требования: любое изменение прослеживается, а полнота переноса подтверждается документально. Смотрите {{ссылка: Целостность данных и аудиторский след}}.

Расскажите, что и куда нужно перенести. Начнём с обследования базы и оценки объёма.

Давайте создавать вместе!

Свяжитесь с нами и мы проконсультируем по вопросам реализации IT-решений и найдем лучший подход к разработке

Контакты

Офис: г. Казань, ул. Островского, 57Б, оф. 110
Почта: info@nabla-lab.ru
Телефон: +7 (965) 595-62-78