Share via


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

Database di Azure per MySQL server singolo si trova nel percorso di ritiro. È consigliabile eseguire l'aggiornamento a Database di Azure per MySQL server flessibile. Per altre informazioni sulla migrazione a Database di Azure per MySQL server flessibile, vedere Che cosa accade 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

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 si trova 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 riavviare il server di origine 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), anche le repliche appena create avranno GTID abilitato e useranno la replica basata su GTID. Per altre informazioni, vedere Identificatore di transazione globale (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 all'origine per garantire che la replica sia in grado di mantenere il 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 consente alla replica di mantenere 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".

Read replica cli error.

Passaggi successivi