Come creare e gestire repliche in lettura in Database di Azure per MySQL usando l'interfaccia della riga di comando di Azure e l'API REST
SI APPLICA A: Database di Azure per MySQL - Server singolo
Importante
Il server singolo del Database di Azure per MySQL è in fase di ritiro. È consigliabile eseguire l'aggiornamento al server flessibile del Database di Azure per MySQL. Per altre informazioni sulla migrazione a Database di Azure per MySQL - Server flessibile, vedere Cosa succede a Database di Azure per MySQL - Server singolo?
Questo articolo illustra come creare e gestire repliche in lettura nel servizio Database di Azure per MySQL usando l'interfaccia della riga di comando di Azure e l'API REST. Per altre informazioni sulle repliche in lettura, vedere la panoramica.
Interfaccia della riga di comando di Azure
È possibile creare e gestire repliche in lettura usando l'interfaccia della riga di comando di Azure.
Prerequisiti
- Installare l'interfaccia della riga di comando di Azure 2.0
- Server Database di Azure per MySQL che verrà utilizzato come server di origine.
Importante
La funzionalità relativa alle repliche in lettura è disponibile solo per i server di Database di Azure per MySQL nei piani tariffari Utilizzo generico o Con ottimizzazione per la memoria. Verificare che il server di origine sia incluso in uno di questi piani tariffari.
Creare una replica in lettura
Importante
Se il server di origine non dispone di server di replica esistenti, potrebbe essere necessario riavviarlo per prepararsi per la replica a seconda dello spazio di archiviazione usato (v1/v2). Prendere in considerazione il riavvio del server ed eseguire questa operazione durante gli orari di minore attività. Per altri dettagli, vedere Riavvio del server di origine.
Se GTID è abilitato in un server primario (gtid_mode
= ON), sarà abilitato anche nelle repliche appena create e verrà usata la replica basata su GTID. Per altre informazioni, vedere Global transaction identifier (GTID)
È possibile creare un server di replica in lettura usando il comando seguente:
az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup
Il comando az mysql server replica create
richiede i parametri seguenti:
Impostazione | Valore di esempio | Descrizione |
---|---|---|
resource-group | myresourcegroup | Gruppo di risorse in cui verrà creato il server di replica. |
name | mydemoreplicaserver | Nome del nuovo server di replica creato. |
source-server | mydemoserver | Nome o ID del server di origine esistente da cui eseguire la replica. |
Per creare una replica in lettura tra aree, usare il --location
parametro . L'esempio dell'interfaccia della riga di comando seguente crea la replica negli Stati Uniti occidentali.
az mysql server replica create --name mydemoreplicaserver --source-server mydemoserver --resource-group myresourcegroup --location westus
Nota
Per altre informazioni sulle aree in cui è possibile creare una replica, vedere l'articolo Concetti relativi alle repliche in lettura.
Nota
- Il
az mysql server replica create
comando ha--sku-name
un argomento che consente di specificare lo SKU ({pricing_tier}_{compute generation}_{vCores}
) durante la creazione di una replica tramite l'interfaccia della riga di comando di Azure. - Il server primario e la replica in lettura devono essere nello stesso piano tariffario (Utilizzo generico o Ottimizzato per la memoria).
- La configurazione del server di replica può essere modificata anche dopo la creazione. È consigliabile mantenere la configurazione del server di replica con valori uguali o maggiori rispetto a quello di origine per garantire che la replica sia in grado restare al passo con il master.
Elencare le repliche per un server di origine
Per visualizzare tutte le repliche per un determinato server di origine, eseguire il comando seguente:
az mysql server replica list --server-name mydemoserver --resource-group myresourcegroup
Il comando az mysql server replica list
richiede i parametri seguenti:
Impostazione | Valore di esempio | Descrizione |
---|---|---|
resource-group | myresourcegroup | Gruppo di risorse in cui verrà creato il server di replica. |
server-name | mydemoserver | Nome o ID del server di origine. |
Arrestare la replica in un server di replica
Importante
L'arresto della replica in un server è irreversibile. Una volta arrestata la replica tra un'origine e una replica, non può essere annullata. Il server di replica diventa quindi un server autonomo che supporta sia la lettura che la scrittura. Questo server non può essere di nuovo impostato come replica.
È possibile interrompere la replica su un server di replica in lettura usando il comando seguente:
az mysql server replica stop --name mydemoreplicaserver --resource-group myresourcegroup
Il comando az mysql server replica stop
richiede i parametri seguenti:
Impostazione | Valore di esempio | Descrizione |
---|---|---|
resource-group | myresourcegroup | Gruppo di risorse in cui si trova il server di replica. |
name | mydemoreplicaserver | Nome del server di replica su cui si vuole arrestare la replica. |
Eliminare un server di replica
L'eliminazione di un server di replica in lettura può essere effettuata eseguendo il comando az mysql server delete.
az mysql server delete --resource-group myresourcegroup --name mydemoreplicaserver
Eliminare un server di origine
Importante
Eliminando un server di origine si arresta la replica in tutti i server di replica, oltre a eliminare il server di origine stesso. I server di replica diventano server autonomi che supportano sia la lettura che la scrittura.
Per eliminare un server di origine, è possibile eseguire il comando az mysql server delete .
az mysql server delete --resource-group myresourcegroup --name mydemoserver
REST API
È possibile creare e gestire repliche in lettura usando l'API REST di Azure.
Creare una replica in lettura
È possibile creare una replica di lettura usando l'API di creazione:
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
Per altre informazioni sulle aree in cui è possibile creare una replica, vedere l'articolo Concetti relativi alle repliche in lettura.
Una replica viene creata usando le stesse impostazioni di calcolo e archiviazione del master. Dopo aver creato una replica, è possibile modificare diverse impostazioni in modo indipendente dal server di origine: generazione di calcolo, vCore, archiviazione e periodo di conservazione del backup. È anche possibile modificare in modo indipendente il piano tariffario, tranne da o verso il livello Basic.
Importante
Prima che un'impostazione del server di origine venga aggiornata a un nuovo valore, aggiornare l'impostazione della replica su un valore uguale o maggiore. Questa azione fa sì che le repliche siano sempre aggiornate con le modifiche apportate al master.
Elencare le repliche
È possibile visualizzare l'elenco delle repliche di un server di origine usando l'API dell'elenco di repliche:
GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{masterServerName}/Replicas?api-version=2017-12-01
Arrestare la replica in un server di replica
È possibile arrestare la replica tra un server di origine e una replica di lettura usando l'API di aggiornamento.
Dopo aver arrestato la replica in un server di origine e in una replica di lettura, non può essere annullata. La replica in lettura diventa un server autonomo che supporta sia la lettura che la scrittura. Il server autonomo non può essere di nuovo impostato come replica.
PATCH https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{masterServerName}?api-version=2017-12-01
{
"properties": {
"replicationRole":"None"
}
}
Eliminare un server di origine o di replica
Per eliminare un server di origine o di replica, usare l'API delete:
Quando si elimina un server di origine, la replica in tutte le repliche in lettura viene arrestata. Le repliche in lettura diventano server autonomi che supportano sia la lettura che la scrittura.
DELETE https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.DBforMySQL/servers/{serverName}?api-version=2017-12-01
Problema noto
Esistono due generazioni di spazio di archiviazione che i server nel livello Utilizzo generico e Ottimizzato per la memoria usano, l'archiviazione per utilizzo generico v1 (supporta fino a 4 TB) e l'archiviazione per utilizzo generico v2 (supporta fino a 16 TB di archiviazione). Il server di origine e il server di replica devono avere lo stesso tipo di archiviazione. Poiché l'archiviazione per utilizzo generico v2 non è disponibile in tutte le aree, assicurarsi di scegliere l'area di replica corretta mentre si usa la posizione con l'interfaccia della riga di comando o l'API REST per la creazione della replica in lettura. Per informazioni su come identificare il tipo di archiviazione del server di origine, fare riferimento al collegamento Come è possibile determinare il tipo di archiviazione in cui è in esecuzione il server.
Se si sceglie un'area in cui non è possibile creare una replica di lettura per il server di origine, si verifica il problema in cui la distribuzione continuerà a essere eseguita come illustrato nella figura seguente e quindi si verifica un timeout con l'errore "L'operazione di provisioning delle risorse non è stata completata entro il periodo di timeout consentito".
Passaggi successivi
- Altre informazioni sulle repliche in lettura