Миграция и консолидация баз данных
Переносим данные между системами управления базами данных, сводим разрозненные базы в единое хранилище и приводим в порядок то, что накопилось за годы. После переноса проводим полную сверку: совпадение количества записей и контрольных сумм по каждой таблице проверяется до переключения, а не после жалоб пользователей.
Коротко о задаче
Данные переживают всё остальное. Приложения переписывают, интерфейсы меняют, подрядчиков меняют, а база остаётся и растёт. Поэтому любая работа с ней требует осторожности: код можно откатить, потерянные данные вернуть неоткуда.
Задачи бывают трёх видов.
Смена СУБД. Причины разные: уход вендора с рынка, невозможность продлить лицензию, стоимость владения, требования к отечественному программному обеспечению, упор в возможности текущей системы. Перенос осложняется тем, что типы данных, синтаксис запросов и поведение при конкурентном доступе отличаются, и дословный перенос работает не всегда.
Консолидация. Данные лежат в трёх местах: старая система, новая система и таблица, которую ведёт бухгалтерия. Записи об одном и том же клиенте не совпадают, дубликаты множатся, сводный отчёт собирается вручную. Свести это в одно хранилище означает решить, что считать истиной при расхождении, и это вопрос не технический.
Наведение порядка. База работает, но росла без присмотра: избыточные данные, отсутствующие индексы, тяжёлые запросы, разрастание архивных таблиц, история за десять лет вперемешку с оперативными данными.
Мы работаем со всеми тремя.
Что входит в услугу
- Обследование базы
Изучаем структуру, объёмы, связи, качество данных. Ищем дубликаты, битые ссылки, поля со смешанными форматами, записи-сироты. Обследование почти всегда обнаруживает то, о чём не знали.
- Правила преобразования
Описываем соответствие структур источника и приёмника, правила преобразования типов, обработку пустых значений, логику склейки дубликатов. По консолидации отдельно фиксируем, какой источник считается приоритетным по каждому полю.
- Пробный перенос
Прогоняем миграцию на копии в тестовой среде, замеряем время, находим проблемные места. Пробных прогонов обычно несколько: первый показывает, чего не знали, последний подтверждает готовность.
- Сверка результата
После каждого прогона сравниваем количество записей, контрольные суммы по ключевым полям, итоговые суммы по денежным показателям, целостность связей. Расхождения разбираем поимённо до нуля.
- Боевой перенос
Выполняем в согласованное окно, чаще ночью или в выходные. Порядок действий, ответственные и критерии успеха фиксируются заранее.
- План отката
Определяем точку невозврата и порядок возврата на исходную систему. Старую базу оставляем доступной для чтения в течение оговорённого срока.
- Оптимизация после переноса
Добавляем недостающие индексы, разделяем оперативные и архивные данные, ускоряем тяжёлые запросы.
Что это даёт заказчику
- Данные переносятся полностью. Сверка проводится до переключения, а не после того, как пользователь не нашёл свою запись.
- Известное окно простоя. Пробные прогоны дают фактическое время, а не оценку на глаз.
- Возможность вернуться. План отката подготовлен и проверен заранее.
- Единая картина после консолидации. Отчёты перестают расходиться, потому что источник становится один.
- Ускорение как побочный результат. Наведение порядка в структуре обычно даёт заметный прирост скорости.
Как мы работаем
Основная СУБД в наших проектах — PostgreSQL, все наши платформы работают на ней. Переносим и с других систем, включая коммерческие, лицензии на которые стало сложно продлевать.
Порядок неизменный: обследование, правила преобразования, пробный перенос, сверка, повтор пробного прогона до чистого результата, боевой перенос. Пропускать этапы не соглашаемся: экономия в два дня на пробных прогонах оборачивается неделей разбирательств после переключения.
Смежные направления: {{ссылка: Замена зарубежного ПО на отечественные аналоги}}, {{ссылка: Системы резервного копирования и восстановления}}, {{ссылка: Интеграция систем и разработка API}}.
Наш опыт
Мы проектируем и развиваем базы данных промышленных систем. Платформа фармаконадзора работает с данными более трёхсот держателей регистрационных удостоверений и более десяти тысяч зарегистрированных продуктов, через неё прошло более сорока тысяч сообщений о нежелательных реакциях. Структура таких баз меняется постоянно, и каждое изменение проходит контролируемо, с сохранением работоспособности системы.
Отдельно — опыт работы с данными в регулируемых отраслях, где к переносу предъявляются повышенные требования: любое изменение прослеживается, а полнота переноса подтверждается документально. Смотрите {{ссылка: Целостность данных и аудиторский след}}.
Расскажите, что и куда нужно перенести. Начнём с обследования базы и оценки объёма.
Давайте создавать вместе!
Свяжитесь с нами и мы проконсультируем по вопросам реализации IT-решений и найдем лучший подход к разработке
Контакты
Офис: г. Казань, ул. Островского, 57Б, оф. 110
Почта: info@nabla-lab.ru
Телефон: +7 (965) 595-62-78