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


Перенос базы данных PostgreSQL на сервер PostgreSQL с поддержкой Azure Arc

В этом документе описаны шаги по получении существующей базы данных PostgreSQL (которая не размещена в службах данных с поддержкой Azure Arc) на сервер PostgreSQL с поддержкой Azure Arc.

Примечание.

В отношении технологии (как предварительной версии функции), описанной в этой статье, действуют дополнительные условия использования предварительных версий Microsoft Azure.

Последние обновления доступны в заметках о выпуске.

Рекомендации

Сервер PostgreSQL с поддержкой Azure Arc — это версия сообщества PostgreSQL. Поэтому любой инструмент, работающий в PostgreSQL за пределами Azure Arc, должен работать с сервером PostgreSQL с поддержкой Azure Arc.

Таким образом, набор средств, который вы уже используете для Postgres, дает вам следующие возможности:

  1. Резервное копирование базы данных Postgres из экземпляра, размещенного за пределами Azure Arc.
  2. Восстановление на сервере PostgreSQL с поддержкой Azure Arc

Вам нужно будет только:

  • обновить параметры сервера;
  • сбросить контексты безопасности: повторно создать пользователей, роли и сбросить разрешения...

Для выполнения этой операции резервного копирования или восстановления можно использовать любое средство, способное выполнять резервное копирование или восстановление для Postgres. Например:

  • Azure Data Studio с расширением Postgres;
  • pgcli
  • pgAdmin
  • pg_dump
  • pg_restore
  • psql
  • ...

Пример

Давайте продемонстрируем эти действия с помощью средства pgAdmin. Обратите внимание на следующую установку:

  • Источник:
    Сервер Postgres, работающий локально на сервере без операционной системы и именованный JEANYDSRV. Она имеет версию 14 и размещает базу данных с именем MyOnPremPostgresDB с одной таблицей T1 с 1 строкой. Миграция-источник

  • Назначение:
    Сервер Postgres, работающий в среде Azure Arc и именованный postgres01, Она имеет версию 14. Без базы данных, кроме стандартной базы данных Postgres.
    Миграция — назначение

Создание резервного копирования базы данных-источника в локальной среде

Миграция — источник — резервное копирование

Настройка резервного копирования:

  1. Задайте имя файла для резервного копирования: MySourceBackup.
  2. Задайте для формата настраиваемый формат Миграция-source-backup-configure

Резервное копирование успешно завершено:
Миграция — источник — резервное копирование — завершено

Создание пустой базы данных в целевой системе на сервере PostgreSQL с поддержкой Azure Arc

Примечание.

Чтобы зарегистрировать экземпляр Postgres в средстве pgAdmin, необходимо использовать общедоступный IP-адрес вашего экземпляра в кластере Kubernetes и соответствующим образом задать порт и контекст безопасности. Эти сведения можно найти в строке конечной точки psql после выполнения следующей команды:

az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s

Она возвращает выходные данные следующего вида:

{
  "instances": [
    {
      "endpoints": [
    "Description": "PostgreSQL Instance",
    "Endpoint": "postgresql://postgres:<replace with password>@12.345.123.456:1234"
  },
  {
    "Description": "Log Search Dashboard",
    "Endpoint": "https://12.345.123.456:12345/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:\"postgres01\"'))"
  },
  {
    "Description": "Metrics Dashboard",
    "Endpoint": "https://12.345.123.456:12345/grafana/d/postgres-metrics?var-Namespace=arc3&var-Name=postgres01"
  }
],
"engine": "PostgreSql",
"name": "postgres01"
}
  ],
  "namespace": "arc"
}

Назовем целевую базу данных RESTORED_MyOnPremPostgresDB.

Миграция — назначение — база данных — создание

Восстановление базы данных через установку Arc

Миграция — база данных — восстановление

Настройка восстановления:

  1. Укажите файл, содержащий резервную копию для восстановления: MySourceBackup.

  2. Сохранить формат, равный Custom или tarМиграция-db-restore-configure

  3. Щелкните Восстановить.

    Восстановление выполнено успешно.
    Миграция — база данных — восстановление — завершено

Убедитесь, что база данных успешно восстановлена на сервере PostgreSQL с поддержкой Azure Arc

Для этого можно использовать один из следующих методов:

Из pgAdmin:

Разверните экземпляр Postgres, размещенный в вашей установке Azure Arc. В базе данных появится таблица, которая была восстановлена, а при выборе данных будет отображаться та же запись, что и в локальном экземпляре:

Миграция — база данных — восстановление — проверка

Из psql в установке Azure Arc:

В установке Arc можно использовать psql для подключения к экземпляру Postgres, задать контекст базы данных RESTORED_MyOnPremPostgresDB и запросить данные:

  1. Перечислите конечные точки, которые помогут сформировать psql строка подключения:

    az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s
    
    {
      "instances": [
        {
          "endpoints": [
        "Description": "PostgreSQL Instance",
        "Endpoint": "postgresql://postgres:<replace with password>@12.345.123.456:1234"
      },
      {
        "Description": "Log Search Dashboard",
        "Endpoint": "https://12.345.123.456:12345/kibana/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:\"postgres01\"'))"
      },
      {
        "Description": "Metrics Dashboard",
        "Endpoint": "https://12.345.123.456:12345/grafana/d/postgres-metrics?var-Namespace=arc3&var-Name=postgres01"
      }
    ],
    "engine": "PostgreSql",
    "name": "postgres01"
    }
      ],
      "namespace": "arc"
    }
    
  2. В строке подключения psql используйте параметр -d, чтобы указать имя базы данных. После выполнения приведенной ниже команды появится запрос на ввод пароля:

    psql -d RESTORED_MyOnPremPostgresDB -U postgres -h 10.0.0.4 -p 32639
    

    psql подключается.

    Password for user postgres:
    psql (10.12 (Ubuntu 10.12-0ubuntu0.18.04.1), server 12.3 (Debian 12.3-1.pgdg100+1))
    WARNING: psql major version 10, server major version 12.
          Some psql features might not work.
    SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
    Type "help" for help.
    
    RESTORED_MyOnPremPostgresDB=#   
    
  3. Выберите таблицу, и вы увидите данные, восстановленные из локального экземпляра Postgres:

    RESTORED_MyOnPremPostgresDB=# select * from t1;
    
     col1 |    col2
    ------+-------------
        1 | BobbyIsADog
    (1 row)
    

Примечание.

  • Сейчас невозможно "подключиться к Azure Arc" в существующем экземпляре Postgres, который должен выполняться локально или в любом другом облачном расположении. Иными словами, невозможно установить "агент Azure Arc" в имеющийся экземпляр Postgres, чтобы сделать эту программу установки Postgres поддерживающей Azure Arc. Вместо этого необходимо создать новый экземпляр Postgres и перенести данные в него. Для этого можно использовать описанный выше метод или любое выбранное вами средство извлечения, преобразования и загрузки.

*В этих документах пропустите разделы входа в портал Azure и создайте База данных Azure для PostgreSQL. Выполните оставшиеся шаги по развертыванию Azure Arc. Эти разделы относятся к серверу База данных Azure для PostgreSQL, предлагаемому в качестве службы PaaS в облаке Azure, но другие части документов напрямую применимы к серверу PostgreSQL с поддержкой Azure Arc.