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

Внимание

Рекомендуется использовать новую службу миграции в База данных Azure для PostgreSQL для более упрощенной и эффективной миграции. Эта служба упрощает процесс, поддерживая различные исходные среды, обеспечивая переход на База данных Azure для PostgreSQL без хэссов.

Дополнительные сведения об Azure Database Migration Service см. в статье "Что такое Azure Database Migration Service?".

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. Дополнительные сведения см. в статье Поддерживаемые версии базы данных 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.

Следующие шаги