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


Перемещение База данных Azure для PostgreSQL в другой регион

В этой статье изложены рекомендации по перемещению базы данных 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: выберите метод перемещения.

Подготовьте

Для начала экспортируйте шаблон Диспетчера ресурсов. Этот шаблон содержит параметры, описывающие пространство имен службы автоматизации.

  1. Войдите на портал Azure.

  2. Выберите все ресурсы и выберите ресурс службы автоматизации.

  3. Выберите Экспортировать шаблон.

  4. Нажмите кнопку Скачать на странице Экспорт шаблона.

  5. Найдите .zip файл, скачанный на портале, и распакуйте его в папку по своему усмотрению.

    В ZIP-файле содержатся файлы JSON, включающие шаблон и скрипты для развертывания шаблона.

Повторное развертывание без данных

  1. Настройте экспортированные параметры шаблона в соответствии с целевым регионом.

    Это важно

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

  2. Повторно разверните шаблон в новом регионе. Чтобы ознакомиться с примером использования шаблона ARM для создания базы данных Azure для PostgreSQL, см. Краткое руководство: Используйте шаблон ARM для создания базы данных Azure для PostgreSQL - гибкий сервер.

Повторное развертывание с данными

Повторное развертывание с миграцией данных для Azure Database for PostgreSQL основано на логическом резервном копировании и восстановлении и требует использования встроенных инструментов. В результате во время восстановления можно ожидать заметного простоя.

Подсказка

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

  1. Настройте экспортированные параметры шаблона в соответствии с целевым регионом.

    Это важно

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

  2. Повторно разверните шаблон в новом регионе. Для примера использования шаблона ARM для создания базы данных Azure для PostgreSQL см.Краткое руководство: использование шаблона ARM для создания гибкого сервера базы данных Azure для PostgreSQL.

  3. На вычислительных ресурсах, подготовленных для миграции, установите клиентские средства 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".

  4. (Необязательно) Если вы создали дополнительные роли на исходном сервере, создайте их на целевом сервере. Чтобы получить список существующих ролей, используйте следующий запрос:

    select *
    from pg_catalog.pg_roles
    where rolename not like 'pg_%' and rolename not in ('azuresu', 'azure_pg_admin', 'replication')
    order by rolename;
    
  5. Чтобы перенести каждую базу данных, сделайте следующее:

    1. Остановите все действия базы данных на исходном сервере.

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

      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
      
    3. Чтобы перенести базу данных, запустите скрипт.

    4. Настройте клиенты для указания на целевой сервер.

    5. Выполняйте функциональные тесты в приложениях.

      1. Убедитесь, что ignoreMissingVnetServiceEndpoint флаг задан False, поэтому IaC не может развернуть базу данных, если конечная точка службы не настроена в целевом регионе.