Gestione delle repliche di lettura

In questa pagina viene descritto 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 riguarda le repliche di un'istanza Cloud SQL. Per configurare un'istanza Cloud SQL in modo che agisca come publisher per un server esterno sottoscrittore, vedi Configura le repliche esterne.

Disabilita replica

Per impostazione predefinita, una replica viene avviata con la replica abilitata. Tuttavia, puoi disattivare di replica, ad esempio, per eseguire il debug o analizzare lo stato in esecuzione in un'istanza Compute Engine. Quando è tutto pronto, riabilita la replica esplicitamente. Disabilitazione o Se riattivi la replica, l'istanza di replica non viene riavviata.

La disabilitazione della replica non arresta l'istanza di replica. diventa un modello di accesso che non è più replicata dalla sua 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

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Seleziona un'istanza di replica facendo clic sul suo nome.
  3. Fai clic su Disabilita replica nella barra dei pulsanti.
  4. Fai clic su OK.

gcloud

gcloud sql instances patch REPLICA_NAME \
--no-enable-database-replication

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: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 di 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 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 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 di 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 delle seguenti 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 abilitare la replica:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Seleziona un'istanza di replica facendo clic sul suo nome.
  3. Fai clic su Abilita replica.
  4. Fai clic su Ok.

gcloud

gcloud sql instances patch REPLICA_NAME \
--enable-database-replication

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: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 di 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 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 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 di 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 delle seguenti 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.

Se promosse, le repliche di lettura vengono configurate automaticamente con i backup, ma non vengono configurate automaticamente come istanze ad alta disponibilità (HA). Puoi abilitare l'alta disponibilità dopo aver promosso la replica, come faresti per qualsiasi di un'istanza non di 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:

  1. Arresta tutte le scritture sull'istanza principale.
  2. Controlla lo stato di replica del replica. Un'opzione per farlo è Dashboard del gruppo di disponibilità sempre attivo in SQL Server Management Studio (SSMS).
  3. 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, un'istanza appena promossa potrebbe non contenere alcune transazioni nell'istanza principale.

Per promuovere una replica a istanza autonoma:

Console

  1. Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.

    Vai a Istanze Cloud SQL

  2. Seleziona un'istanza di replica facendo clic sul suo nome.
  3. Fai clic su Promuovi replica.
  4. 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 di 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 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 di 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

Attualmente, devi utilizzare query T-SQL o SSMS per monitorare lo stato della replica. Per ulteriori informazioni, consulta le seguenti risorse:

Risoluzione dei problemi

Problema Risoluzione dei problemi
La replica di lettura non è stata avviata al momento della creazione. Probabilmente contiene 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 dei flag nella richiesta non è valido. Potrebbe essere una segnalazione fornito esplicitamente o uno impostato su un valore predefinito.

Innanzitutto, verifica che il valore del flag max_connections sia maggiore o uguale al valore dell'istanza principale.

Se il flag max_connections è impostato correttamente, ispeziona i log in Cloud Logging per trovare l'errore effettivo.

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 è: set Service Networking service account as servicenetworking.serviceAgent role on consumer project, disabilita e riattiva Service Networking API. Questa azione crea l'account di servizio necessario per continuare la procedura.

Il disco è pieno. 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 di 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 di replica per recuperare lo spazio di memoria temporaneo.

Replica interrotta. È stato raggiunto il limite massimo di spazio di archiviazione e l'archiviazione automatica L'aumento non è abilitato.

Modifica l'istanza per abilitare automatic storage increase.

Il ritardo della replica è costantemente elevato. Il carico di scrittura è troppo elevato per essere gestito dalla replica. Ritardo della replica si verifica quando il thread SQL su una replica non riesce a stare al passo thread IO. Alcuni tipi di query o carichi di lavoro possono causare problemi un ritardo di replica elevato permanente per un determinato schema. Alcuni dei tipici Le cause del ritardo di replica sono:
  • Query lente sulla replica. Trovale e correggile.
  • Query come DELETE ... WHERE field < 50000000 causano con la replica basata su riga, poiché un numero enorme gli aggiornamenti si accumulano sulla replica.

Ecco alcune possibili soluzioni:

  • Modifica l'istanza per aumentare le dimensioni della replica.
  • Riduci il carico sul database.
  • Invia traffico di lettura alla replica di lettura.
  • Indicizza le tabelle.
  • Identifica e correggi le query di scrittura lente.
  • Ricrea la replica.
La creazione della replica non riesce con il timeout. Le transazioni non impegnate a lunga esecuzione sull'istanza principale possono causare in caso di errore durante la creazione della replica di lettura.

Ricrea la replica dopo aver interrotto tutte le query in esecuzione.

Passaggi successivi