Compartilhar via


Como criar e gerenciar réplicas de leitura no Banco de Dados do Azure para MySQL usando a CLI do Azure ou API REST

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

Importante

O servidor único do Banco de Dados do Azure para MySQL está no caminho da desativação. É altamente recomendável que você atualize para o servidor flexível do Banco de Dados do Azure para MySQL. Para obter mais informações sobre a migração para o servidor flexível do Banco de Dados do Azure para MySQL, confira O que está acontecendo com o Servidor Único do Banco de Dados do Azure para MySQL?

Neste artigo, você saberá como criar e gerenciar réplicas de leitura no serviço de Banco de Dados do Azure para MySQL usando a CLI do Azure ou API REST. Para saber mais sobre réplicas de leitura, confira Visão Geral.

CLI do Azure

Crie e gerencie réplicas de leitura usando a CLI do Azure.

Pré-requisitos

Importante

O recurso de réplica de leitura está disponível apenas para bancos de dados do Azure para servidores MySQL nas camadas de preços de uso geral ou de otimização de memória. Verifique se o servidor de origem está em um desses tipos de preços.

Criar uma réplica de leitura

Importante

Se o servidor de origem não tiver servidores de réplica existentes, ele poderá precisar reiniciar para se preparar para a replicação, dependendo do armazenamento usado (v1/v2). Considere reiniciar o servidor e execute essa operação fora do horário de pico. Consulte Reinicialização do servidor de origem para ver mais detalhes.

Se GTID estiver habilitado em um servidor primário (gtid_mode = ATIVADO), ele também estará habilitado nas réplicas recém-criadas, e elas usarão a replicação baseada em GTID. Para saber mais, confira GTID (identificador de transação global)

Um servidor de réplica de leitura pode ser criado usando o seguinte comando:

az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup

O comando az mysql server replica create exige os seguintes parâmetros:

Configuração Valor de exemplo Descrição
resource-group  myresourcegroup  O grupo de recursos para o qual o servidor de réplica será criado. 
name mydemoreplicaserver O nome do novo servidor de réplica criado.
source-server mydemoserver O nome ou a ID do servidor de origem existente para replicar.

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

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

Observação

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

Observação

  • O comando az mysql server replica create tem um argumento --sku-name que permite que você especifique a SKU ({pricing_tier}_{compute generation}_{vCores}) enquanto cria uma réplica usando a CLI do Azure.
  • O servidor primário e a réplica de leitura devem estar no mesmo tipo de preço (Uso Geral ou Otimizado para Memória).
  • A configuração do servidor de réplica também pode ser alterada depois de criada. É recomendável que a configuração do servidor de réplica seja mantida com valores iguais ou maiores que a origem para garantir que a réplica seja capaz de acompanhar o mestre.

Listar réplicas para um servidor de origem

Para exibir todas as réplicas de um determinado servidor de origem, execute o comando a seguir:

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

O comando az mysql server replica list exige os seguintes parâmetros:

Configuração Valor de exemplo Descrição
resource-group  myresourcegroup  O grupo de recursos para o qual o servidor de réplica será criado. 
server-name mydemoserver O nome ou ID do servidor de origem.

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

Importante

Parar a replicação para um servidor é irreversível. Quando a replicação parar entre uma origem e uma réplica, ela não poderá ser desfeita. O servidor de réplica então se torna um servidor autônomo e agora suporta tanto leitura quanto gravação. Este servidor não pode ser transformado em uma réplica novamente.

A replicação para um servidor de réplica de leitura pode ser interrompida usando o seguinte comando:

az mysql server replica stop --name mydemoreplicaserver --resource-group myresourcegroup

O comando az mysql server replica stop exige os seguintes parâmetros:

Configuração Valor de exemplo Descrição
resource-group  myresourcegroup  O grupo de recursos em que há o servidor de réplica. 
name mydemoreplicaserver O nome do servidor de réplica para interromper a replicação.

Excluir um servidor de réplica

A exclusão de um servidor de réplica de leitura pode ser feita executando o comando az mysql server delete.

az mysql server delete --resource-group myresourcegroup --name mydemoreplicaserver

Excluir um servidor de origem

Importante

A exclusão de um servidor de origem interrompe a replicação para todos os servidores de origem e exclui o próprio servidor mestre. Os servidores de réplica tornam-se servidores independentes que agora suportam leitura e gravação.

Para excluir um servidor de origem, você pode executar o comando az mysql excluir servidor .

az mysql server delete --resource-group myresourcegroup --name mydemoserver

API REST

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

Criar uma réplica de leitura

Você pode criar uma réplica de leitura usando Criar API:

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

Observação

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

Uma réplica é criada usando as mesmas configurações de computação e armazenamento que o mestre. Depois de criar uma réplica, várias configurações podem ser alteradas independentemente do servidor de origem: o período de retenção de backup, o armazenamento, as vCores e a geração da computação. O tipo de preço também pode ser alterado de forma independente, exceto de ou para a camada básica.

Importante

Antes que uma configuração do servidor de origem seja atualizada para um novo valor, atualize a configuração de réplica para um valor igual ou maior. Esta ação ajuda a réplica a acompanhar as alterações feitas ao mestre.

Listar réplicas

Você pode exibir a lista de réplicas de um servidor de origem usando a API da lista de réplicas:

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

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

You can stop replication between a source server and a read replica by using the update API.

Depois de interromper a replicação para um servidor de origem e uma réplica de leitura, isso não poderá ser desfeito. A réplica de leitura se torna um servidor autônomo que dá suporte a leituras e gravações. O servidor autônomo não pode se tornar uma réplica novamente.

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

Excluir um servidor de origem ou de réplica

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

Ao excluir um servidor de origem, a replicação para todas as réplicas de leitura será interrompida. As réplicas de leitura tornam-se servidores independentes que agora têm suporte para leitura e gravação.

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

Problema conhecido

Há duas gerações de armazenamento que os servidores em Uso Geral e camada com otimização de memória usam, o armazenamento de Uso Geral v1 (permite até 4 TB) e armazenamento de Uso Geral v2 (permite armazenamento de até 16 TB). O servidor de origem e o servidor de réplica devem ter o mesmo tipo de armazenamento. Como o armazenamento de Uso Geral v2 não está disponível em todas as regiões, verifique se você escolheu a região de réplica correta enquanto usa o local com a CLI ou a API REST para a criação de réplica de leitura. Sobre como identificar o tipo de armazenamento do seu servidor de origem, confira o link Como posso determinar em qual tipo de armazenamento meu servidor está sendo executado.

Se você escolher uma região em que não possa criar uma réplica de leitura para o servidor de origem, encontrará o problema em que a implantação continuará em execução, conforme mostrado na figura abaixo e, em seguida, atingirá o tempo limite com o erro "A operação de provisionamento de recursos não foi concluída no período limite permitido".

az mysql server replica create -n <replica-servername> -g <resource group> --location <replica-region> -s <source-servername>
/ Running . .

Próximas etapas