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


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

В этой статье описывается, как перенести базу данных PostgreSQL из Google Cloud SQL для PostgreSQL в База данных 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 предварительно установлен и готов к логической репликации. Это позволяет легко настраивать слоты логической репликации и выполнять потоковую передачу изменений, упрощая использование таких вариантов, как запись измененных данных (CDC) или репликация во внешние системы.
  • Дополнительные сведения о подключаемом модуле для декодирования тестов см. в документации по PostgreSQL.

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

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

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

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

    • Установка флага 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.

Дополнительные сведения см. в разделе "Расширения" в База данных 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 или Azure CLI.

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

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

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

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

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

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

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

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

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

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

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

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

Настройка

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

Снимок экрана: миграция установки в портал Azure.

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

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

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

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

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

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

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

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

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

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

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

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

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

Снимок экрана: Connectsourcemigration.

  • Имя сервера— укажите имя узла или 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.com198.1.0.2, или полное доменное имя PostgreSQL, напримерflexibleserver.postgres.database.azure.com, если пользовательский DNS-сервер содержит зону postgres.database.azure.com DNS или пересылает запросы для этой зоны168.63.129.16, где полное доменное имя разрешается в общедоступной или частной зоне DNS Azure.
  • Проверка подключения — выполняет тест подключения между целевым объектом и источником. После успешного подключения пользователи смогут продолжить следующий шаг. В противном случае необходимо определить сетевые проблемы между целевым объектом и источником и проверить имя пользователя или пароль для целевого объекта. Проверка подключения занимает несколько минут, чтобы установить соединение между целевым объектом и источником.

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

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

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

Снимок экрана: FetchDBmigration.

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

Итоги

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Прямая миграция

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

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

Проверка миграции при завершении

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

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

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