Руководство по Миграция из PostgreSQL RDS в Базу данных Azure для PostgreSQL по сети с использованием DMS

С помощью службы Azure Database Migration Service базы данных из экземпляра RDS PostgreSQL можно перенести в Базу данных Azure для PostgreSQL, не отключая базу данных-источник от сети. Другими словами, миграцию можно выполнить с минимальным временем простоя для приложения. В этом руководстве выполняется миграция примера базы данных Прокат DVD из экземпляра RDS PostgreSQL 9.6 в Базу данных Azure для PostgreSQL с помощью действия сетевой миграции в Azure Database Migration Service.

В этом руководстве описано следующее:

  • перенос примера схемы с помощью служебной программы pg_dump;
  • Создайте экземпляр Azure Database Migration Service.
  • создание проекта миграции с использованием Azure Database Migration Service.
  • выполнение миграции.
  • Мониторинг миграции.
  • выполнить переключение после миграции.

Примечание

Чтобы выполнить подключенную миграцию с помощью Azure Database Migration Service, требуется создать экземпляр ценовой категории "Премиум". Дополнительные сведения см. на странице с ценами на Azure Database Migration Service. Мы шифруем диск для защиты данных от кражи при миграции.

Важно!

Чтобы оптимизировать процесс миграции, Майкрософт рекомендует создать экземпляр Azure Database Migration Service в том же регионе Azure, в котором размещена целевая база данных. Перемещение данных между регионами и географическими областями может замедлить процесс миграции и привести к ошибкам.

Совет

В Azure Database Migration Service можно перенести базы данных в автономном режиме или в режиме подключения. При автономной миграции время простоя приложения начинается при запуске миграции. Чтобы ограничить время простоя временем перехода в новую среду после миграции, используйте миграцию по сети . Рекомендуется протестировать автономную миграцию, чтобы определить, допустимо ли время простоя. Если ожидаемое время простоя неприемлемо, выполните миграцию по сети.

В этой статье описывается сетевая миграция из экземпляра RDS PostgreSQL в Базу данных Azure для PostgreSQL.

Предварительные требования

Для работы с этим руководством вам потребуется следующее:

  • Скачайте и установите PostgreSQL Community Edition версии 9.5, 9.6 или 10. На исходном сервере должна быть установлена PostgreSQL версии 9.5.11, 9.6.7, 10 или более поздней. Дополнительные сведения см. в статье Поддерживаемые версии базы данных PostgreSQL.

    Также обратите внимание, что версия целевой Базы данных Azure для PostgreSQL не может быть более ранней, чем версия RDS PostgreSQL. Например, RDS PostgreSQL 9.6 можно перенести только в Базу данных Azure для PostgreSQL 9.6, 10 или 11, но не в Базу данных Azure для PostgreSQL 9.5.

  • Создайте экземпляр Базы данных Azure для PostgreSQL или Базы данных Azure для PostgreSQL с Гипермасштабированием (Citus). В этом разделе документа приводятся сведения о том, как подключиться к серверу PostgreSQL с помощью pgAdmin.

  • Создайте виртуальную сеть Microsoft Azure для Azure Database Migration Service с помощью модели развертывания Azure Resource Manager, которая обеспечивает подключение "сеть — сеть" к локальным исходным серверам с помощью ExpressRoute или VPN. Дополнительные сведения о создании виртуальной сети приведены в документации по виртуальным сетям. В частности, уделите внимание кратким руководствам с пошаговыми инструкциями.

  • Убедитесь, что правила группы безопасности сети для виртуальной сети не блокируют исходящий порт 443 ServiceTag для Служебной шины, службы хранилища и Azure Monitor. См. дополнительные сведения о фильтрации трафика, предназначенного для виртуальной сети, с помощью групп безопасности сети.

  • Настройте брандмауэр Windows для доступа к ядру СУБД.

  • Откройте брандмауэр Windows, чтобы предоставить Azure Database Migration Service доступ к исходному серверу PostgreSQL. По умолчанию это TCP-порт 5432.

  • Если перед исходными базами данных развернуто устройство брандмауэра, вам может понадобиться добавить правила брандмауэра, чтобы позволить службе Azure Database Migration Service обращаться к исходным базам данных для выполнения миграции.

  • Создайте правило брандмауэра уровня сервера для сервера Базы данных Azure для PostgreSQL, чтобы предоставить службе Azure Database Migration Service доступ к целевым базам данных. Задайте диапазон подсети в виртуальной сети, которая используется для Azure Database Migration Service.

Настройка репликации для AWS RDS PostgreSQL

  1. Чтобы создать новую группу параметров, выполните инструкции AWS из статьи о работе с группами параметров базы данных.

  2. Используйте имя главного пользователя, чтобы подключиться к источнику из Azure Database Migration Service. Если вы используете учетную запись, отличную от учетной записи главного пользователя, она должна иметь роли rds_superuser и rds_replication. Роль rds_replication предоставляет разрешения на управление логическими слотами и потоковую передачу данных через логические слоты.

  3. Создайте группу параметров со следующей конфигурацией:

    a. Для параметра rds.logical_replication в группе параметров базы данных задайте значение 1.

    b. max_wal_senders = [количество параллельных задач]. Параметр max_wal_senders задает число параллельных задач, которые можно выполнить, рекомендуемое значение — 10 задач.

    c. max_replication_slots = [количество слотов], рекомендуемое значение — до 5 слотов.

  4. Свяжите созданную группу параметров с экземпляром RDS PostgreSQL.

Перенос схемы

  1. Чтобы перенести все объекты базы данных, такие как схемы таблицы, индексы и хранимые процедуры, извлеките схему из исходной базы данных и примените ее к нужной базе данных.

    Чтобы перенести только схему, проще всего выполнить pg_dump с параметром -s. Дополнительные сведения см. в разделе примеров в руководстве по pg_dump для Postgres.

    pg_dump -O -h hostname -U db_username -d db_name -s > your_schema.sql
    

    Например, чтобы выгрузить файл схемы дампа для базы данных dvdrental, используйте следующую команду:

    pg_dump -O -h localhost -U postgres -d dvdrental -s  > dvdrentalSchema.sql
    
  2. Создайте пустую базу данных в целевой службе, то есть в Базе данных Azure для PostgreSQL. Чтобы подключиться и создать базу данных, воспользуйтесь одной из следующих статей.

  3. Импортируйте схему в целевую службу, то есть в Базу данных Azure для PostgreSQL. Чтобы восстановить файл дампа схемы, выполните следующую команду:

    psql -h hostname -U db_username -d db_name < your_schema.sql
    

    Пример:

    psql -h mypgserver-20170401.postgres.database.azure.com  -U postgres -d dvdrental < dvdrentalSchema.sql
    

Примечание

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

Регистрация поставщика ресурсов

Прежде чем создать свой первый экземпляр Database Migration Service, зарегистрируйте поставщик ресурсов Microsoft.DataMigration.

  1. Войдите на портал Azure. Выполните поиск по запросу Подписки и выберите этот пункт.

    Отображение подписок на портале

  2. Выберите подписку, в которой нужно создать экземпляр Azure Database Migration Service, а затем щелкните Поставщики ресурсов.

    Отображение поставщиков ресурсов

  3. В поле поиска введите migration, а затем щелкните элемент Зарегистрировать рядом с Microsoft.DataMigration.

    Регистрация поставщика ресурсов

Создание экземпляра Azure Database Migration Service

  1. На портале Azure выберите +Создать ресурс, введите в поле поиска "Azure Database Migration Service", а затем в раскрывающемся списке выберите Azure Database Migration Service.

    Azure Marketplace

  2. На экране Azure Database Migration Service выберите Создать.

    Создание экземпляра Azure Database Migration Service

  3. На экране Создание службы миграции укажите имя службы, подписку и новую или существующую группу ресурсов.

  4. Выберите расположение, в котором нужно создать экземпляр Azure Database Migration Service.

  5. Выберите существующую виртуальную сеть или создайте новую.

    Виртуальная сеть предоставляет Azure Database Migration Service доступ к исходному экземпляру PostgreSQL и целевому экземпляру Базы данных Azure для PostgreSQL.

    См. статью Краткое руководство. Создание виртуальной сети с помощью портала Azure.

  6. Выберите ценовую категорию. Для этой миграции по сети необходимо выбрать ценовую категорию "Премиум: 4 виртуальных ядра".

    Настройка параметров экземпляра Database Migration Service

  7. Выберите Создать, чтобы создать службу.

Создание проекта миграции

После создания службы найдите ее на портале Azure, откройте и создайте проект миграции.

  1. На портале Azure щелкните Все службы, выполните поиск по запросу "Azure Database Migration Service" и выберите Azure Database Migration Services (Службы Azure Database Migration Service).

    Поиск всех экземпляров Azure Database Migration Service

  2. На экране Службы Azure Database Migration Service найдите и выберите имя созданного экземпляра Azure Database Migration Service, а затем щелкните элемент Новый проект миграции.

  3. На экране Новый проект миграции задайте имя проекта, в текстовом поле Тип исходного сервера выберите AWS RDS для PostgreSQL, а в текстовом поле Тип целевого сервера — База данных Azure для PostgreSQL.

  4. В разделе Выберите тип действия выберите Миграция данных по сети.

    Важно!

    Не забудьте выбрать режим миграции данных по сети, так как автономная миграция не поддерживается для этого сценария.

    Создание проекта Database Migration Service

    Примечание

    Кроме того, вы можете выбрать Создать только проект, чтобы создать проект миграции для отложенного выполнения.

  5. Щелкните Сохранить.

  6. Выберите Создать и выполнить действие, чтобы создать проект и выполнить действие миграции.

    Примечание

    Запишите предварительные требования, необходимые для настройки интерактивной миграции, в колонке создания проекта.

Указание сведений об источнике

  • В окне Добавление сведений об источнике укажите сведения о подключении для исходного экземпляра PostgreSQL.

    Сведения об источнике

Указание сведений о цели

  1. Нажмите кнопку Сохранить, а затем на экране Сведения о целевом объекте укажите сведения о подключении для предварительно подготовленного целевого сервера Базы данных Azure для PostgreSQL, для которого была развернута схема Прокат DVD с помощью PostgreSQL.

    Сведения о целевом объекте

  2. Нажмите кнопку Сохранить, а затем на экране Сопоставление с целевыми базами данных сопоставьте исходную и целевую базы данных для миграции.

    Если в целевой базе данных содержится база данных с тем же именем, что у исходной базы данных, Azure Database Migration Service по умолчанию выберет целевую базу данных.

    Сопоставление с целевыми базами данных

  3. Нажмите кнопку Сохранить в окне Migration summary (Сводка по миграции) и в поле Имя действия введите имя действия миграции, а затем проверьте соответствие сведениям о целевом и исходном сервере, которые вы указали ранее.

    Сводка по миграции

Выполнение миграции

  • Выберите Запустить миграцию.

    Появится окно действия миграции и в поле Состояние будет указано Инициализация.

Мониторинг миграции

  1. На экране действия миграции нажимайте Обновить, чтобы периодически обновлять содержимое экрана, пока в поле Состояние не будет указано Выполнение.

    Состояние действия

  2. В столбце Имя базы данных выберите базу данных, чтобы узнать состояние миграции для операций полной загрузки данных и добавочной синхронизации данных.

    В разделе полной загрузки данных отображается состояние начальной загрузки, а в разделе добавочной синхронизации данных — состояние отслеживания измененных данных (CDC).

    Экран инвентаризации — полная загрузка данных

    Экран инвентаризации — добавочная синхронизация данных

Выполнение прямой миграции

После завершения начальной полной загрузки базы данных помечаются как готовые к прямой миграции.

  1. Когда вы будете готовы выполнить миграцию базы данных, щелкните Запустить прямую миграцию.

  2. Подождите, пока счетчик Ожидающие изменения не дойдет до 0, что означает полное прекращение всех входящих транзакций в исходной базе данных, затем установите флажок Подтвердить и щелкните элемент Применить.

    Экран завершения миграции

  3. Когда состояние переноса базы данных изменится на Завершено, подключите свои приложения к новому целевому экземпляру Базы данных Azure для PostgreSQL.

Теперь перенос локального экземпляра RDS PostgreSQL в Базу данных Azure для PostgreSQL по сети завершен.

Дальнейшие действия