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


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

В этой статье описано, как перенести экземпляр PostgreSQL из локальной среды или виртуальных машин Azure в гибкий сервер Базы данных 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.

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

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

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

  • Сопоставлять значения параметров сервера из исходной базы данных 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 для переноса базы данных PostgreSQL из сервера Amazon Aurora PostgreSQL в базу данных Azure для PostgreSQL. Портал Azure позволяет выполнять различные задачи, включая миграцию базы данных. Следуя инструкциям, описанным в этом руководстве, вы можете легко перенести базу данных в Azure и воспользоваться ее мощными функциями и масштабируемостью.

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

Служба миграции доступна на портале Azure и предоставляет простой процесс с использованием мастера.

Использование портала Azure:

  1. Выберите ваш гибкий сервер Azure Database for PostgreSQL.

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

    Снимок экрана: страница миграции.

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

    Примечание.

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

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

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

Настройка

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

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

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

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

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

Выбор параметра проверки или проверки и миграции всегда является хорошей практикой для предмиграционной проверки перед выполнением миграции.

Чтобы узнать больше о проверке premigration, посетите этот ресурс.

  • Режим миграции позволяет выбрать режим миграции. Офлайн — это параметр по умолчанию. В этом случае мы изменим его на Online.

Нажмите кнопку "Далее" — сервер среды выполнения.

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

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

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

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

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

Исходный сервер

На вкладке "Исходный сервер" появится запрос на предоставление сведений, связанных с источником, выбранным на вкладке "Настройка ", которая является источником баз данных.

  • Имя сервера — укажите имя узла или IP-адреса исходного сервера PostgreSQL.
  • Порт — номер порта исходного сервера.
  • Имя входа администратора — имя администратора исходного сервера PostgreSQL.
  • Пароль — пароль для входа администратора, предоставленного для подключения к исходному серверу PostgreSQL.
  • Режим SSL — поддерживаются preferred значения и required. Когда SSL используется на исходном сервере PostgreSQL OFF, следует использовать prefer. Если SSL на исходном сервере — ON, используйте require. Значения SSL можно определить в файле postgresql.conf исходного сервера.
  • Проверка подключения — выполняет проверку подключения между целевым объектом и источником. После успешного подключения перейдите на следующую вкладку. Эти тесты предназначены для выявления проблем с подключением, которые могут существовать между целевыми и исходными серверами, включая проверку подлинности с использованием предоставленных учетных данных. Установка тестового подключения занимает несколько секунд.

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

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

Целевой сервер

На вкладке "Целевой сервер " отображаются метаданные для гибкого целевого сервера, например имя подписки, группа ресурсов, имя сервера, расположение и версия PostgreSQL.

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

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

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

Базы данных для проверки или миграции

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

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

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

Итоги

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

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

Отмена проверки или миграции

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

Отмена проверки останавливает любое дальнейшее действие проверки, а проверка переходит к состоянию "Отменено ".

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

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

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

Снимок экрана: страница миграции монитора.

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

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

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

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

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

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

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

  • Сведения о проверке экземпляра
    • Содержит проверки, связанные с проверкой подключения, версией источника, т. е. версией PostgreSQL >= 9.5, и проверкой параметров сервера: включены ли расширения в параметрах сервера гибкого сервера Azure Database для PostgreSQL.
  • Сведения о проверке и миграции баз данных
    • В нем выполняется проверка отдельных баз данных, связанных с расширениями и колляциями, в гибком сервере Azure Database для PostgreSQL.

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

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

Некоторые возможные состояния миграции:

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

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

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

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

Подстатусы валидности

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

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

Вы можете инициировать переход с помощью портала Azure или Azure CLI.

Для опции проверки и миграции завершение онлайн-миграции требует от пользователя выполнения дополнительного шага, для чего нужно инициировать действие переключения. После завершения копирования или клонирования базовых данных миграция переходит в Waiting for user action статус и Waiting for cutover trigger подстатус. В этом состоянии пользователь может активировать переход на портале, выбрав миграцию.

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

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

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

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

  • Миграция переходит к состоянию Succeeded, когда Migrating data подстатус или переключение (онлайн миграции) успешно завершается. Если на Migrating data подстатусе возникает проблема, миграция переходит в Failed статус.

Проверьте миграцию после завершения

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

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

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

  • После проверки включите параметр высокой доступности на гибком сервере по мере необходимости.

  • Измените номер SKU гибкого сервера в соответствии с потребностями приложения. Для этого изменения требуется перезапуск сервера базы данных.

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

  • Скопируйте другие параметры сервера, такие как теги, оповещения и правила брандмауэра (если применимо), из исходного экземпляра на гибкий сервер.

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

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