[Документация Yandex Cloud](../../index.md) > [Yandex Data Transfer](../index.md) > [Пошаговые инструкции](index.md) > Работа с базами данных во время трансфера

# Работа с базами данных во время трансфера

При работе с трансферами данных необходимо учитывать особенности баз данных.
Во время работы трансфера с репликацией ([типы трансфера](../concepts/index.md#transfer-type) _**Репликация**_ и _**Копирование и репликация**_) данные на источнике и приемнике могут различаться, поэтому при чтении из базы-приемника в это время могут возникать ошибки. После [деактивации](transfer.md#deactivate) трансфера данные на источнике и приемнике будут одинаковы (отложенная согласованность, eventual consistency).

## MySQL {#mysql}

* Для трансферов в статусе **Копируется** любые изменения схемы данных (`ALTER`) на источнике или приемнике прервут трансфер.

* Для трансферов в статусе **Реплицируется** схему данных на источнике можно изменять. Все операции `ALTER`, попавшие в бинарный лог (binlog) на источнике, автоматически применятся на приемнике. Этот процесс занимает некоторое время, поэтому трансфер может замедлиться.

## PostgreSQL {#postgresql}

{% note tip %}

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

{% endnote %}

Для трансферов типа _**Копирование**_ и _**Копирование и репликация**_:

* в статусе **Копируется** запрещено изменять схему данных на источнике и приемнике;
* в статусе **Реплицируется** любые изменения схемы данных на источнике вручную примените на приемнике, иначе трансфер не сможет продолжить работу.

  Например, пусть в таблицу `test_table` источника добавили новый столбец:

    ```sql
    ALTER TABLE test_table ADD COLUMN val2 TEXT;
    ```

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

    ```sql
    ALTER TABLE test_table ADD COLUMN val2 TEXT;
    ```

  После этого трансфер сможет продолжить работу.

## MongoDB {#mongodb}

* Для трансферов в статусе **Копируется** запрещено производить действия, которые сокращают временное окно _журнала операций_ (oplog) на источнике. Не стоит добавлять, удалять шарды или каким-либо образом их переконфигурировать в процессе копирования, а также производить другие действия, приводящие к уменьшению временного окна журнала операций.

* Для трансферов в статусе **Реплицируется** можно столкнуться с проблемой дублирования ключа в ситуациях, когда приемником выступает шардированный кластер MongoDB (Managed Service for MongoDB) с индексом шардирования, отличным от `_id`. Во время работы трансфера не рекомендуется создавать на приемнике кластеры с индексами шардирования, отличными от `_id`.