Руководство. Перенос 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 — гибкий сервер.
Также обратите внимание, что версия целевой Базы данных Azure для PostgreSQL не может быть более ранней, чем версия исходного экземпляра. Например, PostgreSQL 12 может перейти на База данных Azure для PostgreSQL >= 12 версий, но не База данных Azure для PostgreSQL 11.
Создайте виртуальную сеть 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 задач
Пользователю должна быть присвоена роль РЕПЛИКАЦИИ на сервере, на котором размещается база данных-источник.
Внимание
Чтобы поддерживать синхронизацию в целевую базу данных, все таблицы в существующей базе данных должны иметь первичный ключ.
Перенос примера схемы
Чтобы подготовить все объекты базы данных, такие как схемы таблицы, индексы и хранимые процедуры, нам нужно извлечь схему из исходной базы данных и применить ее к нужной базе данных.
Используйте команду 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.
Создайте пустую базу данных в целевой среде, которая является Базой данных Azure для PostgreSQL.
Дополнительные сведения о подключении и создании базы данных см. в статье "Создание сервера База данных Azure для PostgreSQL в портал Azure".
Импортируйте схемы в целевую базу данных, созданную путем восстановления схемы файла дампа.
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.
Войдите на портал Azure. Выполните поиск по запросу Подписки и выберите этот пункт.
Выберите подписку, в которой нужно создать экземпляр Azure Database Migration Service, а затем щелкните Поставщики ресурсов.
В поле поиска введите migration, а затем щелкните элемент Зарегистрировать рядом с Microsoft.DataMigration.
Создание экземпляра Azure Database Migration Service
На домашней странице или в меню портала Azure щелкните элемент Создать ресурс. Найдите и выберите элемент Azure Database Migration Service.
На экране Azure Database Migration Service выберите Создать.
Выберите соответствующий тип исходного сервера и тип целевого сервера и выберите параметр Database Migration Service (классическая модель).
На экране основных сведений Создание Migration Service сделайте следующее:
- Выберите подписку.
- Создайте группу ресурсов или выберите существующую.
- Укажите имя для экземпляра Azure Database Migration Service.
- Выберите расположение, в котором нужно создать экземпляр Azure Database Migration Service.
- Выберите Azure в качестве режима службы.
- Выберите ценовую категорию. Дополнительные сведения о ценовых категориях и затратах см. на странице с описанием цен.
- Выберите Далее: сеть.
На экране сети Создание Migration Service сделайте следующее:
- Выберите существующую виртуальную сеть или создайте новую. Виртуальная сеть предоставляет Azure Database Migration Service с доступом к исходному серверу и целевому экземпляру. См. статью Краткое руководство. Создание виртуальной сети с помощью портала Azure.
Выберите Проверить и создать, чтобы проверить сведения, а затем щелкните Создать, чтобы создать службу.
Через несколько минут экземпляр службы Azure Database Migration service создается и готов к использованию:
Создание проекта миграции
После создания службы найдите ее на портале Azure, откройте и создайте проект миграции.
На портале Azure щелкните Все службы, выполните поиск по запросу "Azure Database Migration Service" и выберите Azure Database Migration Services (Службы Azure Database Migration Service).
На экране Службы Azure Database Migration Service найдите и выберите имя созданного экземпляра Azure Database Migration Service, а затем щелкните элемент Новый проект миграции.
На экране Новый проект миграции задайте имя проекта, в текстовом поле Тип исходного сервера выберите элемент PostgreSQL, а в текстовом поле Тип целевого сервера — элемент База данных Azure для PostgreSQL.
В разделе "Тип действия миграции" выберите "Миграция данных в Сети".
Кроме того, вы можете выбрать Создать только проект, чтобы создать проект миграции для отложенного выполнения.
Выберите "Создать и запустить действие", чтобы успешно использовать Azure Database Migration Service для переноса данных.
Укажите сведения об источнике.
В окне Добавление сведений об источнике укажите сведения о подключении для исходного экземпляра PostgreSQL.
Укажите сведения о целевом объекте.
На экране сведений о целевом объекте укажите сведения о подключении для целевого База данных Azure для PostgreSQL — гибкий сервер, который является предварительно подготовленным экземпляром, в котором была развернута схема с помощью pg_dump.
Нажмите кнопку "Далее:Выбор баз данных", а затем на экране "Выбор баз данных", сопоставляйте источник и целевую базу данных для миграции.
Если в целевой базе данных содержится база данных с тем же именем, что у исходной базы данных, Azure Database Migration Service по умолчанию выберет целевую базу данных.
Нажмите кнопку "Далее:Выбрать таблицы", а затем на экране "Выбор таблиц " выберите необходимые таблицы, которые необходимо перенести.
Нажмите кнопку "Далее:Настройка параметров миграции", а затем на экране "Настройка параметров миграции " примите значения по умолчанию.
На экране сводки по миграции в текстовом поле "Имя действия" укажите имя действия миграции, а затем просмотрите сводку, чтобы убедиться, что исходные и целевые сведения соответствуют указанным ранее данным.
Выполните миграцию.
Выберите Начать миграцию.
Откроется окно "Действие миграции", а для действия в поле Состояние отобразится надпись Выполняется резервное копирование.
Отслеживайте ход миграции.
На экране действия миграции нажмите кнопку Обновить, чтобы обновить содержимое экрана, пока состояние миграции не поменяется на Завершено.
Когда миграция завершится, выберите в столбце Имя базы данных конкретную базу данных, чтобы узнать состояние миграции для операций полной загрузки данных и добавочной синхронизации данных.
Примечание.
В разделе полной загрузки данных отображается состояние начальной загрузки, а в разделе добавочной синхронизации данных — состояние отслеживания измененных данных (CDC).
Выполните прямую миграцию.
После завершения начальной полной загрузки базы данных помечаются как готовые к прямой миграции.
Когда вы будете готовы выполнить миграцию базы данных, щелкните Запустить прямую миграцию.
Дождитесь завершения счетчика
0
ожидающих изменений, чтобы убедиться, что все входящие транзакции в исходную базу данных остановлены, установите флажок "Подтвердить" и нажмите кнопку "Применить".Когда состояние переноса базы данных изменится на Завершено, повторно создайте последовательности (если это необходимо) и подключите свои приложения к новому целевому экземпляру Базы данных Azure для PostgreSQL.