Migrar um banco de dados do PostgreSQL para o servidor PostgreSQL habilitado para Azure Arc
Este documento descreve as etapas para colocar o seu banco de dados do PostgreSQL existente (um que não esteja hospedado nos Serviços de Dados habilitados para Azure Arc) no seu servidor PostgreSQL habilitado para Azure Arc.
Observação
Como uma versão prévia do recurso, a tecnologia apresentada neste artigo está sujeita aos Termos de uso complementares para versões prévias do Microsoft Azure.
As atualizações mais recentes estão disponíveis nas notas sobre a versão.
Considerações
O servidor PostgreSQL habilitado para Azure Arc é a versão da comunidade do PostgreSQL. Portanto, qualquer ferramenta que funcione no PostgreSQL fora do Azure Arc deve funcionar com o servidor PostgreSQL habilitado para Azure Arc.
Assim, com o conjunto de ferramentas que você usa hoje para o Postgres, você deve ser capaz de:
- Fazer backup do banco de dados do Postgres a partir da instância hospedada fora do Azure Arc
- Restaurá-lo no seu servidor PostgreSQL habilitado para Azure Arc
O que será deixado para você fazer é:
- restaurar os parâmetros do servidor
- redefinir os contextos de segurança: recriar usuários, funções e redefinir permissões...
Para fazer essa operação de backup/restauração, você pode usar qualquer ferramenta que seja capaz de fazer backup/restaurar 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 ferramenta pgAdmin
.
Considere a configuração a seguir:
Origem:
Um servidor do Postgres em execução local em um servidor bare-metal e chamado JEANYDSRV. Ele tem a 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. Ele é da versão 14. Ele não tem nenhum banco de dados, exceto o banco de dados padrão do Postgres.
Fazer o backup do banco de dados de origem local
Configure-o:
- Dê a ele um nome de arquivo: MySourceBackup
- Definir o formato como Personalizado
O backup foi concluído com êxito:
Criar um banco de dados vazio no sistema de destino no seu servidor PostgreSQL habilitado para Azure Arc
Observação
Para registrar uma instância do Postgres na ferramenta pgAdmin
, você precisa usar o IP público da instância no cluster do Kubernetes e definir a porta e o contexto de segurança adequadamente. Você encontrará esses detalhes na linha do ponto de extremidade psql
depois de executar o seguinte comando:
az postgres server-arc endpoint list -n postgres01 --k8s-namespace <namespace> --use-k8s
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.
Restaurar o banco de dados na configuração do Arc
Configurar 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 sucesso no seu servidor PostgreSQL habilitado para Azure Arc
Use um dos seguintes métodos:
De pgAdmin
:
Expanda a instância hospedada do Postgres na configuração do Azure Arc. Você verá a tabela no banco de dados que restaurou e ao selecionar os dados que ela mostra na mesma linha que ela tem na instância local:
De psql
dentro da configuração do Azure Arc:
Na configuração do Arc, você pode usar psql
para se conectar à instância do Postgres, definir o contexto do banco de dados para RESTORED_MyOnPremPostgresDB
e consultar os dados:
Liste os pontos de extremidade para ajudar a formar sua cadeia de conexão
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" }
Na sua cadeia de conexão
psql
, use o parâmetro-d
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
Conexões
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=#
Selecione a tabela para ver os dados restaurados da instância local do Postgres:
RESTORED_MyOnPremPostgresDB=# select * from t1;
col1 | col2 ------+------------- 1 | BobbyIsADog (1 row)
Observação
- No momento, não é possível “integrar ao Azure Arc” uma instância existente do Postgres que estaria em execução no local ou em qualquer outra nuvem. Em outras palavras, não é possível instalar algum tipo de “agente do Azure Arc” na instância existente do Postgres para torná-lo 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 pode usar qualquer ferramenta de ETL da sua escolha.
*Nesses documentos, ignore as seções Entrar no portal do Azure e Criar um Banco de Dados do Azure para PostgreSQL. Implemente as etapas restantes na sua implantação do Azure Arc. Essas seções são específicas para o servidor do Banco de Dados do Azure para PostgreSQL oferecido como serviço de PaaS na nuvem do Azure, mas as outras partes dos documentos são diretamente aplicáveis ao seu servidor do PostgreSQL habilitado para Azure Arc.