Share via


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:

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

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

Faça um backup do banco de dados de origem no local

Migrate-source-backup

Configure-o:

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

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

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.

Migrate-destination-db-create

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

Migratre-db-restore

Configure 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 ê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:

Migrate-db-restore-verification

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:

  1. 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"
    }
    
  2. Na cadeia psql de conexão, use o parâmetro para indicar o -d 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=#   
    
  3. 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.