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.
Entre no portal do Azure.
Selecione Todos os recursos e selecione o recurso de Automação.
Selecione Exportar modelo.
Escolha Download na página Exportar modelo.
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
- 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.
- 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.
- 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.
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.
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.
(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;
Para migrar cada banco de dados, execute as seguintes etapas:
- Interrompa todas as atividades do banco de dados no servidor de origem.
- 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
Para migrar o banco de dados, execute o script.
Configure os clientes para apontar para o servidor de destino.
Execute testes funcionais nos aplicativos.
- Verifique se o sinalizador de
ignoreMissingVnetServiceEndpoint
está definido comoFalse
, 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.
- Verifique se o sinalizador de