Como criar e gerenciar réplicas de leitura no Banco de Dados do Azure para MySQL usando a CLI do Azure e a 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 de desativação. É altamente recomendável que você atualize para o Banco de Dados do Azure para o servidor flexível MySQL. Para obter mais informações sobre como migrar para o Banco de Dados do Azure para servidor flexível MySQL, consulte O que está acontecendo com o Banco de Dados do Azure para Servidor Único MySQL?

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

CLI do Azure

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

Pré-requisitos

Importante

O recurso de réplica de leitura só está disponível para o Banco de Dados do Azure para servidores MySQL nas camadas de preços de Uso Geral ou Memória Otimizada. Verifique se o servidor de origem está em uma dessas camadas de preço.

Criar uma réplica de leitura

Importante

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

Se o GTID estiver habilitado em um servidor primário (gtid_mode = ON), as réplicas recém-criadas também terão o GTID habilitado e usarão a replicação baseada em GTID. Para saber mais, consulte Identificador de transação global (GTID)

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 az mysql server replica create comando requer os seguintes parâmetros:

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

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 mysql server replica create --name mydemoreplicaserver --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.

Nota

  • O az mysql server replica create comando tem --sku-name argumento que permite especificar 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 nível de preço (uso geral ou memória otimizada).
  • A configuração do servidor de réplica também pode ser alterada após a sua criação. É recomendável que a configuração do servidor de réplica seja mantida em valores iguais ou maiores do 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 seguinte comando:

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

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

Definiçã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.

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

Importante

A interrupção da replicação para um servidor é irreversível. Depois que a replicação for interrompida entre uma origem e uma réplica, ela não poderá ser desfeita. O servidor de réplica torna-se então um servidor autónomo e suporta agora leitura e escrita. Este servidor não pode ser transformado numa 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 az mysql server replica stop comando requer os seguintes parâmetros:

Definição Valor de exemplo Descrição
resource-group  myresourcegroup  O grupo de recursos onde o servidor de réplica existe. 
nome MyDemoReplicaServer O nome do servidor de réplica no qual 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

Eliminar um servidor de origem interrompe a replicação de todos os servidores de réplica e elimina o próprio servidor de origem. Os servidores de réplica tornam-se servidores autónomos que suportam agora tanto leitura como escritas.

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

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 a API de criação:

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}"
  }
}

Nota

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

Uma réplica é criada usando as mesmas configurações de computação e armazenamento do mestre. Depois que uma réplica é criada, várias configurações podem ser alteradas independentemente do servidor de origem: 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 de origem 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 as alterações feitas no mestre.

Listar réplicas

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

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/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 de origem e uma réplica de leitura usando a API de atualização.

Depois de interromper a replicação para um servidor de origem 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.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:

Quando você exclui um servidor de origem, 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.DBforMySQL/servers/{serverName}?api-version=2017-12-01

Problema conhecido

Há duas gerações de armazenamento que os servidores em nível de uso geral e memória otimizada usam, armazenamento de uso geral v1 (suporta até 4 TB) ou armazenamento de uso geral v2 (suporta 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, certifique-se de escolher a região de réplica correta enquanto usa o local com a CLI ou a API REST para a criação de réplicas de leitura. Para saber como identificar o tipo de armazenamento do servidor de origem, consulte o link Como posso determinar em qual tipo de armazenamento meu servidor está sendo executado.

Se você escolher uma região onde não é possível 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 dentro do período de tempo limite permitido".

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

Próximos passos