Migrar banco de dados PostgreSQL para o servidor PostgreSQL habilitado para Azure Arc
Este documento descreve as etapas para obter seu banco de dados PostgreSQL existente (um que não hospedado nos Serviços de Dados habilitados para ArcGIS do Azure) em seu servidor PostgreSQL habilitado para Arco do Azure.
Nota
Como funcionalidade de pré-visualização, a tecnologia apresentada neste artigo está sujeita aos Termos de Utilização Suplementares para Pré-visualizações do Microsoft Azure.
As atualizações mais recentes estão disponíveis nas notas de versão.
Considerações
O servidor PostgreSQL habilitado para Azure Arc é a versão comunitária do PostgreSQL. Portanto, qualquer ferramenta que funcione no PostgreSQL fora do Azure Arc deve funcionar com o servidor PostgreSQL habilitado para Azure Arc.
Como tal, com o conjunto de ferramentas que você usa hoje para o Postgres, você deve ser capaz de:
- Faça backup de seu banco de dados Postgres de sua instância hospedada fora do Azure Arc
- Restaure-o em seu servidor PostgreSQL habilitado para Azure Arc
O que lhe resta fazer é:
- Redefinir os parâmetros do servidor
- Redefinir os contextos de segurança: recriar usuários, funções e redefinir permissões...
Para fazer esta operação de backup/restauração, você pode usar qualquer ferramenta que seja capaz de fazer backup/restauração para o Postgres. Por exemplo:
- Azure Data Studio e sua extensão Postgres
pgcli
pgAdmin
pg_dump
pg_restore
psql
- ...
Exemplo
Vamos ilustrar essas etapas usando a pgAdmin
ferramenta.
Considere a seguinte configuração:
Origem:
Um servidor Postgres em execução no local em um servidor bare metal e chamado JEANYDSRV. É da versão 14 e hospeda um banco de dados chamado MyOnPremPostgresDB que tem uma tabela T1 que tem 1 linhaDestino:
Um servidor Postgres em execução em um ambiente do Azure Arc e chamado postgres01. É da versão 14. Ele não tem nenhum banco de dados, exceto o banco de dados padrão Postgres.
Faça um backup do banco de dados de origem no local
Configure-o:
- Dê-lhe um nome de arquivo: MySourceBackup
- Definir o formato como Personalizado
O backup é concluído com êxito:
Criar um banco de dados vazio no sistema de destino em seu servidor PostgreSQL habilitado para Azure Arc
Nota
Para registrar uma instância do Postgres na pgAdmin
ferramenta, você precisa usar o IP público da sua instância no cluster do Kubernetes e definir a porta e o contexto de segurança adequadamente. Você encontrará esses detalhes na linha do psql
ponto final depois de executar o seguinte comando:
az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s
Isso retorna uma saída como:
{
"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"
}
Vamos nomear o banco de dados de destino RESTORED_MyOnPremPostgresDB.
Restaure o banco de dados na configuração do Arc
Configure a restauração:
Aponte para o arquivo que contém o backup a ser restaurado: MySourceBackup
Mantenha o formato definido como Personalizado ou tar
Clique em Restaurar.
A restauração foi bem-sucedida.
Verifique se o banco de dados foi restaurado com êxito em seu servidor PostgreSQL habilitado para Azure Arc
Use um dos seguintes métodos:
De pgAdmin
:
Expanda a instância do Postgres hospedada em sua configuração do Azure Arc. Você verá a tabela no banco de dados que restaurou e, quando selecionar os dados, ela mostrará a mesma linha que tem na instância local:
De dentro da configuração do psql
Azure Arc:
Dentro da configuração do Arc, você pode usar psql
para se conectar à sua instância do Postgres, definir o contexto do banco de dados e RESTORED_MyOnPremPostgresDB
consultar os dados:
Liste os pontos finais para ajudar a formar sua
psql
cadeia de conexão: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" }
Na cadeia
psql
de conexão, use o-d
parâmetro para indicar o nome do banco de dados. Com o comando abaixo, você será solicitado a fornecer a senha:psql -d RESTORED_MyOnPremPostgresDB -U postgres -h 10.0.0.4 -p 32639
psql
se conecta.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=#
Selecione a tabela e você verá os dados restaurados da instância local do Postgres:
RESTORED_MyOnPremPostgresDB=# select * from t1;
col1 | col2 ------+------------- 1 | BobbyIsADog (1 row)
Nota
- Atualmente, não é possível "integrar no Azure Arc" uma instância existente do Postgres que seria executada no local ou em qualquer outra nuvem. Em outras palavras, não é possível instalar algum tipo de "agente do Azure Arc" em sua instância existente do Postgres para torná-la uma configuração do Postgres habilitada pelo Azure Arc. Em vez disso, você precisa criar uma nova instância do Postgres e transferir dados para ela. Você pode usar a técnica mostrada acima para fazer isso ou você pode usar qualquer ferramenta ETL de sua escolha.
*Nestes documentos, ignore as seções Entrar no portal do Azure e Criar um Banco de Dados do Azure para PostgreSQL. Implemente as etapas restantes em sua implantação do Azure Arc. Essas seções são específicas do Banco de Dados do Azure para servidor PostgreSQL oferecido como um serviço PaaS na nuvem do Azure, mas as outras partes dos documentos são diretamente aplicáveis ao seu servidor PostgreSQL habilitado para Azure Arc.