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


Руководство по миграции из Amazon RDS для PostgreSQL в базу данных Azure для PostgreSQL с использованием предварительной версии службы миграции.

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

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

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

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

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

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

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

Исходная версия сервера PostgreSQL должна быть 9.5 или более поздней.

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

Установка test_decoding — настройка источника

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

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

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

  • test_decoding Плагин логического декодирования фиксирует изменённые данные из источника.
  • Чтобы разрешить пользователю миграции доступ к привилегиям репликации, выполните следующую команду:
GRANT rds_replication TO <<username>>;
  • В исходном экземпляре PostgreSQL измените следующие параметры, создав новую группу параметров:

    • Задайте значение rds.logical_replication = 1.
    • Задайте max_replication_slots значение больше одного; значение должно быть больше числа баз данных, выбранных для миграции.
    • Задайте max_wal_senders значение больше одного. Оно должно быть как минимум таким же, как max_replication_slots, и число отправителей, уже используемых в вашем экземпляре.
    • Параметр wal_sender_timeout завершает неактивные подключения репликации, которые продолжаются дольше, чем указанное число миллисекунд. Значение по умолчанию для экземпляра AWS RDS для PostgreSQL — это 30000 milliseconds (30 seconds). Установка значения 0 (ноль) отключает механизм времени ожидания и является допустимым параметром для миграции.
  • На целевом гибком сервере, чтобы предотвратить нехватку места для хранения журналов в процессе онлайн миграции, убедитесь, что у вас достаточно пространства табличного пространства, используя предварительно настроенный управляемый диск. Чтобы добиться этого, отключите параметр 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 без возникновения проблем, связанных с ограничениями суперпользователя.

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

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

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

Выполните миграцию

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

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

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

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

Служба миграции поставляется с простым интерфейсом мастера на основе портал Azure. Вот как начать работу:

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

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

  3. На вкладке "Обзор гибкого сервера" в меню слева прокрутите страницу вниз до раздела "Миграция" и выберите его.

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

  4. Нажмите кнопку "Создать ", чтобы перейти с Amazon RDS для PostgreSQL на гибкий сервер Базы данных Azure для PostgreSQL. Если вы впервые используете службу миграции, пустая сетка появится с запросом на начало первой миграции.

    Снимок экрана: создание миграции из Amazon RDS для PostgreSQL в Базу данных Azure для PostgreSQL.

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

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

Настройка

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

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

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

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

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

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

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

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

Нажмите кнопку «Далее: Подключение к источнику».

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

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

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

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

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

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

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

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

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

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

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

Снимок экрана: экран миграции целевого объекта подключения.

  • Имя администратора — имя администратора целевого сервера 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.
  • Проверка подключения — выполняет тест подключения между целевым объектом и источником. После успешного подключения пользователи смогут продолжить следующий шаг. В противном случае необходимо определить сетевые проблемы между целевым объектом и источником и проверить имя пользователя или пароль для целевого объекта. Проверка подключения занимает несколько минут, чтобы установить соединение между целевым объектом и источником.

После успешного тестового подключения нажмите кнопку Next: Select Database(s) for Migration (Выбор баз данных) для миграции

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

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

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

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

Итоги

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

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

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

После нажатия кнопки "Пуск" появится уведомление через несколько секунд, указывающее, что проверка или создание миграции успешно выполнено. Затем вы будете автоматически перенаправлены на страницу Migration Flexible Server, где содержится новая запись для недавно созданной проверки или миграции.

Снимок экрана переноса монитора.

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

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

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

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

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

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

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

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

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

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

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

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

Подстатки проверки

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

Переключение

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

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

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

Снимок экрана: миграция Cutover.

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

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

    Снимок экрана Confirmcutovermigration.

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

    Скриншот миграции системы Success.

Проверьте миграцию, когда она завершится

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

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

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