Questa pagina descrive come gestire le repliche di lettura. Queste operazioni includono Disabilitazione e abilitazione della replica, promozione di una replica, configurazione della replica e controllare lo stato della replica.
Per ulteriori informazioni su come funziona la replica, consulta Replica in Cloud SQL.
Questa pagina si applica alle repliche di un'istanza Cloud SQL. Per configurare un'istanza Cloud SQL in modo che agisca come publisher per un abbonato esterno, consulta Configurare le repliche esterne.
Disabilita replica
Per impostazione predefinita, una replica viene avviata con la replica abilitata. Tuttavia, puoi disattivare la replica, ad esempio per eseguire il debug o analizzare lo stato di un'istanza. Quando è tutto pronto, riattiva esplicitamente la replica. La disattivazione o la nuova attivazione della replica non riavvia l'istanza replica.
La disattivazione della replica non interrompe l'istanza di replica, che diventa un'istanza di sola lettura che non esegue più la replica dall'istanza principale. Continua addebiti per l'istanza. Sulla replica disabilitata, puoi riabilitarla. replicare, eliminare o promuovere la replica a livello autonomo in esecuzione in un'istanza Compute Engine.
Per disabilitare la replica:
Console
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Seleziona un'istanza di replica facendo clic sul suo nome.
- Fai clic su Disattiva replica nella barra dei pulsanti.
- Fai clic su OK.
gcloud
gcloud sql instances patch REPLICA_NAME \ --no-enable-database-replication
REST v1
Per eseguire questo comando cURL a un prompt della riga di comando, devi acquisire un token di accesso utilizzando il comando gcloud auth print-access-token. Puoi utilizzare anche lo Explorer API nella pagina Instances:patch per inviare la richiesta API REST.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: l'ID progetto
- replica-name: il nome dell'istanza replica
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name
Corpo JSON della richiesta:
{ "settings": { "databaseReplicationEnabled": "False" } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
Per eseguire questo comando cURL a un prompt della riga di comando, devi acquisire un token di accesso utilizzando il comando gcloud auth print-access-token. Puoi anche utilizzare Explorer API nella pagina Instances:patch per inviare la richiesta all'API REST.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: l'ID progetto
- replica-name: il nome dell'istanza replica
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name
Corpo JSON della richiesta:
{ "settings": { "databaseReplicationEnabled": "False" } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Abilita replica
Se una replica non viene replicata da molto tempo, la replica richiederà più tempo per poter raggiungere l'istanza principale. In questo caso, elimina e creiamo una nuova replica.
Per attivare la replica:
Console
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Seleziona un'istanza di replica facendo clic sul suo nome.
- Fai clic su Abilita replica.
- Fai clic su Ok.
gcloud
gcloud sql instances patch REPLICA_NAME \ --enable-database-replication
REST v1
Per eseguire questo comando cURL a un prompt della riga di comando, devi acquisire un token di accesso utilizzando il comando gcloud auth print-access-token. Puoi anche utilizzare Explorer API nella pagina Instances:patch per inviare la richiesta all'API REST.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- replica-name: il nome dell'istanza replica
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name
Corpo JSON della richiesta:
{ "settings": { "databaseReplicationEnabled": "True" } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
Per eseguire questo comando cURL al prompt della riga di comando, devi acquisire di accesso al token utilizzando gcloud auth stampa-access-token. Puoi anche utilizzare Explorer API nella pagina Instances:patch per inviare la richiesta all'API REST.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: l'ID progetto
- replica-name: il nome dell'istanza replica
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name
Corpo JSON della richiesta:
{ "settings": { "databaseReplicationEnabled": "True" } }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Promuovi una replica
Con la promozione di una replica di lettura, la replica viene interrotta e l'istanza convertita in una istanza Cloud SQL principale autonoma con funzionalità di lettura e scrittura.
Quando vengono promosse, le repliche di lettura vengono configurate automaticamente con i backup, ma non come istanze ad alta disponibilità (HA). Puoi attivare l'alta disponibilità dopo la promozione della replica, come faresti per qualsiasi istanza non replica. La configurazione di una replica di lettura per l'alta disponibilità avviene nello stesso modo. per un'istanza principale. Scopri di più sulla configurazione dell'alta disponibilità dell'istanza.
Prima di promuovere una replica di lettura, se l'istanza principale è ancora disponibile e pubblica devi procedere nel seguente modo:
- Arresta tutte le scritture sull'istanza principale.
- Controlla lo stato della replica. Un'opzione per farlo è Dashboard del gruppo di disponibilità sempre attivo in SQL Server Management Studio (SSMS).
- Verifica che la replica sia in fase di replica, quindi controlla
il ritardo della replica, ad esempio come riportato
seconds_behind_master
metrica.
In caso contrario, in un'istanza appena promossa potrebbero mancare alcune transazioni che sono state committate nell'istanza principale.
Per promuovere una replica a istanza autonoma:
Console
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Seleziona un'istanza replica facendo clic sul nome.
- Fai clic su Esegui la promozione della replica.
- Fai clic su Ok.
gcloud
gcloud sql instances promote-replica REPLICA_NAME
REST v1
Per eseguire questo comando cURL al prompt della riga di comando, devi acquisire di accesso al token utilizzando gcloud auth stampa-access-token. Puoi utilizzare anche lo Explorer API nella pagina Instances:promoteReplica per inviare la richiesta API REST.
Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- project-id: l'ID progetto
- replica-name: il nome dell'istanza replica
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/replica-name/promoteReplica
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
REST v1beta4
Per eseguire questo comando cURL al prompt della riga di comando, devi acquisire di accesso al token utilizzando gcloud auth stampa-access-token. Puoi anche utilizzare Explorer API nella pagina Instances:promoteReplica per inviare la richiesta all'API REST.
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- project-id: l'ID progetto
- replica-name: il nome dell'istanza replica
Metodo HTTP e URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/replica-name/promoteReplica
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
Verifica che l'istanza promossa sia configurata correttamente. In particolare, considera configurazione dell'istanza per l'alta disponibilità, se necessario.
Controlla lo stato della replica
Al momento, devi utilizzare query T-SQL o SSMS per monitorare lo stato della replica. Per ulteriori informazioni, consulta le seguenti risorse:- Strumenti per monitorare i gruppi di disponibilità sempre attivi
- Utilizzare la dashboard Gruppo di disponibilità sempre attivo
Risoluzione dei problemi
Problema | Risoluzione dei problemi |
---|---|
La replica di lettura non è stata avviata al momento della creazione. | Probabilmente è presente un errore più specifico nei file di log. Esamina i log in Cloud Logging per trovare l'errore effettivo. |
Impossibile creare la replica di lettura: errore invalidFlagValue. | Uno degli indicatori nella richiesta non è valido. Potrebbe trattarsi di un flag fornito esplicitamente o di un flag impostato su un valore predefinito.
Innanzitutto, controlla che il valore del flag Se il flag |
Impossibile creare la replica di lettura: errore sconosciuto. | Probabilmente contiene un errore più specifico nei file di log.
Esamina i log in
Cloud Logging per trovare l'errore effettivo.
Se l'errore è: |
Lo spazio sul disco è esaurito. | La dimensione del disco dell'istanza principale può diventare piena durante la creazione della replica. Modifica l'istanza principale per eseguirne l'upgrade a una dimensione del disco maggiore. |
L'istanza replica utilizza troppa memoria. | La replica utilizza la memoria temporanea per memorizzare nella cache la lettura richiesta più spesso
operazioni, il che può portarlo a utilizzare più memoria rispetto all'istanza principale.
Riavvia l'istanza replica per recuperare lo spazio di memoria temporaneo. |
La replica è stata interrotta. | È stato raggiunto il limite massimo di spazio di archiviazione e l'archiviazione automatica
L'aumento non è abilitato.
Modifica l'istanza per attivare |
Il ritardo nella replica è costantemente elevato. | Il carico di scrittura è troppo elevato per essere gestito dalla replica. Il ritardo nella replica si verifica quando il thread SQL su una replica non è in grado di stare al passo con il thread I/O. Alcuni tipi di query o carichi di lavoro possono causare un ritardo elevato della replica temporaneo o permanente per un determinato schema. Alcune delle cause comuni del ritardo nella replica sono:
Ecco alcune possibili soluzioni:
|
La creazione della replica non riesce con il timeout. | Le transazioni non committate di lunga durata nell'istanza principale possono causare
il fallimento della creazione della replica di lettura.
Ricrea la replica dopo aver interrotto tutte le query in esecuzione. |
Passaggi successivi
- Scopri come creare una replica di lettura.
- Scopri di più sui requisiti e le best practice per la replica.