Поделиться через


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

Внимание

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

С помощью службы Azure Database Migration Service базы данных из экземпляра RDS PostgreSQL можно перенести в Базу данных Azure для PostgreSQL, не отключая базу данных-источник от сети. Другими словами, миграцию можно выполнить с минимальным временем простоя для приложения. В этом руководстве вы переносите DVD Rental образец базы данных из экземпляра 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 — гибкий сервер.

  • Создайте виртуальную сеть 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. Создайте группу параметров со следующей конфигурацией:

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

    • max_wal_senders = [число параллельных задач]. Параметр max_wal_senders задает количество параллельных задач, которые могут выполняться. Рекомендуемый параметр: 10.

    • 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. Выберите ценовую категорию. Для этой миграции в Интернете выберите ценовую категорию "Премиум": 4vCores.

    Снимок экрана: настройка параметров экземпляра Azure 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 по сети завершен.