Questa pagina descrive la manutenzione self-service, che ti consente di accettare un aggiornamento di manutenzione sulla tua istanza al di fuori del normale flusso di manutenzione pianificata.
Panoramica
Cloud SQL rilascia regolarmente miglioramenti software, come patch per vulnerabilità note, tramite nuove versioni di manutenzione. Anche se Cloud SQL pianifica gli aggiornamenti di manutenzione ogni pochi mesi per assicurarti di avere l'ultima versione di manutenzione, potresti voler utilizzare la manutenzione self-service se:
- Hai bisogno di un aggiornamento prima del prossimo evento di manutenzione pianificato.
- Vuoi recuperare l'ultima versione di manutenzione dopo aver saltato l'evento di manutenzione pianificato più recente.
Non è necessario eseguire l'aggiornamento manuale all'ultima versione. Puoi consentire a Cloud SQL di aggiornare automaticamente la versione di manutenzione durante il prossimo evento di manutenzione pianificato.
Gestire la manutenzione di tutte le repliche di lettura di un'istanza principale
Quando esegui la manutenzione self-service su un'istanza principale con repliche di lettura, Cloud SQL applica automaticamente l'aggiornamento di manutenzione a tutte le repliche di lettura. Se hai più di tre istanze di replica di lettura, le istanze vengono divise in gruppi e aggiornate in parallelo. Come passaggio finale, l'aggiornamento di manutenzione viene applicato all'istanza principale.
Se necessario, puoi comunque eseguire la manutenzione self-service su una singola replica di lettura. Tuttavia, per garantire che tutte le istanze di replica di lettura e l'istanza principale operino sulla stessa versione di manutenzione, ti consigliamo di eseguire la manutenzione self-service su tutte le repliche di lettura di un'istanza principale contemporaneamente.
Per aggiornare una singola istanza di replica di lettura, specifica l'istanza di replica di lettura quando esegui la manutenzione self-service.
Prima di iniziare
Prima di eseguire la manutenzione self-service, controlla la versione di manutenzione attuale. Poi puoi determinare la versione di manutenzione di destinazione a cui vuoi eseguire l'aggiornamento e aggiornare l'istanza a quella versione. Se utilizzi repliche di lettura, aggiorna tutte le repliche di lettura dell'istanza principale a questa versione.
Per visualizzare la versione di manutenzione attuale di un'istanza, utilizza la seguente procedura:
gcloud
Prima di eseguire il comando gcloud
seguente, esegui questa
sostituzione:
- INSTANCE_ID: L'istanza da interrogare
gcloud sql instances describe INSTANCE_ID
La versione di manutenzione installata sull'istanza è indicata
accanto all'attributo maintenanceVersion
.
REST v1
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza
- INSTANCE_NAME: il nome dell'istanza che stai configurando per l'alta disponibilità
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
Cerca l'elemento maintenanceVersion
nella
sezione DatabaseInstance
della risposta.
REST v1beta4
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza
- INSTANCE_NAME: il nome dell'istanza che stai configurando per l'alta disponibilità
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
Cerca l'elemento maintenanceVersion
nella
sezione DatabaseInstance
della risposta.
Determina la versione di manutenzione di destinazione
Utilizza il seguente metodo per visualizzare le versioni di manutenzione che puoi selezionare come target. Non puoi eseguire l'aggiornamento a una versione precedente a quella di manutenzione attuale.
gcloud
Prima di eseguire il comando gcloud
seguente, esegui questa
sostituzione:
- INSTANCE_ID: L'istanza da interrogare
gcloud sql instances describe INSTANCE_ID
La versione manutenzione disponibile è indicata accanto all'attributo
availableMaintenanceVersions
.
REST v1
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza
- INSTANCE_NAME: il nome dell'istanza che stai configurando per l'alta disponibilità
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
Cerca l'elemento availableMaintenanceVersions
nella
sezione DatabaseInstance
della risposta.
REST v1beta4
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID o il numero di progetto del progetto Google Cloud che contiene l'istanza
- INSTANCE_NAME: il nome dell'istanza che stai configurando per l'alta disponibilità
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#instance", "state": "RUNNABLE", "databaseVersion": "SQLSERVER_2019_STANDARD" }
Cerca l'elemento availableMaintenanceVersions
nella
sezione DatabaseInstance
della risposta.
Aggiorna tutte le repliche di lettura di un'istanza principale alla versione di manutenzione di destinazione
Per eseguire un aggiornamento di manutenzione su tutte le istanze di replica di lettura di un'istanza principale, utilizza la seguente procedura.
gcloud
Prima di utilizzare il seguente comando gcloud
, esegui la seguente
sostituzione:
- PRIMARY_INSTANCE_ID: l'ID dell'istanza primaria
- MAINTENANCE_VERSION: La versione di manutenzione di Cloud SQL da applicare
gcloud sql instances patch PRIMARY_INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
Al prompt di conferma, digita Y
per continuare o
digita N
per annullare.
Se selezioni Y
, la procedura di aggiornamento applica la versione di manutenzione specificata a tutte le repliche di lettura prima di aggiornare l'istanza principale. Tutte le istanze di replica di lettura già aggiornate alla versione di manutenzione di destinazione vengono ignorate.
Se selezioni N
, nessuna istanza viene aggiornata.
Al termine dell'aggiornamento delle repliche di lettura e dell'istanza principale, viene visualizzato un messaggio simile al seguente:
Patching Cloud SQL instance....done. Patching Cloud SQL instance....done. Patching Cloud SQL instance....done. Updated [https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_ID]
Terraform
Per creare un'istanza, utilizza una risorsa Terraform.
Applica le modifiche
Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione di Terraform deve avere la propria directory (chiamata anche modulo radice).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf
, ad esempiomain.tf
. In questo tutorial, il file viene denominatomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tf
appena creato.(Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
terraform init
(Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il comando seguente e inserendo
yes
al prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!" (Applicazione completata).
- Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Elimina le modifiche
Per eliminare le modifiche:
- Per disattivare la protezione dall'eliminazione, imposta l'argomento
deletion_protection
sufalse
nel file di configurazione Terraform.deletion_protection = "false"
- Applica la configurazione Terraform aggiornata eseguendo il comando seguente e
inserendo
yes
al prompt:terraform apply
-
Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il seguente comando e inserendo
yes
al prompt:terraform destroy
REST v1
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto
- PROJECT_ID: l'ID istanza dell'istanza primaria
- MAINTENANCE_VERSION: La versione di manutenzione del software Cloud SQL da applicare
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "PRIMARY_INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto
- INSTANCE_ID: l'ID istanza dell'istanza primaria
- MAINTENANCE_VERSION: La versione di manutenzione del software Cloud SQL da applicare
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Aggiorna una singola istanza alla versione di manutenzione di destinazione
Per eseguire un aggiornamento di manutenzione su una singola istanza, utilizza la seguente procedura. Se necessario, puoi utilizzare questa procedura per aggiornare una singola istanza di replica di lettura.
gcloud
Prima di utilizzare il seguente comando gcloud
, esegui le seguenti
sostituzioni:
- INSTANCE_ID: l'ID dell'istanza. Questa istanza può essere un'istanza replica di lettura.
- MAINTENANCE_VERSION: La versione di manutenzione di Cloud SQL da applicare
gcloud sql instances patch INSTANCE_ID \ --maintenance-version=MAINTENANCE_VERSION
Se specifichi una replica di lettura, viene visualizzato un messaggio di conferma. Digita Y
per continuare o N
per annullare.
- Se selezioni
Y
, la procedura di aggiornamento applica la versione di manutenzione specificata solo alla replica di lettura specificata. - Se selezioni
N
, nessuna istanza viene aggiornata.
Al termine dell'aggiornamento dell'istanza, viene visualizzato un messaggio simile al seguente:
Patching Cloud SQL instance....done. Updated [https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID]
Terraform
Per creare un'istanza, utilizza una risorsa Terraform.
Applica le modifiche
Per applicare la configurazione di Terraform in un progetto Google Cloud , completa i passaggi nelle sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito in cui vuoi applicare le configurazioni Terraform.
Devi eseguire questo comando una sola volta per progetto e puoi eseguirlo in qualsiasi directory.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Le variabili di ambiente vengono sostituite se imposti valori espliciti nel file di configurazione Terraform.
Prepara la directory
Ogni file di configurazione di Terraform deve avere la propria directory (chiamata anche modulo radice).
-
In Cloud Shell, crea una directory e un nuovo file al suo interno. Il nome file deve avere l'estensione
.tf
, ad esempiomain.tf
. In questo tutorial, il file viene denominatomain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Se stai seguendo un tutorial, puoi copiare il codice campione in ogni sezione o passaggio.
Copia il codice campione nel file
main.tf
appena creato.(Facoltativo) Copia il codice da GitHub. Questa operazione è consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Rivedi e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi effettuare questa operazione una sola volta per directory.
terraform init
(Facoltativo) Per utilizzare l'ultima versione del provider Google, includi l'opzione
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
aggiornerà corrispondano alle tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione di Terraform eseguendo il comando seguente e inserendo
yes
al prompt:terraform apply
Attendi che Terraform visualizzi il messaggio "Apply complete!" (Applicazione completata).
- Apri il tuo Google Cloud progetto per visualizzare i risultati. Nella console Google Cloud , vai alle risorse nell'interfaccia utente per assicurarti che Terraform le abbia create o aggiornate.
Elimina le modifiche
Per eliminare le modifiche:
- Per disattivare la protezione dall'eliminazione, imposta l'argomento
deletion_protection
sufalse
nel file di configurazione Terraform.deletion_protection = "false"
- Applica la configurazione Terraform aggiornata eseguendo il comando seguente e
inserendo
yes
al prompt:terraform apply
-
Rimuovi le risorse applicate in precedenza con la configurazione Terraform eseguendo il seguente comando e inserendo
yes
al prompt:terraform destroy
REST v1
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto
- PROJECT_ID: l'ID istanza, che può essere un'istanza replica di lettura
- MAINTENANCE_VERSION: La versione di manutenzione del software Cloud SQL da applicare
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "PRIMARY_INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
REST v1beta4
Prima di utilizzare i dati della richiesta, apporta le seguenti sostituzioni:
- PROJECT_ID: l'ID progetto
- INSTANCE_ID: l'ID istanza, che può essere un'istanza replica di lettura
- MAINTENANCE_VERSION: La versione di manutenzione del software Cloud SQL da applicare
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID
Corpo JSON della richiesta:
{ "maintenanceVersion": "MAINTENANCE_VERSION" }
Per inviare la richiesta, espandi una di queste opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID", "status": "PENDING", "user": "user@example.com", "insertTime": "2020-01-16T02:32:12.281Z", "startTime": "08:00", "endTime": "08:01", "operationType": UPDATE, "name": "OPERATION_ID", "targetId": "INSTANCE_ID", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID", "targetProject": "PROJECT_ID" }
Risoluzione dei problemi
Problema | Risoluzione dei problemi |
---|---|
Non è possibile applicare l'aggiornamento della manutenzione a un'istanza arrestata. | Per risolvere il problema, avvia l'istanza prima di eseguire l'aggiornamento della manutenzione self-service. |
A causa di una differenza nella versione principale del database, l'aggiornamento di manutenzione non è riuscito. | Non puoi utilizzare la manutenzione self-service per eseguire l'upgrade della versione principale del database di un'istanza. Per eseguire l'upgrade della versione principale di un'istanza, utilizza una delle seguenti procedure: |
Passaggi successivi
- Visualizza i log delle operazioni delle istanze.
- Leggi le domande frequenti sulla manutenzione.
- Scopri di più sulla replica in Cloud SQL.