Перемещение База данных Azure для PostgreSQL в другой регион
В этой статье рассматриваются рекомендации по перемещению База данных Azure для PostgreSQL, отдельных серверов и гибких серверов в географических регионах, где пары регионов недоступны для репликации и геовосстановление.
Существуют различные причины, по которым может потребоваться переместить существующие ресурсы Azure из одного региона в другой. Возможно, вам потребуется:
- Воспользуйтесь новым регионом Azure.
- Развертывание функций или служб, доступных только в определенных регионах.
- Отвечайте требованиям к внутренней политике и управлению.
- Согласование слияний и приобретений компании
- Отвечайте требованиям к планированию емкости.
Сведения о перемещении Azure Cosmos DB для PostgreSQL (прежнее название — База данных Azure для PostgreSQL гипермасштабирование (Citus)) см. в статье "Чтение реплик в Azure Cosmos DB для PostgreSQL".
Общие сведения о парах регионов, поддерживаемых собственной репликацией, см. в разделе репликации между регионами.
Необходимые компоненты
Предварительные требования применяются только к повторному развертыванию с данными. Чтобы переместить базу данных без данных, можно перейти к подготовке.
- Чтобы переместить PostgreSQL с данными из одного региона в другой, необходимо иметь дополнительный вычислительный ресурс для запуска средств резервного копирования и восстановления. В примерах этого руководства используется виртуальная машина Azure под управлением Ubuntu 20.04 LTS. Вычислительные ресурсы должны:
- Иметь сетевой доступ к исходному и целевому серверу либо в частной сети, либо путем включения в правила брандмауэра.
- Находиться в исходном или целевом регионе.
- Используйте ускоренную сеть (если она доступна).
- Содержимое базы данных не сохраняется в промежуточном хранилище; Выходные данные средства логического резервного копирования отправляются непосредственно на целевой сервер.
- В зависимости от структуры экземпляра База данных Azure для PostgreSQL может потребоваться развернуть и настроить следующие зависимые ресурсы в целевом регионе перед перемещением:
Простой
Сведения о возможных простоях см. в статье Cloud Adoption Framework для Azure: выбор метода перемещений.
Подготовить
В начале экспортируйте шаблон диспетчера ресурсов Resource Manager. Этот шаблон содержит параметры, описывающие пространство имен службы автоматизации.
Войдите на портал Azure.
Выберите все ресурсы и выберите ресурс службы автоматизации.
Выберите Экспортировать шаблон.
Нажмите кнопку Скачать на странице Экспорт шаблона.
Найдите .zip файл, скачанный на портале, и распакуйте его в папку по своему усмотрению.
В ZIP-файле содержатся файлы JSON, включающие шаблон и скрипты для развертывания шаблона.
Повторное развертывание без данных
- Настройте экспортированные параметры шаблона в соответствии с целевым регионом.
Внимание
Целевой сервер должен отличаться от имени исходного сервера. Необходимо перенастроить клиенты, чтобы указать на новый сервер.
- Повторно разверните шаблон в новом регионе. Пример использования шаблона ARM для создания База данных Azure для PostgreSQL см. в кратком руководстве. Использование шаблона ARM для создания гибкого сервера База данных Azure для PostgreSQL.
Повторное развертывание с данными
Повторное развертывание с помощью миграции данных для База данных Azure для PostgreSQL основано на логическом резервном копировании и восстановлении и требует собственных средств. В результате во время восстановления можно ожидать заметного простоя.
Совет
Вы можете использовать портал Azure для перемещения База данных Azure для PostgreSQL гибкого сервера. Сведения о том, как выполнять репликацию для одного сервера, см. в статье "Перемещение База данных Azure для PostgreSQL — гибкий сервер в другой регион с помощью портал Azure".
- Настройте экспортированные параметры шаблона в соответствии с целевым регионом.
Внимание
Имя целевого сервера должно отличаться от имени исходного сервера. Необходимо перенастроить клиенты, чтобы указать на новый сервер.
Повторно разверните шаблон в новом регионе. Пример использования шаблона ARM для создания База данных Azure для PostgreSQL см. в кратком руководстве. Использование шаблона ARM для создания гибкого сервера База данных Azure для PostgreSQL.
На вычислительных ресурсах, подготовленных для миграции, установите клиентские средства PostgreSQL для перенесенной версии PostgreSQL. В следующем примере на виртуальной машине Azure с Ubuntu 20.04 LTS используется PostgreSQL версии 13:
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - sudo apt-get update sudo apt-get install -y postgresql-client-13
Дополнительные сведения об установке компонентов PostgreSQL в Ubuntu см. в статьях о скачиваемых файлах Linux (Ubuntu).
Для других платформ перейдите в раздел "Загрузки PostgreSQL".
(Необязательно) Если вы создали дополнительные роли на исходном сервере, создайте их на целевом сервере. Чтобы получить список существующих ролей, используйте следующий запрос:
select * from pg_catalog.pg_roles where rolename not like 'pg_%' and rolename not in ('azuresu', 'azure_pg_admin', 'replication') order by rolename;
Чтобы перенести каждую базу данных, сделайте следующее:
- Остановите все действия базы данных на исходном сервере.
- Замените учетные данные, исходный сервер, целевой сервер и имя базы данных в следующем скрипте:
export USER=admin_username export PGPASSWORD=admin_password export SOURCE=pgsql-arpp-source.postgres.database.azure.com export TARGET=pgsql-arpp-target.postgres.database.azure.com export DATABASE=database_name pg_dump -h $SOURCE -U $USER --create --exclude-schema=pg_catalog $DATABASE | psql -h $TARGET -U $USER postgres
Чтобы перенести базу данных, запустите скрипт.
Настройте клиенты для указания на целевой сервер.
Выполняйте функциональные тесты в приложениях.
- Убедитесь, что
ignoreMissingVnetServiceEndpoint
флаг заданFalse
, поэтому IaC не может развернуть базу данных, если конечная точка службы не настроена в целевом регионе.
- Убедитесь, что