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


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

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

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

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

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

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

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

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

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

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

Примечание.

Сервис миграции в базе данных Azure для PostgreSQL поддерживает подключения с помощью IP-адреса для исходного сервера Google Cloud SQL для PostgreSQL. Формат myproject:myregion:myinstance не поддерживается.

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

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

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

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

  • test_decoding Подключаемый модуль логического декодирования записывает измененные записи из источника.
  • Чтобы убедиться, что у пользователя миграции есть необходимые привилегии репликации, выполните следующую команду SQL:
ALTER USER <user> WITH REPLICATION;
  • Перейдите к экземпляру Google Cloud SQL PostgreSQL в Google Cloud Console, выберите имя экземпляра, чтобы открыть страницу сведений, нажмите кнопку "Изменить" и в разделе "Флаги" измените следующие флаги:

    • Установка флага cloudsql.logical_decoding = on
    • Задайте для флага max_replication_slots значение больше одного; значение должно быть больше числа баз данных, выбранных для миграции.
    • Задайте для флага max_wal_senders значение больше одного. Оно должно быть по крайней мере таким же, как max_replication_slots, и число отправителей, уже используемых в вашем экземпляре.
    • Флаг wal_sender_timeout завершает неактивные подключения репликации, если они дольше указанного количества миллисекунд. Установка значения 0 (ноль) отключает механизм времени ожидания и является допустимым параметром для миграции.
  • На целевом гибком сервере, чтобы предотвратить исчерпание хранилища для хранения журналов в процессе онлайн миграции, убедитесь, что у вас достаточно места в табличном пространстве с помощью предоставленного управляемого диска. Чтобы добиться этого, отключите параметр 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 или Azure CLI.

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

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

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

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

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