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