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


Руководство: Онлайн миграция из Amazon Aurora PostgreSQL в базу данных Azure для PostgreSQL с помощью службы миграции

В этой статье описывается, как перенести базу данных PostgreSQL из Amazon Aurora в База данных Azure для PostgreSQL в Интернете.

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

Изучив это руководство, вы:

  • Выполните предварительные требования
  • Запуск миграции
  • Отслеживайте ход миграции.
  • Инициирование переключения
  • Проверка миграции

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

Перед началом миграции с помощью службы миграции в База данных Azure для PostgreSQL важно выполнить следующие предварительные требования. Эти предварительные требования специально предназначены для сценариев миграции через Интернет.

Проверка исходной версии

Исходная версия сервера PostgreSQL должна быть 9.5 или более поздней. Если исходная версия PostgreSQL выше 9.5, обновите версию до версии 9.5 или более поздней перед началом миграции.

Установите test_decoding для настройки источника

  • Подключаемый модуль test_decoding получает журнал предзаписи (WAL) через механизм логического декодирования. Подключаемый модуль декодирует WAL в текстовые представления выполняемых операций.
  • В Amazon RDS для PostgreSQL подключаемый модуль test_decoding предварительно установлен и готов к логической репликации. Вы можете легко настроить слоты логической репликации и транслировать изменения WAL, например, для фиксации изменений данных (CDC) или для репликации во внешние системы.

Дополнительные сведения о подключаемом модуле test_decoding см. в документации по PostgreSQL.

Настройте целевую конфигурацию

Перед началом миграции необходимо создать экземпляр База данных Azure для PostgreSQL в Azure. Единица SKU, выделенная для гибкого сервера Azure Database for PostgreSQL, должна соответствовать источнику.

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

Включение CDC в качестве источника

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

  • Чтобы разрешить пользователю миграции доступ к разрешениям репликации, выполните следующую команду:

    GRANT rds_replication TO <username>;
    
  • В исходном экземпляре PostgreSQL измените следующие параметры в группе параметров кластеров баз данных, создав новую группу параметров:

    • Задайте для параметра rds.logical_replication значение 1.
    • Задайте max_replication_slots значение, превышающее 1значение. Значение должно быть больше количества баз данных, которые вы выбираете для миграции.
    • Задайте max_wal_senders значение, превышающее 1значение. Это должно быть по крайней мере то же значение, что и значение для max_replication_slots, а также число отправителей, уже используемых в вашем экземпляре.
    • Параметр wal_sender_timeout завершает неактивные подключения репликации, которые длятся дольше указанного числа миллисекунд. Значением по умолчанию для экземпляра Amazon Aurora PostgreSQL является 30000 milliseconds (30 seconds). Установка значения 0 (zero) отключает механизм времени ожидания и является допустимым параметром для миграции.
  • На целевом гибком сервере, чтобы предотвратить выход из хранилища в сети для хранения журналов, убедитесь, что в пространстве таблиц достаточно хранилища с помощью подготовленного управляемого диска. Отключите параметр azure.enable_temp_tablespaces_on_local_ssd сервера в течение длительности миграции. Восстановите параметр в исходное состояние после миграции.

Настройка настройки сети

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

Для получения информации о настройке сети смотрите Сценарии сети для службы миграции.

Включение расширений

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

В целевом экземпляре гибкого сервера Базы данных Azure для PostgreSQL включите поддерживаемые расширения, которые определены в исходном экземпляре PostgreSQL.

Дополнительные сведения см. в разделе "Расширения" в База данных Azure для PostgreSQL.

Примечание.

При внесении изменений в shared_preload_libraries параметр требуется перезапуск.

Проверка параметров сервера

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

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

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

Проверка пользователей и ролей

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

  • Миграция пользователей и ролей вручную. Пользователи и связанные с ними роли должны быть перенесены вручную в экземпляр База данных Azure для PostgreSQL. Для упрощения этого процесса можно использовать служебную программу pg_dumpall с флагом --globals-only для экспорта глобальных объектов, таких как роли и учетные записи пользователей.

    Выполните следующую команду . Замените <username> фактическим именем пользователя и замените <filename> его именем, которое вы хотите использовать для выходного файла.

    pg_dumpall --globals-only -U <username> -f <filename>.sql
    
  • Ограничение на роли суперпользователя: База данных Azure для PostgreSQL не поддерживает роли суперпользователя. Перед миграцией необходимо удалить разрешения суперпользователя. Убедитесь, что разрешения и роли настроены соответствующим образом.

Выполнив эти действия, вы можете убедиться, что учетные записи пользователей и роли правильно перенесены в База данных Azure для PostgreSQL без проблем, связанных с ограничениями суперпользователя.

Отключение высокой доступности (надежность) и реплик чтения в целевом объекте

Важно отключить высокий уровень доступности (надежность) и реплики чтения в целевой среде перед началом миграции. Эти функции должны быть включены только после завершения миграции.

Запуск миграции

Вы можете перенести, используя портал Azure или Azure CLI.

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

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

Настройка задачи миграции

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

  1. Откройте веб-браузер и перейдите к портал Azure. Введите свои учетные данные для входа.

  2. Перейдите к экземпляру гибкого сервера Базы данных Azure для PostgreSQL.

  3. В меню службы выберите "Миграция".

    Снимок экрана: выбор миграции на портале Azure.

  4. Выберите "Создать", чтобы перейти с Amazon Aurora на гибкий сервер.

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

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

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

Настройка

Введите или выберите следующие сведения.

  • Имя миграции: введите уникальный идентификатор для каждой миграции на этот целевой гибкий сервер. В имени миграции можно использовать только буквенно-цифровые символы и дефисы (-). Имя не может начинаться с дефиса, и оно должно быть уникальным для целевого сервера. Не допускается, чтобы две миграции на один и тот же гибкий сервер-назначение имели одинаковое имя.

  • Тип исходного сервера: выберите тип источника, соответствующий источнику PostgreSQL, например облачной службе PostgreSQL, локальной установке или виртуальной машине.

  • Вариант миграции: выберите один из следующих вариантов для проверки предварительной миграции:

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

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

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

  • Режим миграции: выберите режим миграции. Параметр по умолчанию — "Вне сети".

Нажмите кнопку "Далее" — подключение к источнику.

Снимок экрана: вкладка

Выбор сервера среды выполнения

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

Для получения дополнительной информации смотрите сервер среды выполнения миграции.

Снимок экрана: вкладка

Подключение к источнику

На вкладке "Подключение к источнику " введите или выберите следующие сведения для источника базы данных:

  • Имя сервера: введите имя узла или IP-адрес исходного экземпляра PostgreSQL.
  • Порт: введите номер порта исходного сервера.
  • Имя входа администратора сервера: введите имя пользователя исходного сервера PostgreSQL.
  • Пароль: введите пароль исходного сервера PostgreSQL.
  • Режим SSL: поддерживаемые значения — предпочитать и требовать. Если протокол Secure Sockets Layer (SSL) на исходном сервере PostgreSQL отключен, выберите Предпочесть. Если ssl на исходном сервере включен, выберите "Требовать". Значения SSL задаются в файле postgresql.conf .
  • Проверка подключения. Инициирует тест подключения между целевым объектом и источником. Когда подключение выполнено успешно, перейдите к следующему шагу, чтобы определить сетевые проблемы между целевым объектом и источником, а также проверить имя пользователя и пароль источника. Установка тестового подключения занимает несколько минут.

После успешного тестового подключения нажмите кнопку "Далее: выбрать целевой объект миграции".

Снимок экрана: вкладка

Выберите целевой объект миграции

На вкладке "Выбор целевого объекта миграции" введите или выберите следующие сведения для гибкого целевого сервера в дополнение к подписке, группе ресурсов и имени сервера:

  • Имя администратора: имя администратора целевого сервера PostgreSQL.
  • Пароль: пароль целевого сервера PostgreSQL.
  • Настраиваемое полное доменное имя или IP-адрес (необязательно): настраиваемое полное доменное имя/IP-адрес является необязательным и может использоваться, если целевой объект находится за пользовательским DNS-сервером или имеет пользовательские пространства имен DNS, что делает его доступным только через определенные полные доменные имена или IP-адреса. Например, это может включать такие записи, как flexibleserver.example.com, 198.1.0.2 или полное доменное имя PostgreSQL, например flexibleserver.postgres.database.azure.com, если пользовательский DNS-сервер содержит DNS-зону postgres.database.azure.com или перенаправляет запросы для этой зоны на 168.63.129.16, где полное доменное имя разрешается в общедоступной или частной зоне DNS Azure.
  • Проверка подключения. Инициирует тест подключения между целевым объектом и источником. После успешного подключения перейдите к следующему шагу, чтобы определить проблемы с сетью между целевым объектом и источником, а также проверить имя пользователя и пароль для целевого сервера. Установка тестового подключения занимает несколько минут.

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

Снимок экрана вкладки

Выбор баз данных для миграции

На вкладке "Выбор базы данных для миграции" выберите из списка пользовательских баз данных для миграции с исходного сервера PostgreSQL.

После выбора баз данных нажмите кнопку "Далее: сводка".

Снимок экрана: вкладка

Итоги

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

Снимок экрана: вкладка

Отслеживайте ход миграции.

Через несколько секунд после нажатия кнопки "Начать проверку и миграцию" появится уведомление о том, что проверка или создание миграции успешно выполнено. Вы перенаправляетесь на вкладку Migration экземпляра гибкого сервера. Запись состояния равна InProgress, а подсостояние — PerformingPreRequisiteSteps. Рабочий процесс занимает от 2 до 3 минут, чтобы настроить инфраструктуру миграции и проверить сетевые подключения.

Снимок экрана: панель

Сетка, отображающая миграцию, содержит следующие столбцы:

  • Имя
  • Состояние
  • Режим миграции
  • Тип переноса
  • Исходный сервер
  • Тип исходного сервера
  • Базы данных
  • Длительность
  • Время начала

Записи отображаются в порядке убывания времени начала с последней записью в верхней части. Вы можете выбрать "Обновить" в строке меню, чтобы обновить состояние выполнения проверки или миграции.

Сведения о переносе

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

На вкладке "Настройка" выберите параметр "Проверка и миграция". В этом сценарии проверки выполняются до начала миграции. После завершения подстатения PerformingPrequisiteSteps рабочий процесс переходит в подстаток "Проверка в ходе выполнения".

  • Если проверка имеет ошибки, миграция переходит в состояние сбоя .

  • Если проверка завершена без каких-либо ошибок, начинается миграция, и рабочий процесс переходит в подсостояние Миграция данных.

Сведения о проверке можно проверить на уровне экземпляра и на уровне базы данных:

  • Проверка на уровне экземпляра:

    • Проверьте проверку, связанную с проверкой подключения для исходной версии ( PostgreSQL version >= 9.5 проверки параметров сервера), если расширения включены в параметрах сервера экземпляра гибкого сервера Базы данных Azure для PostgreSQL.
  • Проверка на уровне базы данных:

    • Проверьте проверку отдельных баз данных, связанных с расширениями и параметрами сортировки, в гибком сервере Базы данных Azure для PostgreSQL.

Текущее состояние миграции и проверки можно просмотреть на панели сведений о миграции.

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

В следующих таблицах описаны некоторые возможные состояния миграции и подстатки.

Состояния миграции

государство Описание
InProgress Выполняется настройка инфраструктуры миграции или выполняется фактическая миграция данных.
Отменено Миграция отменена или удалена.
Неудачно Сбой миграции.
Сбой проверки Сбой проверки.
Успешно Миграция выполнена успешно и завершена.
WaitingForUserAction Применимо только в сетевых миграциях. Ожидание того, чтобы пользователь выполнил переключение.

Подсостояния миграции

Подсостояние Описание
Выполнение предварительных шагов Настройка инфраструктуры выполняется для миграции данных.
Проверка в процессе выполнения Проверка выполняется.
Перемещение данных Выполняется миграция данных.
Завершение миграции Миграция находится на заключительных этапах завершения.
Завершено Миграция завершена.
Неудачно Сбой миграции.

Этапы валидации

Подсостояние Описание
Неудачно Проверка не удалась.
Успешно Проверка выполнена успешно.
Предупреждения Проверка выводит предупреждение.

Инициирование переключение

Если появляются кнопки Миграция и Проверка и миграция, завершение онлайн-миграции требует дополнительного шага — проведения cutover. После завершения копирования и клона базовых данных миграция переходит к состоянию WaitForUserAction и подстату WaitForCutoverTrigger . В этом состоянии пользователь может начать переход через портал, выбрав миграцию.

Прежде чем инициировать переключение, важно убедиться в том, что:

  • Записи в источник остановлены.
  • Значение latency уменьшается до 0 или близко к 0.

Вы можете узнать значение latency в области сведений о миграции.

Снимок экрана панели миграции Cutover.

Значение latency указывает, когда целевой объект последний раз синхронизирован с источником. На этом этапе запись в источник может быть остановлена, и можно инициировать переключение. Если на исходном сервере есть большой трафик, рекомендуется сначала остановить запись, чтобы latency приблизиться к 0. Затем инициируйте переключение.

Операция переключения применяет все ожидающие изменения из источника в целевой объект и завершает миграцию. Если вы активируете переключение, даже с ненулевым значением latency, репликация останавливается в этот момент. Все данные указываются в источнике, пока не будет применена точка перехода к целевому объекту. Например, если задержка составляет 15 минут в точке переключение, все измененные данные за последние 15 минут применяются к целевому объекту. Время завершения перехода зависит от накопленных изменений, произошедших во время этих 15 минут. Поэтому мы рекомендуем снизить задержку до нуля или почти нуля перед запуском переключения.

Снимок экрана: диалоговое окно, в котором вы подтверждаете переход во время миграции.

Миграция переходит в состояние "Успешно", когда подсостояние миграции данных или переключение (в процессе онлайн-миграции) завершается успешно. Если в подстатке "Перенос данных" возникла проблема, миграция переходит в состояние "Сбой".

Снимок экрана: результаты успешной миграции в портал Azure.

Проверка миграции

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

После миграции можно выполнить следующие задачи:

  • Проверьте данные на гибком сервере и убедитесь, что это является точной копией исходного экземпляра.
  • После проверки включите параметр высокой доступности на гибком сервере по мере необходимости.
  • Измените номер SKU (версия) гибкого сервера в соответствии с потребностями приложения. Для этого изменения требуется перезапуск сервера базы данных.
  • При изменении параметров сервера из значений по умолчанию в исходном экземпляре скопируйте эти значения параметров сервера на гибкий сервер.
  • Скопируйте другие параметры сервера, такие как теги, оповещения и правила брандмауэра (если применимо), из исходного экземпляра на гибкий сервер.
  • Внесите изменения в приложение, чтобы перенаправить строки подключения на гибкий сервер.
  • Внимательно отслеживайте производительность базы данных, чтобы узнать, требуется ли настройка производительности.