Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье описано, как перенести экземпляр PostgreSQL из локальной среды или виртуальных машин Azure в гибкий сервер Базы данных Azure для PostgreSQL в режиме онлайн.
Служба миграции в Базе данных Azure для PostgreSQL — это полностью управляемая служба, интегрированная на портал Azure и Azure CLI. Он предназначен для упрощения перехода на гибкий сервер Базы данных Azure для PostgreSQL.
- Предпосылки
- Выполните миграцию
- Отслеживайте ход миграции.
- Инициировать переключение
- Проверьте миграцию после завершения
Предпосылки
Чтобы начать миграцию, вам потребуется следующее:
Прежде чем начать миграцию с помощью службы миграции Базы данных Azure для PostgreSQL, важно выполнить следующие предварительные требования, специально предназначенные для сценариев миграции по сети.
- Проверка исходной версии
- Установка test_decoding — исходная настройка
- Настройка целевой установки
- Включение CDC в качестве источника
- Настройка настройки сети
- Включение расширений
- Проверка параметров сервера
- Проверка пользователей и ролей
Проверка исходной версии
Исходная версия сервера PostgreSQL должна быть 9.5 или более поздней.
Если исходная версия PostgreSQL меньше 9.5, перед началом миграции обновите ее до версии 9.5 или более поздней.
Установка test_decoding — настройка исходной базы
- test_decoding получает WAL через механизм логического декодирования и декодирует его в текстовые представления выполненных операций.
- В Amazon RDS для PostgreSQL плагин test_decoding уже установлен и готов для логической репликации. Это позволяет легко настраивать слоты логической репликации и выполнять потоковую передачу изменений WAL, что упрощает реализацию таких сценариев, как захват измененных данных (CDC) или репликация во внешние системы.
- Дополнительные сведения о подключаемом модуле для декодирования тестов см. в документации по PostgreSQL.
Конфигурация целевой установки
- Перед миграцией необходимо создать гибкий сервер Базы данных Azure для PostgreSQL.
- Номер SKU, подготовленный для Базы данных Azure для PostgreSQL — Гибкий сервер должен соответствовать источнику.
- Чтобы создать новую базу данных Azure для PostgreSQL, посетите гибкий сервер базы данных Azure для 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.
Дополнительные сведения см. в разделе "Расширения и модули".
Проверка параметров сервера
Эти параметры не переносятся автоматически в целевую среду и должны быть настроены вручную.
Сопоставление значений параметров сервера из исходной базы данных 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 для переноса базы данных PostgreSQL с сервера Amazon RDS для PostgreSQL в базу данных Azure для PostgreSQL. Портал Azure позволяет выполнять различные задачи, включая миграцию базы данных. Следуя инструкциям, описанным в этом руководстве, вы можете легко перенести базу данных в Azure и воспользоваться ее мощными функциями и масштабируемостью.
Настройка задачи миграции
Служба миграции доступна на портале Azure и предоставляет простой процесс с использованием мастера.
Использование портала Azure:
Выберите ваш гибкий сервер Azure Database for PostgreSQL.
В меню ресурсов выберите "Миграция".
Выберите Создать, чтобы воспользоваться мастером с последовательностью вкладок для выполнения миграции на гибкий сервер из локальной среды или виртуальной машины Azure.
Замечание
При первом использовании службы миграции появится пустая сетка с запросом на начало первой миграции.
Если миграции на ваш целевой сервер с гибкими ресурсами уже созданы, теперь сетка содержит информацию о проведенных миграциях.
Настройка
Необходимо указать несколько сведений, связанных с миграцией, например имя миграции, тип исходного сервера, параметр и режим.
Имя миграции — это уникальный идентификатор для каждой миграции на этот гибкий целевой сервер. Это поле принимает только буквенно-цифровые символы и не принимает специальные символы, кроме дефиса (-). Имя не может начинаться с дефиса и должно быть уникальным для целевого сервера. Ни одна из двух миграций на один и тот же гибкий целевой сервер не может иметь одинаковое имя.
Тип исходного сервера . В зависимости от источника PostgreSQL можно выбрать виртуальную машину Azure или локальный сервер.
Параметр миграции — позволяет выполнять проверки перед активацией миграции. Вы можете выбрать любой из следующих вариантов:
- Проверка. Проверяет готовность сервера и базы данных к миграции в целевой объект.
- Проверка и миграция — выполняет проверку перед активацией миграции. При отсутствии сбоев проверки инициируется миграция.
Выбор параметра проверки или проверки и миграции всегда является хорошей практикой для предмиграционной проверки перед выполнением миграции.
Чтобы узнать больше о проверке premigration, посетите этот ресурс.
- Режим миграции позволяет выбрать режим миграции. Офлайн — это параметр по умолчанию. В этом случае мы изменим его на Online.
Нажмите кнопку "Далее" — сервер среды выполнения.
Сервер среды выполнения
Сервер среды выполнения миграции — это специализированная функция в службе миграции в Базе данных Azure для PostgreSQL, предназначенная для работы в качестве промежуточного сервера во время миграции. Это отдельный гибкий экземпляр базы данных Azure для PostgreSQL, который не является целевым сервером, но используется для упрощения миграции баз данных из исходной среды, доступной только через частную сеть.
Для получения дополнительной информации о сервере миграции среды выполнения см. сервер миграции среды выполнения.
Исходный сервер
На вкладке "Исходный сервер" появится запрос на предоставление сведений, связанных с источником, выбранным на вкладке "Настройка ", которая является источником баз данных.
- Имя сервера — укажите имя узла или IP-адреса исходного сервера PostgreSQL.
- Порт — номер порта исходного сервера.
- Имя входа администратора — имя администратора исходного сервера PostgreSQL.
- Пароль — пароль для входа администратора, предоставленного для подключения к исходному серверу PostgreSQL.
-
Режим SSL — поддерживаются
preferredзначения иrequired. Когда SSL используется на исходном сервере PostgreSQLOFF, следует использовать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.
Состояние проверки и состояние миграции можно просмотреть на странице сведений о миграции.
Некоторые возможные состояния миграции:
Состояние миграции
| Состояние | Description |
|---|---|
| Развиваться | Выполняется настройка инфраструктуры миграции или выполняется фактическая миграция данных. |
| Отменено | Миграция отменена или удалена. |
| Неудачно | Сбой миграции. |
| Сбой проверки | Валидация не пройдена. |
| Успешно | Миграция прошла успешно и завершена. |
| Ожидание действия пользователя | Ожидание действия пользователя для выполнения переключения. |
Сведения о миграции
| Подсостояние | Description |
|---|---|
| Выполнение необходимых действий | Настройка инфраструктуры выполняется для миграции данных. |
| Проверка выполняется | Выполняется проверка. |
| Удаление базы данных на целевом сервере | Удаление уже существующей базы данных на целевом сервере. |
| Перенос данных | Выполняется миграция данных. |
| Завершение миграции | Миграция находится на заключительных этапах завершения. |
| Завершено | Миграция завершена. |
| Неудачно | Миграция не удалась. |
Подстатусы валидности
| Подсостояние | Description |
|---|---|
| Неудачно | Проверка не пройдена. |
| Успешно | Проверка выполнена успешно. |
| Предупреждение | Проверка отображается в предупреждении. |
Инициировать переключение
Вы можете инициировать переход с помощью портала 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 гибкого сервера в соответствии с потребностями приложения. Для этого изменения требуется перезапуск сервера базы данных.
При изменении параметров сервера из значений по умолчанию в исходном экземпляре скопируйте эти значения параметров сервера на гибком сервере.
Скопируйте другие параметры сервера, такие как теги, оповещения и правила брандмауэра (если применимо), из исходного экземпляра на гибкий сервер.
Внесите изменения в приложение, чтобы направить строки подключения к гибкому серверу.
Внимательно отслеживайте производительность базы данных, чтобы узнать, требуется ли настройка производительности.