Руководство. Миграция PostgreSQL в База данных Azure для PostgreSQL в Интернете с помощью DMS (классическая модель) через портал Azure

Azure Database Migration Service Azure Database Migration Service позволяет переносить базы данных из локального экземпляра PostgreSQL в Базу данных Azure для PostgreSQL с минимальным простоем для приложения. В этом руководстве вы перенесете пример базы данных listdb из локального экземпляра PostgreSQL 13.10 в База данных 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, в котором размещена целевая база данных. Перемещение данных между регионами и географическими областями может замедлить процесс миграции и привести к ошибкам.

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

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

  • Скачайте и установите выпуск Сообщества PostgreSQL. Исходная версия сервера PostgreSQL должна быть >= 9.4. (дополнительные сведения см. в статье Поддерживаемые версии в базе данных Azure для PostgreSQL);

    Также обратите внимание, что версия целевой Базы данных Azure для PostgreSQL не может быть более ранней, чем версия исходного экземпляра. Например, PostgreSQL 12 может перейти на версию База данных Azure для PostgreSQL >= 12, но не на База данных Azure для PostgreSQL 11.

  • Создайте сервер Базы данных Azure для PostgreSQL.

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

    Примечание

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

    • Целевая конечная точка базы данных (например, конечная точка SQL, конечная точка Azure Cosmos DB и т. д.)
    • конечную точку службы хранилища;
    • конечную точку служебной шины.

    Такая конфигурация вызвана тем, что у Azure Database Migration Service нет подключения к Интернету.

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

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

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

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

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

  • Чтобы включить логическую репликацию в файле postgresql.config, задайте параметры, приведенные ниже.

    • wal_level = logical
    • max_replication_slots = [количество слотов], рекомендуемое значение — до 5 слотов
    • max_wal_senders = [количество параллельных задач]. Параметр max_wal_senders задает число параллельных задач, которые можно выполнить: рекомендуемый параметр — до 10 задач
  • Пользователю должна быть присвоена роль РЕПЛИКАЦИИ на сервере, на котором размещается база данных-источник.

Важно!

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

Перенос примера схемы

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

  1. Используйте команду pg_dump -s, чтобы создать схемы файла дампа для базы данных.

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

    Например, чтобы создать файл дампа схемы для базы данных listdb :

    pg_dump -O -h localhost -U postgres -d listdb -s -x > listdbSchema.sql
    

    Дополнительные сведения об использовании программы pg_dump см. в примерах руководства о pg-dump.

  2. Создайте пустую базу данных в целевой среде, которая является Базой данных Azure для PostgreSQL.

    Дополнительные сведения о подключении и создании базы данных см. в статье Создание сервера База данных Azure для PostgreSQL в портал Azure.

  3. Импортируйте схемы в целевую базу данных, созданную путем восстановления схемы файла дампа.

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

    Пример:

    psql -h mypgserver-20170401.postgres.database.azure.com  -U postgres -d migratedb < listdbSchema.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 Marketplace

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

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

    Выберите соответствующий тип исходного сервера и Тип целевого сервера и выберите параметр Database Migration Service (классическая версия).

    Выбор сценария Database Migration Service (классический)

  3. На экране основных сведений Создание Migration Service сделайте следующее:

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

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

    • Нажмите Далее: сеть.
  4. На экране сети Создание Migration Service сделайте следующее:

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

    • Выберите Проверить и создать, чтобы проверить сведения, а затем щелкните Создать, чтобы создать службу.

    • Через несколько секунд экземпляр Azure Database Migration Service будет создан и готов к использованию:

    Созданная служба Migration Service

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

После создания службы найдите ее на портале 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, а затем щелкните элемент Новый проект миграции.

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

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

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

    Снимок экрана: создание проекта миграции.

    Примечание

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

  5. Выберите Создать и запустить действие, чтобы успешно использовать Azure Database Migration Service для переноса данных.

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

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

    Снимок экрана: экран добавления сведений об источнике.

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

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

    Снимок экрана: экран добавления сведений о целевом объекте.

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

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

    Снимок экрана: базы данных карты с целевым экраном.

  3. Щелкните Далее:Выбор таблиц, а затем на экране Выбор таблиц выберите необходимые таблицы, которые необходимо перенести.

    Снимок экрана: выбор таблиц для миграции.

  4. Щелкните Далее:Настройка параметров миграции, а затем на экране Настройка параметров миграции примите значения по умолчанию.

    Снимок экрана настройки параметров миграции.

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

    Снимок экрана: экран сводки по миграции.

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

  • Выберите Начать миграцию.

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

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

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

    Снимок экрана: экран мониторинга миграции.

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

    Примечание

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

    Снимок экрана: экран сведений о полной загрузке миграции.

    Снимок экрана со сведениями о добавочной загрузке миграции.

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

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

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

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

    Снимок экрана: экран завершения прямой миграции.

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

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