Типы и жизненные циклы трансферов
Жизненный цикл трансфера — это набор его статусов и переходов между ними. Порядок перехода между статусами зависит от типа трансфера.
Типы трансферов
Трансферы бывают следующих типов:
- Копирование — переносит снапшот источника на приемник. Помимо однократного переноса снапшота различают типы копирования: Периодическое и Периодическое инкрементальное.
- Репликация — непрерывно получает изменения из источника и применяет их на приемнике. При этом первоначальная синхронизация данных не выполняется.
- Копирование и репликация — переносит текущее состояние источника на приемник и поддерживает его актуальность.
Выбор того или иного типа трансфера зависит от характера изменений данных на эндпоинте-источнике, требований к частоте поставок и актуальности данных.
Копирование
Трансфер типа Копирование предназначен для переноса состояния базы-источника на приемник без поддержания ее в актуальном состоянии. Изменения, произошедшие на источнике после завершения трансфера, перенесены не будут. Трансфер этого типа может быть полезен, когда на источнике нет пишущей нагрузки или нет необходимости в поддержании базы-приемника в актуальном состоянии, например, при развертывании тестовых сред.
Когда трансфер будет подготовлен к работе, он автоматически перейдет в статус Копируется. В нем он будет находиться до тех пор, пока все данные, находящиеся в источнике, не будут перенесены на приемник. Затем трансфер автоматически деактивируется и перейдет в статус Завершен.
Переход между статусами для трансферов типа Копирование показан на схеме:
Сервис Yandex Data Transfer реализует три вида копирования:
- Однократное — копирует все данные из источника в приемник в момент активации трансфера. Копирование выполняется в порядке убывания размера таблиц (самые объемные таблицы копируются первыми). Этот вид копирования может занимать много времени, если объем переносимых данных значительный. Кроме того, однократное копирование не учитывает изменений данных. Повторить копирование можно будет только после завершения предыдущей операции.
- Периодическое — копирует все данные из источника в приемник через определенные интервалы времени. Такой способ копирования позволяет настроить регулярную поставку данных. Этот подход рекомендован для небольших, часто меняющихся таблиц.
- Периодическое инкрементальное — копирует в приемник через определенные интервалы времени только те данные, которые были изменены в источнике с момента предыдущего копирования. Такой подход позволяет организовать поставку данных в приемник с минимальными задержками и нагрузкой на источник данных, но не позволяет учитывать операции удаления данных в источнике. Подробнее см. в разделе Периодическое инкрементальное копирование.
Репликация
Трансфер типа Репликация предназначен для переноса изменений из источника на приемник без полного копирования всех данных: во время активации будет перенесена только схема данных.
Когда трансфер будет подготовлен к работе, он автоматически перейдет в статус Реплицируется, в котором будет находиться неограниченно долго. Происходящие в источнике изменения будут автоматически передаваться на приемник.
Переход между статусами для трансферов типа Репликация показан на схеме:
Копирование и репликация
Трансфер типа Копирование и репликация объединяет функциональность трансферов типа Копирование и Репликация — данные источника полностью переносятся на приемник и поддерживаются в актуальном состоянии. Чаще всего такие трансферы используются в сценариях миграции.
После успешной активации и подготовки к работе, трансфер автоматически перейдет в статус Копируется. В нем он будет находиться до тех пор, пока все данные, находящиеся в источнике, не будут перенесены на приемник.
Затем трансфер перейдет в статус Реплицируется: все происходящие на источнике изменения будут автоматически переноситься на приемник.
Переход между статусами для трансферов типа Копирование и репликация показан на схеме:
Статусы
Доступные действия с трансфером определяются его текущим статусом. Подробнее см. в разделе Управление трансфером.
-
Создан — присваивается трансферу сразу после создания.
-
Создается — присваивается трансферу при активации.
В это время сервис выполняет проверку подключения к источнику и приемнику, а также создает ресурсы, необходимые для работы трансфера. В зависимости от типа трансфера и настройки эндпоинтов могут выполняться дополнительные действия, например, создание слотов репликации, копирование схемы данных и т. п.
-
Останавливается — присваивается трансферу при деактивации.
В это время сервис выполняет действия, необходимые для корректного отключения от источника и приемника. В зависимости от типа трансфера и настройки эндпоинтов может выполняться закрытие слотов репликации, перенос триггеров, хранимых процедур и функций, создание индексов в базе-приемнике и т. п.
-
Остановлен — присваивается трансферу при завершении деактивации.
Только успешная деактивация трансфера гарантирует работоспособность приемника и источника.
-
Копируется — присваивается трансферам типа Копирование и Копирование и репликация на время копирования данных из источника.
-
Реплицируется — присваивается трансферам типа Репликация и Копирование и репликация.
- Репликация — после успешной активации.
- Копирование и репликация — после успешного копирования данных из источника.
-
Завершен — присваивается трансферам, успешно завершившим перенос данных.
-
Ошибка — присваивается трансферу при возникновении неполадок в его работе.
Трансфер может перейти в статус Ошибка во время активации, репликации или копирования данных. В зависимости от статуса, предшествовавшего появлению ошибки, трансфер можно будет повторно активировать. Ошибки могут возникать как на источнике, так и на приемнике.
Подробнее о возможных причинах и способах устранения ошибок можно прочитать в разделе Решение проблем в Data Transfer.