Criar e gerir réplicas de leitura a partir da CLI do Azure e da API REST

APLICA-SE A: Banco de Dados do Azure para PostgreSQL - Servidor Único

Importante

O Banco de Dados do Azure para PostgreSQL - Servidor Único está no caminho da desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para PostgreSQL - Servidor Flexível, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único PostgreSQL?.

Neste artigo, você aprenderá a criar e gerenciar réplicas de leitura no Banco de Dados do Azure para PostgreSQL usando a CLI do Azure e a API REST. Para saber mais sobre réplicas de leitura, consulte a visão geral.

Suporte à replicação do Azure

As réplicas de leitura e a decodificação lógica dependem do log de gravação antecipada (WAL) do Postgres para obter informações. Esses dois recursos precisam de níveis diferentes de registro do Postgres. A decodificação lógica precisa de um nível mais alto de registro em log do que as réplicas de leitura.

Para configurar o nível correto de log, use o parâmetro de suporte de replicação do Azure. O suporte à replicação do Azure tem três opções de configuração:

  • Off - Coloca o mínimo de informação no WAL. Essa configuração não está disponível na maioria dos servidores do Banco de Dados do Azure para PostgreSQL.
  • Réplica - Mais detalhada do que Off. Este é o nível mínimo de registro em log necessário para que as réplicas de leitura funcionem. Essa configuração é o padrão na maioria dos servidores.
  • Lógico - Mais detalhado que Replica. Este é o nível mínimo de registro em log para que a decodificação lógica funcione. As réplicas de leitura também funcionam nessa configuração.

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 talvez nunca consiga alcançar o principal. Além disso, pode também aumentar a utilização do armazenamento no servidor principal, uma vez que os ficheiros WAL não são eliminados até serem recebidos na réplica.

CLI do Azure

Você pode criar e gerenciar réplicas de leitura usando a CLI do Azure.

Pré-requisitos

Preparar o servidor primário

  1. Verifique o valor do azure.replication_support servidor primário. Deve ser pelo menos REPLICA para que as réplicas de leitura funcionem.

    az postgres server configuration show --resource-group myresourcegroup --server-name mydemoserver --name azure.replication_support
    
  2. Se azure.replication_support não for pelo menos REPLICA, defina-o.

    az postgres server configuration set --resource-group myresourcegroup --server-name mydemoserver --name azure.replication_support --value REPLICA
    
  3. Reinicie o servidor para aplicar a alteração.

    az postgres server restart --name mydemoserver --resource-group myresourcegroup
    

Criar uma réplica de leitura

O comando az postgres server replica create requer os seguintes parâmetros:

Definição Valor de exemplo Description
resource-group myresourcegroup O grupo de recursos onde o servidor de réplica será criado.
nome mydemoserver-réplica O nome do novo servidor de réplica criado.
source-server mydemoserver O nome ou ID do recurso do servidor primário existente a partir do qual replicar. Use o ID do recurso se quiser que os grupos de recursos da réplica e do primário sejam diferentes.

No exemplo de CLI abaixo, a réplica é criada na mesma região que a principal.

az postgres server replica create --name mydemoserver-replica --source-server mydemoserver --resource-group myresourcegroup

Para criar uma réplica de leitura entre regiões, use o --location parâmetro. O exemplo de CLI abaixo cria a réplica no oeste dos EUA.

az postgres server replica create --name mydemoserver-replica --source-server mydemoserver --resource-group myresourcegroup --location westus

Nota

Para saber mais sobre em quais regiões você pode criar uma réplica, visite o artigo ler conceitos de réplica.

Se você não definiu o azure.replication_support parâmetro como REPLICA em um servidor primário de uso geral ou memória otimizada e reiniciou o servidor, receberá um erro. Conclua essas duas etapas antes de criar uma réplica.

Importante

Analise a seção de considerações da visão geral da réplica de leitura.

Antes que uma configuração do servidor primário seja atualizada para um novo valor, atualize a configuração da réplica para um valor igual ou maior. Essa ação ajuda a réplica a acompanhar todas as alterações feitas na principal.

Listar réplicas

Você pode exibir a lista de réplicas de um servidor primário usando o comando az postgres server replica list .

az postgres server replica list --server-name mydemoserver --resource-group myresourcegroup 

Interromper a replicação para um servidor de réplica

Você pode interromper a replicação entre um servidor primário e uma réplica de leitura usando o comando az postgres server replica stop .

Depois de interromper a replicação para um servidor primário e uma réplica de leitura, ela não pode ser desfeita. A réplica de leitura torna-se um servidor autônomo que suporta leituras e gravações. O servidor autônomo não pode ser transformado em uma réplica novamente.

az postgres server replica stop --name mydemoserver-replica --resource-group myresourcegroup 

Excluir um servidor primário ou de réplica

Para excluir um servidor primário ou de réplica, use o comando az postgres server delete .

Quando você exclui um servidor primário, a replicação para todas as réplicas de leitura é interrompida. As réplicas de leitura tornam-se servidores autônomos que agora suportam leituras e gravações.

az postgres server delete --name myserver --resource-group myresourcegroup

API REST

Você pode criar e gerenciar réplicas de leitura usando a API REST do Azure.

Preparar o servidor primário

  1. Verifique o valor do azure.replication_support servidor primário. Deve ser pelo menos REPLICA para que as réplicas de leitura funcionem.

    GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/configurations/azure.replication_support?api-version=2017-12-01
    
  2. Se azure.replication_support não for pelo menos REPLICA, defina-o.

    PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/configurations/azure.replication_support?api-version=2017-12-01
    
    {
     "properties": {
     "value": "replica"
     }
    }
    
  3. Reinicie o servidor para aplicar a alteração.

    POST https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/restart?api-version=2017-12-01
    

Criar uma réplica de leitura

Você pode criar uma réplica de leitura usando a API de criação:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{replicaName}?api-version=2017-12-01
{
  "location": "southeastasia",
  "properties": {
    "createMode": "Replica",
    "sourceServerId": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}"
  }
}

Nota

Para saber mais sobre em quais regiões você pode criar uma réplica, visite o artigo ler conceitos de réplica.

Se você não definiu o azure.replication_support parâmetro como REPLICA em um servidor primário de uso geral ou memória otimizada e reiniciou o servidor, receberá um erro. Conclua essas duas etapas antes de criar uma réplica.

Uma réplica é criada usando as mesmas configurações de computação e armazenamento da principal. Depois que uma réplica é criada, várias configurações podem ser alteradas independentemente do servidor primário: geração de computação, vCores, armazenamento e período de retenção de backup. O nível de preços também pode ser alterado de forma independente, exceto para ou a partir do nível Básico.

Importante

Antes que uma configuração do servidor primário seja atualizada para um novo valor, atualize a configuração da réplica para um valor igual ou maior. Essa ação ajuda a réplica a acompanhar todas as alterações feitas na principal.

Listar réplicas

Você pode exibir a lista de réplicas de um servidor primário usando a API de lista de réplicas:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{masterServerName}/Replicas?api-version=2017-12-01

Interromper a replicação para um servidor de réplica

Você pode interromper a replicação entre um servidor primário e uma réplica de leitura usando a API de atualização.

Depois de interromper a replicação para um servidor primário e uma réplica de leitura, ela não pode ser desfeita. A réplica de leitura torna-se um servidor autônomo que suporta leituras e gravações. O servidor autônomo não pode ser transformado em uma réplica novamente.

PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{replicaServerName}?api-version=2017-12-01
{
  "properties": {
    "replicationRole":"None"  
   }
}

Excluir um servidor primário ou de réplica

Para excluir um servidor primário ou de réplica, use a API de exclusão:

Quando você exclui um servidor primário, a replicação para todas as réplicas de leitura é interrompida. As réplicas de leitura tornam-se servidores autônomos que agora suportam leituras e gravações.

DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforPostgreSQL/servers/{serverName}?api-version=2017-12-01

Próximos passos