Questa pagina descrive come eseguire l'upgrade della versione principale del database eseguendo l'upgrade del tuo l'istanza Cloud SQL in loco anziché eseguendo la migrazione dei dati.
Introduzione
I fornitori di software per i database rilasciano periodicamente nuove versioni principali che contengono nuove funzionalità, miglioramenti delle prestazioni e della sicurezza. Cloud SQL acquisisce nuove versioni dopo vengono rilasciate. Dopo che Cloud SQL offre il supporto per una nuova versione principale, puoi eseguire l'upgrade delle istanze per mantenere aggiornato il database.
Puoi eseguire l'upgrade della versione del database di un'istanza in loco oppure eseguendo la migrazione i tuoi dati. Upgrade in loco sono un modo più semplice per eseguire l'upgrade della versione principale dell'istanza. Non è necessario migrare i dati o modificare le stringhe di connessione dell'applicazione. Grazie agli upgrade in loco, puoi mantenere il nome, l'indirizzo IP e altre impostazioni dell'istanza attuale dopo l'upgrade. Gli upgrade in loco non richiedono lo spostamento di file di dati, possono essere completate più rapidamente. In alcuni casi, il tempo di inattività è più breve di quanto comporta la migrazione dei dati.
L'operazione di upgrade in loco di Cloud SQL per SQL Server utilizza la classe SQL Upgrade del server in loco un'utilità.Pianifica un upgrade della versione principale
Scegli una versione principale di destinazione.
gcloud
Per informazioni sull'installazione e su come iniziare a utilizzare gcloud CLI, consulta Installare con gcloud CLI. Per informazioni sull'avvio di Cloud Shell, Utilizzare Cloud Shell.
per verificare le versioni del database che puoi scegliere come target per un upgrade in loco. sull'istanza, segui questi passaggi:
- Esegui questo comando.
- Nell'output del comando,
individua la sezione con l'etichetta
upgradableDatabaseVersions
. - Ogni sottosezione restituisce una versione del database disponibile per l'upgrade. In ogni sottosezione, esamina i seguenti campi.
majorVersion
: la versione principale che puoi scegliere come target per l'upgrade in loco.name
: la stringa di versione del database che include il parametro principale.displayName
: il nome visualizzato della versione del database.
gcloud sql instances describe INSTANCE_NAME
Sostituisci INSTANCE_NAME con il nome dell'istanza.
REST v1
per verificare quali versioni del database di destinazione sono disponibili per un esegui l'upgrade della versione in loco, utilizza Metodo
instances.get
dell'API Cloud SQL Admin.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- INSTANCE_NAME: il nome dell'istanza.
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
upgradableDatabaseVersions: { major_version: "SQLSERVER_2022_STANDARD" name: "SQLSERVER_2022_STANDARD" display_name: "SQL Server 2022 Standard" }
REST v1beta4
per verificare quali versioni del database di destinazione sono disponibili per i principali eseguire l'upgrade in loco di un'istanza, utilizza Metodo
instances.get
dell'API Cloud SQL Admin.Prima di utilizzare i dati della richiesta, effettua le seguenti sostituzioni:
- INSTANCE_NAME: il nome dell'istanza.
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME
Per inviare la richiesta, espandi una delle seguenti opzioni:
Dovresti ricevere una risposta JSON simile alla seguente:
upgradableDatabaseVersions: { major_version: "SQLSERVER_2022_STANDARD" name: "SQLSERVER_2022_STANDARD" display_name: "SQL Server 2022 Standard" }
Per l'elenco completo delle versioni del database supportate da Cloud SQL, consulta Versioni del database e criteri di versione.
Considera le funzionalità offerte in ogni versione e indirizzo principale del database incompatibilità.
Vedi le funzionalità non più disponibili e le modifiche che provocano un errore di SQL Server.
Le nuove versioni principali introducono modifiche incompatibili che potrebbero richiedere modificare il codice dell'applicazione, lo schema o le impostazioni del database. Prima del giorno esegui l'upgrade dell'istanza di database, rivedi le note di rilascio scegliere come target la versione principale per determinare le incompatibilità da .
Testa l'upgrade con una prova.
Esegui una prova del processo di upgrade end-to-end in un ambiente di test prima di eseguire l'upgrade del database di produzione. Puoi clonare l'istanza per creare una copia identica dei dati su cui testare il processo di upgrade.
Oltre a verificare che l'upgrade sia stato completato correttamente, per garantire che l'applicazione comporti il comportamento previsto nell'upgrade per configurare un database.
Decidi quando eseguire l'upgrade.
L'upgrade richiede che l'istanza non sia disponibile per un periodo di nel tempo. Pianifica l'upgrade in un periodo di tempo in cui l'attività del database è bassa.
Esegui l'upgrade della versione principale del database in loco
Quando avvii un'operazione di upgrade, Cloud SQL controlla innanzitutto della tua istanza per assicurarti che sia compatibile per un upgrade. Dopo aver verificato la configurazione, Cloud SQL rende l'istanza non disponibile, esegue un backup prima dell'upgrade, esegue l'upgrade, ed esegue un backup dopo l'upgrade.
Console
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
- Fai clic su Modifica.
- Nella sezione Informazioni istanza, fai clic sul pulsante Esegui l'upgrade e conferma di voler passare alla pagina di upgrade.
- Nella pagina Scegli una versione del database, fai clic su Versione database per upgrade e seleziona una delle versioni principali del database disponibili.
- Fai clic su Continua.
- Nella casella ID istanza, inserisci il nome dell'istanza e fai clic sul pulsante Avvia upgrade.
Verifica che la versione principale del database di cui è stato eseguito l'upgrade venga visualizzata sotto il nome dell'istanza nella pagina Panoramica dell'istanza.
gcloud
Avvia l'upgrade.
Utilizza la
gcloud sql instances patch
con il flag--database-version
.Prima di eseguire il comando, sostituisci quanto segue:
- INSTANCE_NAME: il nome dell'istanza.
- DATABASE_VERSION: l'enumerazione per la versione principale del database, che deve essere successiva alla versione corrente. Specifica una versione del database per una versione principale disponibile come destinazione dell'upgrade per l'istanza. Puoi ottenere questa enum come primo passaggio della procedura Pianifica per l'upgrade. Se hai bisogno di un elenco completo delle enum delle versioni del database, vedi SqlDatabaseEnums.
gcloud sql instances patch INSTANCE_NAME \ --database-version=DATABASE_VERSION
Il completamento degli upgrade delle versioni principali richiede diversi minuti. Potresti vedere un messaggio che indica che l'operazione richiede più tempo del previsto. Puoi ignora questo messaggio o esegui
gcloud sql operations wait
per ignorare il messaggio.Ottieni il nome dell'operazione di upgrade.
Utilizza la
gcloud sql operations list
con il flag--instance
.Prima di eseguire il comando, sostituisci la variabile INSTANCE_NAME con il nome dell'istanza.
gcloud sql operations list --instance=INSTANCE_NAME
Monitora lo stato dell'upgrade.
Utilizza la
gcloud sql operations describe
.Prima di eseguire il comando, sostituisci la variabile OPERATION con il nome dell'operazione di upgrade recuperate nel passaggio precedente.
gcloud sql operations describe OPERATION
REST v1
Avvia l'upgrade in loco.
Utilizza una richiesta PATCH con
instances:patch
.Prima di utilizzare i dati della richiesta, sostituisci queste variabili:
- PROJECT_ID: l'ID del progetto.
- INSTANCE_NAME: il nome dell'istanza.
Metodo HTTP e URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME
Corpo JSON della richiesta:
{ "databaseVersion": DATABASE_VERSION }
Sostituisci DATABASE_VERSION con l'enumerazione per la versione principale del database, che deve essere successiva alla versione corrente. Specifica una versione del database per una versione principale disponibile come destinazione dell'upgrade per l'istanza. Puoi ottenere questa enum come primo passaggio della procedura Pianifica per l'upgrade. Se hai bisogno di un elenco completo delle enum delle versioni del database, vedi SqlDatabaseVersion.
Ottieni il nome dell'operazione di upgrade.
Utilizza una richiesta GET con
operations.list
dopo aver sostituito PROJECT_ID con l'ID del progetto.Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations
Monitora lo stato dell'upgrade.
Utilizza una richiesta GET con
operations.get
dopo aver sostituito le seguenti variabili:- PROJECT_ID: l'ID del progetto.
- OPERATION_NAME: il nome dell'operazione di upgrade recuperato in passaggio precedente.
Metodo HTTP e URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operation/OPERATION_NAME
Terraform
Per aggiornare la versione del database, utilizza una risorsa Terraform e il provider Terraform per Google Cloud, versione 4.34.0 o successive.
Applica le modifiche
Per applicare la configurazione Terraform a un progetto Google Cloud, completa i passaggi nella le sezioni seguenti.
Prepara Cloud Shell
- Avvia Cloud Shell.
-
Imposta il progetto Google Cloud predefinito dove 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 in Terraform di configurazione del deployment.
Prepara la directory
Ogni file di configurazione Terraform deve avere una directory (inoltre chiamato modulo principale).
-
In Cloud Shell, crea una directory e un nuovo
all'interno di quella directory. Il nome del file deve contenere
.tf
, ad esempiomain.tf
. In questo tutorial, il file è 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 nuovo oggetto
main.tf
.Facoltativamente, copia il codice da GitHub. Opzione consigliata quando lo snippet Terraform fa parte di una soluzione end-to-end.
- Esamina e modifica i parametri di esempio da applicare al tuo ambiente.
- Salva le modifiche.
-
Inizializza Terraform. Devi eseguire questa operazione una sola volta per directory.
terraform init
Facoltativamente, per utilizzare la versione più recente del provider Google, includi
-upgrade
:terraform init -upgrade
Applica le modifiche
-
Rivedi la configurazione e verifica che le risorse che Terraform creerà o
che l'aggiornamento soddisfi le tue aspettative:
terraform plan
Apporta le correzioni necessarie alla configurazione.
-
Applica la configurazione Terraform eseguendo questo comando e inserendo
yes
alla richiesta:terraform apply
Attendi finché Terraform non visualizzi il messaggio "Applicazione completata!". .
- Apri il progetto Google Cloud per visualizzare i risultati. Nella console Google Cloud, vai alle risorse nella UI per assicurarti create o aggiornate da Terraform.
Elimina le modifiche
Per eliminare le modifiche:
- Per disabilitare la protezione dall'eliminazione, nel file di configurazione Terraform imposta la classe
Argomento
deletion_protection
perfalse
.deletion_protection = "false"
- Applica la configurazione Terraform aggiornata eseguendo il comando seguente
inserendo
yes
alla richiesta:terraform apply
-
Rimuovi le risorse applicate in precedenza con la tua configurazione Terraform eseguendo questo comando e inserendo
yes
al prompt:terraform destroy
Quando effettui una richiesta di upgrade in loco, Cloud SQL esegue prima controllo prima dell'upgrade. Se Cloud SQL determina che l'istanza non è è tutto pronto per un upgrade, la richiesta di upgrade non va a buon fine e viene visualizzato un messaggio che suggerisce puoi risolvere il problema. Vedi anche Risolvere i problemi di una versione principale upgrade.
Backup automatici degli upgrade
Quando esegui un upgrade della versione principale, Cloud SQL esegue automaticamente due backup on demand, denominati backup di upgrade:
- Il primo backup dell'upgrade è il backup prima dell'upgrade, che viene eseguito immediatamente prima di iniziare l'upgrade. Puoi usare questo backup per ripristinare dell'istanza di database allo stato della versione precedente.
- Il secondo backup dell'upgrade è il backup successivo all'upgrade, che viene eseguito. immediatamente dopo le nuove scritture nell'istanza del database di cui è stato eseguito l'upgrade.
Quando visualizzi il tuo elenco di
i backup,
i backup dell'upgrade sono elencati con il tipo On-demand
. I backup dell'upgrade sono etichettati in modo
in modo da poterle identificare facilmente.
Ad esempio, se esegui l'upgrade
da SQL Server Enterprise 2017 a SQL Server Enterprise 2019, la soluzione
il backup è etichettato come Pre-upgrade backup, SQLSERVER_2017_ENTERPRISE to SQLSERVER_2019_ENTERPRISE.
e il backup successivo all'upgrade è etichettato come
Post-upgrade backup, SQLSERVER_2019_ENTERPRISE from SQLSERVER_2017_ENTERPRISE.
Come per altri backup on demand, i backup di upgrade vengono mantenuti finché non li elimini o eliminare l'istanza.
Esegui l'upgrade del livello di compatibilità del database
La compatibilità del database livello determina il comportamento del database rispetto all'applicazione che gestisce. L'impostazione del livello di compatibilità del database assicura che le compatibilità con le versioni precedenti di SQL Server e si riferisce a Transact-SQL e Query Modifiche dell'ottimizzatore. Quando viene eseguito l'upgrade della versione di un database di un'istanza SQL Server, vengono conservati i livelli di compatibilità dei database esistenti, può continuare a funzionare sulla versione più recente di SQL Server. L'upgrade del livello di compatibilità ti consente di trarre vantaggio da nuove funzionalità, query miglioramenti dell'elaborazione e altre modifiche.
Dopo aver eseguito l'upgrade della versione del motore del database di un'istanza, quando un'applicazione gestita dal database è pronta, esegui l'upgrade del database il livello di compatibilità di ogni database nell'istanza. Quando la compatibilità sia impostato sulla versione più recente, i database vengono aggiornati con le ultime funzionalità il miglioramento delle prestazioni.
Per eseguire l'upgrade del livello di compatibilità del database, segui questi passaggi:
Individuare il livello di compatibilità attuale del tuo database.
Ad esempio, per SQL Server 2017, il livello di compatibilità predefinito è 140. A controlla il livello di compatibilità attuale per il tuo database, esegui questo in Transact-SQL, dopo la sostituzione di
DATABASE_NAME
con il nome del database sulla tua istanza SQL Server.
USE DATABASE_NAME GO SELECT compatibility_level FROM sys.databases WHERE name = 'DATABASE_NAME'
Determina il livello di compatibilità target.
Identifica la designazione del livello di compatibilità predefinito per l'upgrade versione del database per determinare il livello di compatibilità target per configurare un database. Ad esempio, per SQL Server 2022, il livello di compatibilità predefinito è 160. Consulta la tabella che mappa le nuove versioni di SQL Server con compatibilità .
Valuta le differenze tra i livelli di compatibilità attuali e target.
Prima di eseguire l'upgrade del livello di compatibilità, esamina le differenze nel sistema il comportamento tra il tuo attuale livello di compatibilità e il tuo target livello di compatibilità. Consulta l'elenco completo delle differenze tra compatibilità .
Raccogli una base di dati dei carichi di lavoro.
Prima di eseguire l'upgrade del livello di compatibilità, raccogli una base di carico di lavoro utilizzando SQL Server Query Google Store, in modo da poter successivamente identificare e gestire le query pregresse. Utilizzi Query Negozio per acquisire query e piani relativi a un'attività tipica ciclo per stabilire una base di riferimento per le prestazioni. Per un flusso di lavoro guidato, utilizza lo strumento Query Ottimizzazione Assistente in SQL Server Management Studio.
Esegui l'upgrade del livello di compatibilità.
Per modificare il livello di compatibilità per il database, esegui questo comando in Transact-SQL, dopo la sostituzione di
DATABASE_NAME
con il nome del database sulla tua istanza SQL Server
TARGET_COMPATIBILITY_LEVEL
con il livello di compatibilità target.ALTER DATABASE DATABASE_NAME SET COMPATIBILITY_LEVEL = TARGET_COMPATIBILITY_LEVEL; GO
Raccogli i dati dei carichi di lavoro di cui è stato eseguito l'upgrade.
Raccogli i dati dei carichi di lavoro di cui è stato eseguito l'upgrade utilizzando Query Store per il confronto e di regressione lineare e il rilevamento di regressione.
Gestire le query pregresse.
In gran parte, lo strumento per ottimizzare le query cambia i livelli di compatibilità aggiornati. a migliorare le prestazioni. Tuttavia, di tanto in tanto, alcune query potrebbero regredisce nelle prestazioni. File pregresso dell'archivio query Query consente di identificare le query in pregressa e consente per forzare l'ultimo piano di query valido noto. SQL Server offre inoltre piano correzione, che può passare automaticamente all'ultimo piano noto nel caso in cui regressione lineare delle query.
Completa l'upgrade della versione principale
Dopo aver eseguito l'upgrade dell'istanza principale, esegui test di accettazione per assicurarti che le prestazioni del sistema aggiornato sono quelle previste.
Risolvere i problemi relativi a un upgrade della versione principale
Cloud SQL restituisce un messaggio di errore se tenti di eseguire un upgrade non valido Ad esempio, se l'istanza contiene flag di database non validi per nuova versione.
Se la richiesta di upgrade non va a buon fine, controlla la sintassi della richiesta. Se ha una struttura valida, prova a esaminare i suggerimenti seguenti.
Visualizza i log degli upgrade
Se si verificano problemi con una richiesta di upgrade valida, Cloud SQL
pubblica i log degli errori in projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fsqlserver.err
. Ogni voce di log contiene un'etichetta con
per identificare l'istanza con l'errore di upgrade.
Cerca questi errori di upgrade e risolvili.
Per visualizzare i log degli errori:
-
Nella console Google Cloud, vai alla pagina Istanze Cloud SQL.
- Per aprire la pagina Panoramica di un'istanza, fai clic sul nome dell'istanza.
Nel riquadro Operazioni e log della pagina Panoramica dell'istanza, fai clic su il Link Visualizza i log degli errori di SQL Server.
Si apre la pagina Esplora log.
Visualizza i log come segue:
- Per visualizzare l'elenco di tutti i log degli errori in un progetto, seleziona il nome log nel campo Log nome.
Per ulteriori informazioni sui filtri delle query, consulta Impostazioni avanzate query.
- Per filtrare i log degli errori di upgrade per una singola istanza, inserisci il
seguente query nella casella Cerca in tutti i campi, dopo aver sostituito
DATABASE_ID
con l'ID progetto seguito dal nome dell'istanza in questo formato:
project_id:instance_name
.resource.type="cloudsql_database" resource.labels.database_id="DATABASE_ID" logName : "projects/PROJECT_ID/logs/cloudsql.googleapis.com%2Fsqlserver.err"
Ad esempio, per filtrare i log degli errori di upgrade in base a un'istanza denominata
shopping-db
in esecuzione nel progettobuylots
; usa la seguente query filtro:resource.type="cloudsql_database" resource.labels.database_id="buylots:shopping-db" logName : "projects/buylots/logs/cloudsql.googleapis.com%2Fsqlserver.err"
Ripristina alla versione principale precedente
Se il sistema di database aggiornato non funziona come previsto, potrebbe essere necessario ripristinare la versione precedente dell'istanza. Per farlo, puoi ripristinare prima dell'upgrade a un'istanza di ripristino di Cloud SQL, che è una che esegue la versione precedente all'upgrade.
Per ripristinare la versione precedente, segui questi passaggi:
Identifica il backup prima dell'upgrade.
Consulta Backup automatici degli upgrade.
Crea un'istanza di recupero.
Crea un nuovo Cloud SQL di Compute Engine utilizzando la versione principale che Cloud SQL era in esecuzione al momento del backup precedente all'upgrade. Imposta gli stessi flag e le stesse istanza impostazioni che l'originale utilizzati dall'istanza.
Ripristina il backup prima dell'upgrade.
Ripristina il backup prima dell'upgrade all'istanza di ripristino. L'operazione potrebbe richiedere diversi minuti.
Aggiungi le tue repliche di lettura.
Se utilizzavi repliche di lettura, aggiungile singolarmente.
Connetti la tua applicazione.
Una volta ripristinato il sistema del database, aggiorna l'applicazione con i dettagli sull'istanza di ripristino e sulle sue repliche di lettura. Puoi riprendere la pubblicazione il traffico sulla versione precedente l'upgrade del database.
Limitazioni
Questa sezione elenca le limitazioni per un upgrade della versione principale in loco.
- Non puoi eseguire un upgrade della versione principale in loco su una replica esterna.
Domande frequenti
Quando esegui l'upgrade della versione principale del database potrebbero sorgere le seguenti domande.
- Sì. La tua istanza rimane non disponibile per un periodo di tempo mentre Cloud SQL esegue l'upgrade.
- Quanto tempo richiede un upgrade?
L'upgrade di una singola istanza in genere richiede meno di 10 minuti. Se la configurazione dell'istanza utilizza un numero ridotto di vCPU o memoria, l'upgrade potrebbe richiedere più tempo.
Se l'istanza ospita troppi database o tabelle oppure se i database sono molto grandi, l'upgrade potrebbe richiedere ore o addirittura il timeout perché il tempo di upgrade corrisponde al numero di oggetti nei database. Se devi eseguire l'upgrade di più istanze, il tempo totale di upgrade verrà incrementato in modo proporzionale.
- Posso monitorare ogni passaggio del processo di upgrade?
- Mentre Cloud SQL ti consente di monitorare se un'operazione di upgrade è ancora in corso i progressi fatti, non puoi monitorare i singoli passaggi di ogni upgrade.
- Posso annullare l'upgrade dopo averlo avviato?
- No, non puoi annullare un upgrade una volta avviato. Se l'upgrade non va a buon fine, Cloud SQL recupera automaticamente l'istanza nella versione precedente.
- Cosa succede alle mie impostazioni durante un upgrade?
Quando esegui un upgrade in loco della versione principale, Cloud SQL conserva il database tra cui nome istanza, indirizzo IP, valori dei flag configurati in modo esplicito e dati utente. Tuttavia, il valore predefinito delle variabili di sistema potrebbe cambiare.
Per saperne di più, consulta Configurare i flag di database. Se un determinato o il valore non è più supportato nella tua versione di destinazione, Cloud SQL rimuove automaticamente il flag durante l'upgrade.
Passaggi successivi
- Scopri di più sulle opzioni per la connessione a un'istanza.
- Scopri di più sull'importazione e sull'esportazione dei dati.
- Scopri di più sull'impostazione dei flag di database.