Применяйте expand–migrate–contract: сначала совместимое расширение схемы, затем перенос данных и клиентов, и только потом удаление старого. Старые и новые версии должны временно работать вместе.
Как организовать процесс миграции базы данных, чтобы не прерывать работу сервиса (zero downtime)?
Применяйте expand–migrate–contract: сначала совместимое расширение схемы, затем перенос данных и клиентов, и только потом удаление старого. Старые и новые версии должны временно работать вместе.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Применяйте expand–migrate–contract: сначала совместимое расширение схемы, затем перенос данных и клиентов, и только потом удаление старого. Старые и новые версии должны временно работать вместе.
Большие backfill выполняйте порциями с контролем нагрузки и повторяемостью. Проверьте блокировки DDL, индексы, ограничения и длительность транзакций на подходящем объёме данных. Для переключения нужны верификация и rollback. Zero downtime нельзя обещать лишь по наличию migration-файла: возможности онлайн-операций зависят от СУБД.