Compartilhar via


Realocar o Banco de Dados do Azure para PostgreSQL para outra região

Este artigo aborda as diretrizes de realocação para o Banco de Dados do Azure para PostgreSQL, Servidor Único e Servidores Flexíveis em geografias onde os pares de região não estão disponíveis para replicação e restauração geográfica.

Há vários motivos pelos quais talvez você queira mover seus recursos existentes do Azure de uma região para outra. Talvez você queira:

  • Aproveitar uma nova região do Azure.
  • Implantar recursos ou serviços disponíveis apenas em regiões específicas.
  • Atender aos requisitos internos de política e governança.
  • Alinhar-se com fusões e aquisições da empresa
  • Atender aos requisitos de planejamento de capacidade.

Para saber como realocar o Azure Cosmos DB for PostgreSQL (anteriormente chamado de Banco de Dados do Azure para PostgreSQL – Hiperescala (Citus)), consulte Replicas de leitura no Azure Cosmos DB para PostgreSQL.

Para obter uma visão geral dos pares de região compatíveis com a replicação nativa, consulte replicação entre regiões.

Pré-requisitos

Os pré-requisitos se aplicam apenas à reimplantação com dados. Para mover seu banco de dados sem dados, você pode pular para Preparar.

  • Para realocar o PostgreSQL com dados de uma região para outra, você deve ter um recurso de computação adicional para executar as ferramentas de backup e restauração. Os exemplos neste guia usam uma VM do Azure executando o Ubuntu 20.04 LTS. Os recursos de computação devem:
    • Ter acesso à rede para o servidor de origem e de destino, em uma rede privada ou por inclusão nas regras de firewall.
    • Estar localizado na região de origem ou de destino.
    • Usar Rede Acelerada (se disponível).
    • O conteúdo do banco de dados não é salvo em nenhum armazenamento intermediário; a saída da ferramenta de backup lógico é enviada diretamente para o servidor de destino.
  • Dependendo do design da instância do Banco de Dados do Azure para PostgreSQL, é possível que os seguintes recursos dependentes precisem ser implementados e configurados na região de destino antes da realocação:

Tempo de inatividade

Para entender os possíveis tempos de inatividade envolvidos, confira Cloud Adoption Framework para o Azure: selecione um método de relocalização.

Preparar-se

Para começar, exporte um modelo do Resource Manager. Este modelo contém configurações que descrevem o namespace de Automação.

  1. Entre no portal do Azure.

  2. Selecione Todos os recursos e selecione o recurso de Automação.

  3. Selecione Exportar modelo.

  4. Escolha Download na página Exportar modelo.

  5. Localize o arquivo .zip que você baixou do portal e descompacte-o na pasta desejada.

    Esse arquivo zip contém os arquivos .json que incluem o modelo e os scripts para implantar o modelo.

Reimplantar sem dados

  1. Ajuste os parâmetros de modelo exportados para corresponder à região de destino.

Importante

O servidor de destino deve ser diferente do nome do servidor de origem. Você deve reconfigurar os clientes para apontar para o novo servidor.

  1. Reimplante o modelo para a nova região. Para obter um exemplo de como usar um modelo do ARM para criar um Banco de Dados do Azure para PostgreSQL, consulte Início Rápido: Usar um modelo do ARM para criar um Banco de Dados do Azure para PostgreSQL – Servidor Flexível.

Reimplantar com dados

A reimplantação com a migração de dados para o Banco de Dados do Azure para PostgreSQL baseia-se no backup lógico e na restauração e requer ferramentas nativas. Como resultado, você pode esperar um tempo de inatividade perceptível durante a restauração.

Dica

Você pode usar o portal do Azure para realocar um Banco de Dados do Azure para PostgreSQL – Servidor Flexível. Para saber como executar a replicação para Servidor Único, consulte Mover um Banco de Dados do Azure para PostgreSQL – Servidor Flexível para outra região usando o portal do Azure.

  1. Ajuste os parâmetros de modelo exportados para corresponder à região de destino.

Importante

O nome do servidor de destino deve ser diferente do nome do servidor de origem. Você deve reconfigurar os clientes para apontar para o novo servidor.

  1. Reimplante o modelo para a nova região. Para obter um exemplo de como usar um modelo do ARM para criar um Banco de Dados do Azure para PostgreSQL, consulte Início Rápido: Usar um modelo do ARM para criar um Banco de Dados do Azure para PostgreSQL – Servidor Flexível.

  2. No recurso de computação provisionado para a migração, instale as ferramentas de cliente do PostgreSQL para a versão do PostgreSQL a ser migrada. O exemplo a seguir usa o PostgreSQL versão 13 em uma VM do Azure que executa o Ubuntu 20.04 LTS:

      sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
      wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
      sudo apt-get update
      sudo apt-get install -y postgresql-client-13
    

    Para obter mais informações sobre a instalação de componentes do PostgreSQL no Ubuntu, consulte downloads do Linux (Ubuntu).

    Para outras plataformas, acesse Downloads do PostgreSQL.

  3. (Opcional) Se você criou funções adicionais no servidor de origem, crie-as no servidor de destino. Para obter uma lista de funções existentes, use a seguinte consulta:

    select *
    from pg_catalog.pg_roles
    where rolename not like 'pg_%' and rolename not in ('azuresu', 'azure_pg_admin', 'replication')
    order by rolename;
    
  4. Para migrar cada banco de dados, execute as seguintes etapas:

    1. Interrompa todas as atividades do banco de dados no servidor de origem.
    2. Substitua as informações de credenciais, o servidor de origem, o servidor de destino e o nome do banco de dados no seguinte script:
        export USER=admin_username
        export PGPASSWORD=admin_password
        export SOURCE=pgsql-arpp-source.postgres.database.azure.com
        export TARGET=pgsql-arpp-target.postgres.database.azure.com
        export DATABASE=database_name
        pg_dump -h $SOURCE -U $USER --create --exclude-schema=pg_catalog $DATABASE | psql -h $TARGET -U $USER postgres
    
    1. Para migrar o banco de dados, execute o script.

    2. Configure os clientes para apontar para o servidor de destino.

    3. Execute testes funcionais nos aplicativos.

      1. Verifique se o sinalizador de ignoreMissingVnetServiceEndpoint está definido como False, de modo que a IaC não implante o banco de dados quando o ponto de extremidade de serviço não estiver configurado na região de destino.