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
- Instalar a CLI 2.0 do Azure
- Um Servidor do Banco de Dados do Azure para MySQL que será usado como servidor de origem.
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
- Saiba mais sobre ler réplicas