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:

  1. Fazer backup do banco de dados do Postgres a partir da instância hospedada fora do Azure Arc
  2. 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 linha Migrate-source

  • Destino:
    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.
    Migrate-destination

Fazer o backup do banco de dados de origem local

Migrate-source-backup

Configure-o:

  1. Dê a ele um nome de arquivo: MySourceBackup
  2. Definir o formato como PersonalizadoMigrate-source-backup-configure

O backup foi concluído com êxito:
Migrate-source-backup-completed

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.

Migrate-destination-db-create

Restaurar o banco de dados na configuração do Arc

Migratre-db-restore

Configurar a restauração:

  1. Aponte para o arquivo que contém o backup a ser restaurado: MySourceBackup

  2. Mantenha o formato definido como Personalizado ou tarMigrate-db-restore-configure

  3. Clique em Restaurar.

    A restauração foi bem-sucedida.
    Migrate-db-restore-completed

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:

Migrate-db-restore-verification

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:

  1. 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"
    }
    
  2. 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=#   
    
  3. 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.