Перенос базы данных PostgreSQL на сервер PostgreSQL с поддержкой Azure Arc
В этом документе описаны шаги по получении существующей базы данных PostgreSQL (которая не размещена в службах данных с поддержкой Azure Arc) на сервер PostgreSQL с поддержкой Azure Arc.
Примечание.
В отношении технологии (как предварительной версии функции), описанной в этой статье, действуют дополнительные условия использования предварительных версий Microsoft Azure.
Последние обновления доступны в заметках о выпуске.
Рекомендации
Сервер PostgreSQL с поддержкой Azure Arc — это версия сообщества PostgreSQL. Поэтому любой инструмент, работающий в PostgreSQL за пределами Azure Arc, должен работать с сервером PostgreSQL с поддержкой Azure Arc.
Таким образом, набор средств, который вы уже используете для Postgres, дает вам следующие возможности:
- Резервное копирование базы данных Postgres из экземпляра, размещенного за пределами Azure Arc.
- Восстановление на сервере 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.
Создание резервного копирования базы данных-источника в локальной среде
Настройка резервного копирования:
- Задайте имя файла для резервного копирования: MySourceBackup.
- Задайте для формата настраиваемый формат
Резервное копирование успешно завершено:
Создание пустой базы данных в целевой системе на сервере 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
Настройка восстановления:
Укажите файл, содержащий резервную копию для восстановления: MySourceBackup.
Сохранить формат, равный Custom или tar
Щелкните Восстановить.
Восстановление выполнено успешно.
Убедитесь, что база данных успешно восстановлена на сервере PostgreSQL с поддержкой Azure Arc
Для этого можно использовать один из следующих методов:
Из pgAdmin
:
Разверните экземпляр Postgres, размещенный в вашей установке Azure Arc. В базе данных появится таблица, которая была восстановлена, а при выборе данных будет отображаться та же запись, что и в локальном экземпляре:
Из psql
в установке Azure Arc:
В установке Arc можно использовать psql
для подключения к экземпляру Postgres, задать контекст базы данных RESTORED_MyOnPremPostgresDB
и запросить данные:
Перечислите конечные точки, которые помогут сформировать
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" }
В строке подключения
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=#
Выберите таблицу, и вы увидите данные, восстановленные из локального экземпляра 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.