Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье изложены рекомендации по перемещению базы данных Azure для PostgreSQL, однотипных и гибких серверов в регионах, где региональные пары недоступны для репликации и геовосстановления.
Существуют различные причины, по которым может потребоваться переместить существующие ресурсы Azure из одного региона в другой. Возможно, вам потребуется:
- Воспользуйтесь новым регионом Azure.
- Развертывание функций или служб, доступных только в определенных регионах.
- Отвечайте требованиям к внутренней политике и управлению.
- Согласование со слияниями и приобретениями компаниями
- Соответствуйте требованиям к планированию мощностей.
Сведения о перемещении Azure Cosmos DB для PostgreSQL (ранее Azure Database для PostgreSQL — Hyperscale (Citus)) можно найти в статье Чтение реплик в Azure Cosmos DB для PostgreSQL
Общие сведения о парах регионов, поддерживаемых собственной репликацией, см. в разделе репликации между регионами.
Предпосылки
Предварительные требования применяются только к повторному развертыванию с данными. Чтобы переместить базу данных без данных, можно перейти к Prepare.
Чтобы переместить PostgreSQL с данными из одного региона в другой, необходимо иметь дополнительный вычислительный ресурс для запуска средств резервного копирования и восстановления. В примерах этого руководства используется виртуальная машина Azure под управлением Ubuntu 20.04 LTS. Вычислительные ресурсы должны:
- Иметь сетевой доступ к исходному и целевому серверу либо в частной сети, либо путем включения в правила брандмауэра.
- Находиться в исходном или целевом регионе.
- Используйте ускоренную сеть (если она доступна).
- Содержимое базы данных не сохраняется в промежуточном хранилище; Выходные данные средства логического резервного копирования отправляются непосредственно на целевой сервер.
В зависимости от структуры экземпляра Базы данных Azure для PostgreSQL может потребоваться развернуть и настроить следующие зависимые ресурсы в целевом регионе перед перемещением:
Время простоя
Сведения о возможных простоях см. в Cloud Adoption Framework для Azure: выберите метод перемещения.
Подготовьте
Для начала экспортируйте шаблон Диспетчера ресурсов. Этот шаблон содержит параметры, описывающие пространство имен службы автоматизации.
Войдите на портал Azure.
Выберите все ресурсы и выберите ресурс службы автоматизации.
Выберите Экспортировать шаблон.
Нажмите кнопку Скачать на странице Экспорт шаблона.
Найдите .zip файл, скачанный на портале, и распакуйте его в папку по своему усмотрению.
В ZIP-файле содержатся файлы JSON, включающие шаблон и скрипты для развертывания шаблона.
Повторное развертывание без данных
Настройте экспортированные параметры шаблона в соответствии с целевым регионом.
Это важно
Целевой сервер должен отличаться от имени исходного сервера. Необходимо перенастроить клиенты, чтобы указать на новый сервер.
Повторно разверните шаблон в новом регионе. Чтобы ознакомиться с примером использования шаблона ARM для создания базы данных Azure для PostgreSQL, см. Краткое руководство: Используйте шаблон ARM для создания базы данных Azure для PostgreSQL - гибкий сервер.
Повторное развертывание с данными
Повторное развертывание с миграцией данных для Azure Database for PostgreSQL основано на логическом резервном копировании и восстановлении и требует использования встроенных инструментов. В результате во время восстановления можно ожидать заметного простоя.
Подсказка
Вы можете использовать портал Azure для перемещения База данных Azure для PostgreSQL гибкого сервера. Сведения о том, как выполнять репликацию для Single Server, см. в статье «Перемещение Базы данных 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 не может развернуть базу данных, если конечная точка службы не настроена в целевом регионе.
- Убедитесь, что