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
- Instalar a CLI 2.0 do Azure
- Um Banco de Dados do Azure para servidor PostgreSQL para ser o servidor primário.
Preparar o servidor primário
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
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
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
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
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" } }
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
- Saiba mais sobre réplicas de leitura no Banco de Dados do Azure para PostgreSQL.
- Saiba como criar e gerenciar réplicas de leitura no portal do Azure.