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