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


Миграция из виртуальной машины Azure или локального сервера 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 через логический механизм декодирования и декодирует его в текстовые представления выполненных операций.

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

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

Перед началом миграции необходимо настроить базу данных Azure для PostgreSQL в Azure.

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

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

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

  • test_decoding Подключаемый модуль логического декодирования записывает измененные записи из источника.
  • В исходном экземпляре PostgreSQL задайте следующие параметры и значения в файле конфигурации postgresql.conf:
    • Задайте для параметра wal_level значение logical.
    • Задайте max_replication_slots значение, превышающее 1. Должно быть больше количества баз данных, выбранных для миграции.
    • Задайте max_wal_senders значение, превышающее 1. Должно быть установлено, по крайней мере, на то же значение, что и max_replication_slots, плюс число отправителей, уже используемых вашим экземпляром.
    • wal_sender_timeout параметр завершает подключения репликации, которые неактивны дольше, чем указанное число миллисекунд. По умолчанию для локальной базы данных PostgreSQL используется 60000 миллисекунд (60 секунд). Установка значения 0 (ноль) отключает механизм таймаута и является рекомендуемым значением для миграции.

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

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

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

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

Дополнительные рекомендации по работе с сетями

Чтобы упростить подключение между исходными и целевыми экземплярами PostgreSQL, необходимо проверить и потенциально изменить файл pg_hba.conf исходного сервера. Этот файл включает проверку подлинности клиента и должен быть настроен, чтобы разрешить целевому PostgreSQL подключаться к источнику. Для изменения файла pg_hba.conf обычно требуется перезапуск исходного экземпляра PostgreSQL.

Файл pg_hba.conf находится в каталоге данных установки PostgreSQL. Этот файл следует проверить и настроить, если исходная база данных является локальным сервером PostgreSQL или сервером PostgreSQL, размещенным на виртуальной машине Azure.

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

Чтобы обеспечить успешную миграцию с помощью службы миграции в База данных 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 или Azure CLI.

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

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

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

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

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