Criar e gerenciar réplicas de leitura no Banco de Dados do Azure para PostgreSQL - Servidor flexível a partir do portal do Azure, CLI ou API REST
Artigo
APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Flexível
Neste artigo, você aprenderá a criar e gerenciar réplicas de leitura no Banco de Dados do Azure para servidor flexível PostgreSQL a partir do portal do Azure, CLI e API REST. Para saber mais sobre réplicas de leitura, consulte a visão geral.
Pré-requisitos
Uma instância de servidor flexível do Banco de Dados do Azure para PostgreSQL para ser o servidor primário.
Nota
Ao implantar réplicas de leitura para cargas de trabalho primárias persistentes e pesadas de gravação, o atraso de replicação pode continuar a crescer e pode nunca alcançar o principal. Isso também pode aumentar o uso de armazenamento no primário, já que os arquivos WAL só são excluídos uma vez recebidos na réplica.
Rever as definições primárias
Antes de configurar uma réplica de leitura para o Banco de Dados do Azure para servidor flexível PostgreSQL, verifique se o servidor primário está configurado para atender aos pré-requisitos necessários. Configurações específicas no servidor primário podem afetar a capacidade de criar réplicas.
Crescimento automático do armazenamento: as configurações de crescimento automático do armazenamento no servidor primário e suas réplicas de leitura devem seguir diretrizes específicas para garantir a consistência e evitar interrupções na replicação. Consulte o crescimento automático de armazenamento para obter regras e configurações detalhadas.
SSD Premium v2: A versão atual não suporta a criação de réplicas de leitura para servidores primários usando armazenamento SSD Premium v2. Se sua carga de trabalho exigir réplicas de leitura, escolha uma opção de armazenamento diferente para o servidor primário.
No portal do Azure, escolha a instância de servidor flexível do Banco de Dados do Azure para PostgreSQL que você deseja para a réplica.
Na caixa de diálogo Visão geral, observe a versão do PostgreSQL (ex15.4). Além disso, observe a região na qual seu principal está implantado (por exemplo, East US).
Na barra lateral do servidor, em Configurações, selecione Computação + armazenamento.
Revise e observe as seguintes configurações:
Camada de computação, processador, tamanho (ex Standard_D4ads_v5).
Armazenamento
Tamanho de armazenamento (ex 128GB)
Crescimento automático
Elevada Disponibilidade
Ativado / Desativado
Configurações da zona de disponibilidade
Configurações de backup
Período de retenção
Opções de redundância
Em Configurações, selecione Rede.
Revise as configurações de rede.
Nota
Os comandos fornecidos neste guia são aplicáveis à CLI do Azure versão 2.56.0 ou superior. Certifique-se de ter a versão necessária ou uma versão posterior instalada para executar esses comandos com êxito. Você pode verificar sua versão atual da CLI do Azure executando az --version em sua interface de linha de comando. Para atualizar a CLI do Azure para a versão mais recente, siga as instruções fornecidas na documentação da CLI do Azure.
Para exibir a configuração e o status atual de um Servidor Flexível PostgreSQL do Azure, use o az postgres flexible-server show comando. Este comando fornece informações detalhadas sobre o servidor especificado.
az postgres flexible-server show \
--resource-group <resource-group> \
--name <server-name>
Substitua <resource-group> e <server-name> pelo seu grupo de recursos específico e o nome do servidor que deseja visualizar.
Revise e observe as seguintes configurações:
Camada de computação, processador, tamanho (ex Standard_D8ads_v5).
Para obter informações sobre a configuração de um servidor no Banco de Dados do Azure para servidor flexível PostgreSQL, especialmente para exibir configurações de recursos recentemente introduzidos, como crescimento automático de armazenamento ou link privado, você deve usar a versão 2023-06-01-previewmais recente da API. O GET pedido seria formatado da seguinte forma:
Substitua {subscriptionId}, {resourceGroupName}e {serverName} pela sua ID de assinatura do Azure, o nome do grupo de recursos e o nome do servidor primário que você deseja revisar, respectivamente. Essa solicitação dá acesso aos detalhes de configuração do servidor primário, garantindo que ele esteja configurado corretamente para criar uma réplica de leitura.
Revise e observe as seguintes configurações:
Camada de computação, processador, tamanho (ex Standard_D8ads_v5).
Selecione uma instância de servidor flexível existente do Banco de Dados do Azure para PostgreSQL para usar como servidor primário.
Na barra lateral do servidor, em Configurações, selecione Replicação.
Selecione Criar réplica.
Insira o formulário Noções básicas com as seguintes informações.
Selecione Rever + criar para confirmar a criação da réplica ou Seguinte: Rede se pretender adicionar, eliminar ou modificar quaisquer regras de firewall.
Deixe os padrões restantes e selecione o botão Revisar + criar na parte inferior da página ou prossiga para os próximos formulários para adicionar tags ou alterar o método de criptografia de dados.
Reveja as informações na janela de confirmação final. Quando estiver pronto, selecione Criar. Uma nova implantação é criada.
Durante a implantação, você verá o principal no Updating estado.
Depois que a réplica de leitura é criada, ela pode ser visualizada na janela Replicação .
Substitua <replica-name>, <resource-group>, <source-server-name>, e <location> pelos seus valores específicos.
Depois que a réplica de leitura é criada, as propriedades de todos os servidores, que são réplicas de uma réplica primária, podem ser obtidas usando o az postgres flexible-server replica create comando.
az postgres flexible-server replica list \
--name <source-server-name> \
--resource-group <resource-group>
Substitua <source-server-name>o , e <resource-group> pelos seus valores específicos.
Inicie uma HTTP PUT solicitação usando a API de criação de servidores:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{replicaserverName}?api-version=2022-12-01
Aqui, você precisa substituir {subscriptionId}, {resourceGroupName}e {replicaserverName} com sua ID de assinatura específica do Azure, o nome do seu grupo de recursos e o nome desejado para sua réplica de leitura, respectivamente.
Depois que a réplica de leitura é criada, as propriedades de todos os servidores, que são réplicas de uma réplica primária, podem ser obtidas iniciando uma HTTP GET solicitação usando a lista de réplicas pela API do servidor:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{sourceserverName}/replicas?api-version=2022-12-01
Aqui, você precisa substituir {subscriptionId}, {resourceGroupName}e {sourceserverName} com sua ID de assinatura específica do Azure, o nome do seu grupo de recursos e o nome que você atribuiu à sua réplica principal, respectivamente.
É uma prática recomendada do Cloud Adoption Framework (CAF) usar uma convenção de nomenclatura de recursos que permitirá determinar facilmente a qual instância você está se conectando ou gerenciando e onde ela reside.
Selecione um local diferente do principal, mas observe que você pode selecionar a mesma região.
Gorjeta
Para saber mais sobre em quais regiões você pode criar uma réplica, visite o artigo ler conceitos de réplica.
Defina a computação e o armazenamento de acordo com o que você gravou do seu primário. Se a computação exibida não corresponder, selecione Configurar servidor e selecione o apropriado.
Nota
Se você selecionar um tamanho de computação menor que o principal, a implantação falhará. Lembre-se também de que o tamanho da computação pode não estar disponível em uma região diferente.
Para evitar problemas durante a promoção de réplicas, altere constantemente os seguintes parâmetros de servidor nas réplicas primeiro, antes de aplicá-los na principal: max_connections, max_prepared_transactions, max_locks_per_transaction, max_wal_senders, max_worker_processes.
Criar pontos de extremidade virtuais
Nota
Todas as operações que envolvem pontos de extremidade virtuais - como adicionar, editar ou remover - são executadas no contexto do servidor primário.
Substitua <resource-group>, <primary-name>, <virtual-endpoint-name>, e <replica-name> pelos seus valores específicos.
Para criar um ponto de extremidade virtual usando a API REST do Azure, você usaria uma HTTP PUT solicitação. O pedido ficaria assim:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{sourceserverName}/virtualendpoints/{virtualendpointName}?api-version=2023-06-01-preview
O órgão JSON que acompanha esta solicitação é o seguinte:
Aqui, {replicaserverName} deve ser substituído pelo nome do servidor de réplica que você está incluindo como um destino de ponto de extremidade de leitor neste ponto de extremidade virtual.
Listar pontos de extremidade virtuais
Para listar pontos de extremidade virtuais, use as seguintes etapas:
No portal do Azure, selecione o servidor primário .
Na barra lateral do servidor, em Configurações, selecione Replicação.
Na parte superior da página, você vê os pontos de extremidade do leitor e do gravador exibidos, juntamente com os nomes dos servidores para os quais eles estão apontando.
Você pode exibir os detalhes do ponto de extremidade virtual usando o list comando or show . Dado que apenas um ponto de extremidade virtual é permitido por par de réplica primária, ambos os comandos produzem o mesmo resultado.
Aqui está um exemplo de como usar o list comando:
az postgres flexible-server virtual-endpoint list \
--resource-group <resource-group> \
--server-name <server-name>
Substitua <server-name> pelo nome do servidor primário e <resource-group> pelo nome do grupo de recursos.
Veja como você pode usar o show comando:
az postgres flexible-server virtual-endpoint show \
--name <virtual-endpoint-name>
--resource-group <resource-group> \
--server-name <server-name>
Neste comando, substitua <virtual-endpoint-name>,<server-name>, e <resource-group> com os respetivos nomes. <server-name> é o nome do servidor primário.
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{sourceserverName}/virtualendpoints?api-version=2023-06-01-preview
Aqui, {sourceserverName} deve ser o nome do servidor primário a partir do qual você está gerenciando os pontos de extremidade virtuais.
Modificar o aplicativo para apontar para o ponto de extremidade virtual
Modifique todos os aplicativos que estão usando sua instância de servidor flexível do Banco de Dados do Azure para PostgreSQL para usar os novos pontos de extremidade virtuais (por exemplo, corp-pg-001.writer.postgres.database.azure.com e corp-pg-001.reader.postgres.database.azure.com).
Promover réplicas
Com todos os componentes necessários instalados, você está pronto para executar uma réplica promocional para a operação principal.
Para promover a réplica a partir do portal do Azure, siga estes passos:
No portal do Azure, selecione sua instância de servidor flexível do Banco de Dados do Azure principal para PostgreSQL.
No menu do servidor, em Configurações, selecione Replicação.
Em Servidores, selecione o ícone Promover para a réplica.
Na caixa de diálogo, verifique se a ação é Promover para o servidor primário.
Para Sincronização de dados, verifique se Planejado - sincronizar dados antes de promover está selecionado.
Selecione Promover para iniciar o processo. Uma vez concluída, as funções se invertem: a réplica se torna a principal e a primária assume o papel da réplica.
Ao promover uma réplica para um servidor primário no Servidor Flexível PostgreSQL do Azure, use o az postgres flexible-server replica promote comando. Esse processo é essencial para elevar um servidor de réplica para funcionar como o servidor primário e rebaixar a função primária atual para a função de réplica. Especifique --promote-mode switchover e --promote-option planned no comando.
Substitua <resource-group> e <replica-server-name> pelo seu grupo de recursos específico e nome do servidor de réplica. Esse comando garante uma transição suave da réplica para uma função principal de maneira planejada.
Ao promover uma réplica para um servidor primário, use uma HTTP PATCH solicitação com um corpo específico JSON para definir as opções de promoção. Esse processo é crucial quando você precisa elevar um servidor de réplica para atuar como o servidor primário.
Neste JSON, a promoção é definida para ocorrer no switchover modo com uma opção de planned promoção. Embora existam duas opções de promoção - planned ou forced - escolhidas planned para este exercício.
Nota
A réplica que você está promovendo deve ter o ponto de extremidade virtual do leitor atribuído, ou você receberá um erro na promoção.
Aplicações de teste
Para executar algumas operações, reinicie os aplicativos e, em seguida, tente essas operações. Seus aplicativos devem funcionar perfeitamente sem modificar a cadeia de conexão de ponto de extremidade virtual ou entradas DNS. Deixe seus aplicativos em execução desta vez.
Failback para o servidor e região originais
Repita as mesmas operações para promover o servidor original para o principal.
Na barra lateral do servidor, em Configurações, selecione Replicação
Em Servidores, selecione o ícone Promover para a réplica.
Na caixa de diálogo, verifique se a ação é Promover para o servidor primário.
Para Sincronização de dados, verifique se Planejado - sincronizar dados antes de promover está selecionado.
Selecione Promover, o processo começa. Uma vez concluída, as funções se invertem: a réplica se torna a principal e a primária assume o papel da réplica.
Desta vez, altere o <replica-server-name>az postgres flexible-server replica promote comando in para fazer referência ao seu antigo servidor primário, que está atualmente atuando como uma réplica, e execute a solicitação novamente.
Substitua <resource-group> e <replica-server-name> pelo seu grupo de recursos específico e nome do servidor de réplica atual.
Desta vez, altere a {replicaserverName} solicitação na API para fazer referência ao seu servidor primário antigo, que está atualmente atuando como uma réplica, e execute a solicitação novamente.
Neste JSON, a promoção é definida para ocorrer no switchover modo com uma opção de planned promoção. Embora existam duas opções de promoção - planned ou forced - escolhidas planned para este exercício.
Aplicações de teste
Novamente, mude para um dos aplicativos de consumo. Aguarde até que o status principal e a réplica sejam alterados e, em Updating seguida, tente executar algumas operações. Durante a promoção de réplica, seu aplicativo pode encontrar problemas temporários de conectividade com o ponto de extremidade:
Adicionar réplica de leitura secundária
Crie uma réplica de leitura secundária em uma região separada para modificar o ponto de extremidade virtual do leitor e permitir a criação de um servidor independente a partir da primeira réplica.
No portal do Azure, escolha a instância de servidor flexível do Banco de Dados do Azure principal para PostgreSQL.
Na barra lateral do servidor, em Configurações, selecione Replicação.
Selecione Criar réplica.
Insira o formulário Noções básicas com informações em uma terceira região (ex westus e corp-pg-westus-001)
Selecione Rever + criar para confirmar a criação da réplica ou Seguinte: Rede se pretender adicionar, eliminar ou modificar quaisquer regras de firewall.
Verifique as definições da firewall. Observe como as configurações primárias são copiadas automaticamente.
Deixe os padrões restantes e selecione o botão Revisar + criar na parte inferior da página ou prossiga para os seguintes formulários para configurar a segurança ou adicionar tags.
Reveja as informações na janela de confirmação final. Quando estiver pronto, selecione Criar. Uma nova implantação é criada.
Durante a implantação, você verá o principal no Updating estado.
Escolha um nome distinto para <replica-name> diferenciá-lo do servidor primário e de quaisquer outras réplicas.
Substitua <resource-group>, <source-server-name>, e <location> pelos seus valores específicos.
Você pode criar uma réplica de leitura secundária usando a API de criação de servidores:
PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBForPostgreSql/flexibleServers/{replicaserverName}?api-version=2022-12-01
Escolha um nome distinto para {replicaserverName} diferenciá-lo do servidor primário e de quaisquer outras réplicas.
No portal do Azure, escolha a instância de servidor flexível do Banco de Dados do Azure principal para PostgreSQL.
Na barra lateral do servidor, em Configurações, selecione Replicação.
Selecione as reticências e, em seguida, selecione Editar.
Na caixa de diálogo, selecione a nova réplica secundária.
Selecione Guardar. O ponto de extremidade do leitor agora está apontado para a réplica secundária e a operação de promoção agora está vinculada a essa réplica.
Agora você pode modificar o ponto de extremidade do leitor para apontar para a réplica secundária recém-criada usando um az postgres flexible-server virtual-endpoint update comando. Lembre-se de substituir <replica-name> pelo nome da réplica de leitura recém-criada.
Substitua <resource-group>, <server-name>, <virtual-endpoint-name>, e <replica-name> pelos seus valores específicos.
Agora você pode modificar seu ponto de extremidade do leitor para apontar para a réplica secundária recém-criada usando uma PATCH solicitação. Lembre-se de substituir {replicaserverName} pelo nome da réplica de leitura recém-criada.
No portal do Azure, escolha o Banco de Dados do Azure para servidor primário flexível PostgreSQL.
Na barra lateral do servidor, no menu do servidor, em Configurações, selecione Replicação.
Em Servidores, selecione o ícone Promover para a réplica que você deseja promover para um servidor independente.
Na caixa de diálogo, verifique se a ação é Promover para servidor independente e remover da replicação. Isso não afetará o servidor primário.
Para Sincronização de dados, verifique se Planejado - sincronizar dados antes de promover está selecionado.
Selecione Promover, o processo começa. Uma vez concluído, o servidor não é mais uma réplica do primário.
Quando você promove uma réplica no Servidor Flexível PostgreSQL do Azure, o comportamento padrão é promovê-la para um servidor independente. A promoção é alcançada usando o comando sem especificar a opção, pois standalone o modo é assumido az postgres flexible-server replica promote--promote-mode por padrão.
Neste comando, substitua <resource-group> e <replica-server-name> pelo nome do grupo de recursos específico e pelo nome do primeiro servidor de réplica que você criou, que não faz mais parte do ponto de extremidade virtual.
Você pode promover uma réplica para um servidor autônomo usando uma PATCH solicitação. Envie uma PATCH solicitação para a URL da API REST de Gerenciamento do Azure especificada com o primeiro JSON corpo, onde PromoteMode está definido como standalone e PromoteOption para planned. O segundo JSON formato de corpo, definido ReplicationRole como None, foi preterido, mas ainda mencionado aqui para compatibilidade com versões anteriores.
No portal do Azure, selecione o servidor primário .
Na barra lateral do servidor, em Configurações, selecione Replicação.
Na parte superior da página, localize a Virtual endpoints seção. Navegue até os três pontos (opções de menu) ao lado do nome do ponto final, expanda-o e escolha Delete.
Uma caixa de diálogo de confirmação de exclusão é exibida. Ele avisa: "Esta ação exclui o ponto de extremidade virtualendpointNamevirtual. Qualquer cliente conectado usando esses domínios pode perder o acesso." Reconheça as implicações e confirme clicando em Excluir.
Para remover um ponto de extremidade virtual de um Servidor Flexível PostgreSQL do Azure, você pode usar o az postgres flexible-server virtual-endpoint delete comando. Essa ação exclui permanentemente o ponto de extremidade virtual especificado.
Neste comando, substitua <resource-group>, <server-name>e <virtual-endpoint-name> pelo seu grupo de recursos específico, nome do servidor e o nome do ponto de extremidade virtual que você deseja excluir.
Para excluir um ponto de extremidade virtual usando a API REST do Azure, você emitiria uma HTTP DELETE solicitação. O URL do pedido seria estruturado da seguinte forma:
Você pode excluir uma réplica de leitura semelhante a como você exclui um Banco de Dados do Azure autônomo para instância de servidor flexível PostgreSQL.
No portal do Azure, abra a página Visão geral da réplica de leitura. Selecione Eliminar.
Você também pode excluir a réplica de leitura da janela Replicação seguindo estas etapas:
No portal do Azure, selecione sua instância de servidor flexível do Banco de Dados do Azure principal para PostgreSQL.
No menu do servidor, em Configurações, selecione Replicação.
Selecione a réplica de leitura a ser excluída e, em seguida, selecione as reticências. Selecione Eliminar.
Reconhecer operação Excluir .
Para excluir um servidor primário ou de réplica, use o az postgres flexible-server delete comando. Se o servidor tiver réplicas de leitura, você deve excluir as réplicas de leitura primeiro antes de excluir o servidor primário.
az postgres flexible-server delete \
--resource-group <resource-group> \
--name <server-name>
Substitua <resource-group> e <server-name> pelo nome do seu grupo de recursos e o nome do servidor de réplica que você deseja excluir.
Para excluir um servidor primário ou de réplica, use a API de exclusão de servidores. Se o servidor tiver réplicas de leitura, as réplicas de leitura deverão ser excluídas primeiro antes de excluir o servidor primário.
Você só pode excluir o servidor primário depois de excluir todas as réplicas de leitura. Para excluir réplicas, siga as instruções na seção Excluir uma réplica e prossiga com as etapas fornecidas.
Para excluir um servidor do portal do Azure, siga estas etapas:
No portal do Azure, selecione sua instância de servidor flexível do Banco de Dados do Azure principal para PostgreSQL.
Abra a página Visão geral do servidor e selecione Excluir.
Digite o nome do servidor primário a ser excluído. Selecione Excluir para confirmar a exclusão do servidor primário.
Para excluir um servidor primário ou de réplica, use o az postgres flexible-server delete comando. Se o servidor tiver réplicas de leitura, as réplicas de leitura deverão ser excluídas primeiro antes de excluir o servidor primário.
az postgres flexible-server delete \
--resource-group <resource-group> \
--name <server-name>
Substitua <resource-group> e <server-name> pelo nome do seu grupo de recursos e o nome do servidor primário que você deseja excluir.
Para excluir um servidor primário ou de réplica, use a API de exclusão de servidores. Se o servidor tiver réplicas de leitura, as réplicas de leitura deverão ser excluídas primeiro antes de excluir o servidor primário.
Duas métricas estão disponíveis para monitorar réplicas de leitura.
Atraso máximo de replicação física
Disponível apenas no primário.
A métrica Max Physical Replication Lag mostra o atraso de bytes entre o servidor primário e a réplica com maior atraso.
No portal do Azure, selecione o servidor primário.
Selecione Métricas. Na janela Métricas, selecione Atraso máximo de replicação física.
Para sua Agregação, selecione Máximo.
Ler métrica de atraso da réplica
A métrica Read Replica Lag mostra o tempo desde a última transação repetida em uma réplica. Se nenhuma transação ocorrer no seu principal, a métrica refletirá esse intervalo de tempo. Por exemplo, se nenhuma transação ocorrer no servidor primário e a última transação tiver sido repetida há 5 segundos, o atraso da réplica de leitura mostrará um atraso de 5 segundos.
No portal do Azure, selecione réplica de leitura.
Selecione Métricas. Na janela Métricas, selecione Atraso da réplica de leitura.