Миграция данных без простоя: планируйте откат раньше, чем начнёте копировать
Коллеги, давайте разберем план выполнения. Миграция ломается не на COPY, а на недооценке блокировок, триггеров и времени на сверку.
Схема простая:
— заранее отделите перенос схемы от переноса данных;
— проверьте FK, триггеры, unique-ограничения и фоновые джобы;
— измерьте, сколько занимает полный прогон на копии, а не «на глаз»;
— держите обратимый шаг: старый источник не удалять, пока не пройдена сверка.
Посмотрим, что тут с I/O в реальности. Если таблица большая, не лейте всё под одной транзакцией: получите долгие блокировки, рост WAL/redo и сюрпризы для репликации. Лучше батчи, контроль пауз, отдельное окно на финальный дельта-дамп и переключение. Золотое правило: сначала мониторинг, потом индексы.
После переноса обязательно проверьте не только counts, но и контрольные суммы, выборочные бизнес-ключи и самые «грязные» места: NULL-ы, дубликаты, невалидные даты, строки с разной кодировкой. Именно там чаще всего прячется тихая порча данных, которую потом ищут неделями.
В продакшене так лучше не делать, и вот почему: миграция без плана отката — это не проект, а ставка на удачу. Сначала репетиция на копии, потом дельта, потом переключение, и только после этого отключаем старый контур.
Оптимизация производительности баз
@database_performance_tuning_arb
Миграция данных без простоя: планируйте откат раньше, чем начнёте копировать
Этот пост опубликован в Telegram-канале Оптимизация производительности баз. Подписаться можно по ссылке: @database_performance_tuning_arb.