[Документация Yandex Cloud](../../index.md) > [Yandex Managed Service for YDB](../index.md) > [Пошаговые инструкции](index.md) > Миграция базы данных в другую зону доступности

# Миграция базы данных YDB в другую зону доступности

Имеет смысл выполнять миграцию в другую зону доступности только для [Dedicated базы данных](../concepts/serverless-and-dedicated.md) YDB. К Serverless БД миграция не применяется.

Dedicated БД располагается в нескольких [зонах доступности](../../overview/concepts/geo-scope.md) региона центральной России `kz1`. Вы можете заменить одну зону на другую. Для этого:

1. [Создайте подсеть](../../vpc/operations/subnet-create.md) в зоне доступности, в которую вы переносите БД.
1. Переместите базу данных YDB в новый набор подсетей:

   {% list tabs group=instructions %}

   - Yandex Cloud CLI {#cli}

      Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), [установите и инициализируйте его](../../cli/quickstart.md#install).

      По умолчанию используется каталог, указанный при [создании](../../cli/operations/profile/profile-create.md) профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду `yc config set folder-id <идентификатор_каталога>`. Также для любой команды вы можете указать другой каталог с помощью параметров `--folder-name` или `--folder-id`. Если вы обращаетесь к ресурсу по имени, поиск будет выполнен в каталоге по умолчанию. Если вы обращаетесь к ресурсу по идентификатору, поиск будет выполнен глобально — во всех каталогах с учетом прав доступа.

      Выполните команду:

      ```bash
      yc ydb database update <имя_БД> \
         --subnet-id <идентификатор_подсети_в_зоне_kz1-a> \
         --subnet-id <идентификатор_подсети_в_зоне_kz1-b> \
         --subnet-id <идентификатор_подсети_в_зоне_kz1-d>
      ```

   - Terraform {#tf}

      Если у вас еще нет Terraform, [установите его и настройте провайдер Yandex Cloud](../../tutorials/infrastructure-management/terraform-quickstart.md#install-terraform).
      
      
      Чтобы управлять инфраструктурой с помощью Terraform от имени сервисного аккаунта или пользовательских аккаунтов: аккаунта на Яндексе, федеративного аккаунта и локального пользователя, [аутентифицируйтесь](../../terraform/authentication.md) соответствующим способом.

      1. Откройте конфигурационный файл Terraform с планом инфраструктуры и измените фрагмент с описанием БД:

         ```hcl
         resource "yandex_ydb_database_dedicated" "<название_БД>" {
            ...
            subnet_ids = [<идентификаторы_подсетей>]
            ...
         }
         ```

         В параметре `subnet_ids` перечислите через запятую идентификаторы подсетей в зонах доступности `kz1-a`, `kz1-b` и `kz1-d`.

      1. Примените изменения:

         1. В терминале перейдите в директорию с конфигурационным файлом.
         1. Проверьте корректность конфигурации с помощью команды:
         
            ```bash
            terraform validate
            ```
         
            Если конфигурация является корректной, появится сообщение:
         
            ```bash
            Success! The configuration is valid.
            ```
         
         1. Выполните команду:
         
            ```bash
            terraform plan
            ```
         
            В терминале будет выведен список ресурсов с параметрами. На этом этапе изменения не будут внесены. Если в конфигурации есть ошибки, Terraform на них укажет.
         1. Примените изменения конфигурации:
         
            ```bash
            terraform apply
            ```
         
         1. Подтвердите изменения: введите в терминале слово `yes` и нажмите **Enter**.

   {% endlist %}

## Миграция в Yandex Data Transfer {#data-transfer}

Если вы используете [трансфер типа](../../data-transfer/concepts/transfer-lifecycle.md#transfer-types) **Репликация** или **Копирование и репликация** и ваша БД выступает в роли [эндпоинта](../../data-transfer/concepts/index.md#endpoint), после смены подсетей в БД перезапустите трансфер одним из двух способов:

Чтобы перезапустить трансфер, выберите один из двух способов:

* [Деактивируйте](../../data-transfer/operations/transfer.md#deactivate) трансфер и дождитесь его перехода в статус **Остановлен**. Затем [активируйте](../../data-transfer/operations/transfer.md#activate) трансфер и дождитесь его перехода в статус **Реплицируется**.
* Измените какую-либо [настройку трансфера](../../data-transfer/operations/transfer.md#update) или [эндпоинта](../../data-transfer/operations/endpoint/index.md#update).

Подробнее в разделе [Миграция эндпоинтов и трансфера Data Transfer в другую зону доступности](../../data-transfer/operations/endpoint/migration-to-an-availability-zone.md).