Questa pagina descrive lo spostamento di un'istanza in Spanner.
Puoi spostare la tua istanza Spanner da qualsiasi istanza configurazione a qualsiasi altra configurazione dell'istanza, tra cui configurazioni a livello di una o più regioni e configurazioni a più regioni. Il trasferimento dell'istanza non causa tempi di riposo e Spanner continua a fornire le consuete garanzie di transazione, inclusa la coerenza forte, durante il trasferimento.
Puoi anche spostare l'istanza dalla configurazione dell'istanza di origine
a una configurazione dell'istanza personalizzata (ad esempio, una configurazione di base nam3
con una replica di sola lettura us-west2
). Poiché non puoi aggiornare la topologia
delle configurazioni di istanze esistenti, devi prima creare una nuova configurazione
dell'istanza personalizzata con la topologia che preferisci. Dopo aver creato il nuovo
configurazione dell'istanza, puoi spostare l'istanza dall'istanza di origine
configurazione alla nuova configurazione dell'istanza personalizzata.
Perché spostare l'istanza Spanner?
I vantaggi dello spostamento dell'istanza includono:
- Aumenta la disponibilità: ottieni una disponibilità del 99,999% senza tempi di inattività dopo aver eseguito il trasferimento da una regione a due regioni o a più regioni.
- Riduci la latenza: riduci la latenza e aumenta la copertura geografica con altre repliche di sola lettura tramite un trasferimento da una regione a due regioni o da una regione a più regioni o da più regioni a più regioni.
- Riduci i costi: riduci i costi orari passando da una configurazione a due regioni o multiregionale a una configurazione regionale.
- Database in co-locazione: colloca il database Spanner con l'applicazione client spostando l'istanza in una posizione più ottimizzata.
Prezzi
Quando sposti un'istanza, le configurazioni delle istanze di origine e di destinazione sono soggetti a costi orari per calcolo e archiviazione. Una volta completato lo spostamento, ti verrà addebitato il costo per l'archiviazione dell'istanza configurazione della destinazione.
Se stai spostando l'istanza in una nuova configurazione di istanze regionali, a due regioni o multiregionali, potresti essere soggetto ad addebiti per il trasferimento di dati in uscita. Per ulteriori informazioni, consulta Prezzi di Spanner.
Limitazioni
- Per spostare l'istanza, è necessario disporre di almeno 1 nodo (1000 unità di elaborazione).
- Non puoi spostare l'istanza tra progetti e account Google Cloud.
- Non puoi spostare un'istanza che utilizza la versione Standard direttamente da una configurazione di istanze regionali a una configurazione di istanze a due o più regioni. Devi prima eseguire l'upgrade della versione della tua istanza alla versione Enterprise Plus, quindi muoverla.
- Non puoi spostare un'istanza di prova gratuita di Spanner. Puoi spostare l'istanza dopo aver eseguito l'upgrade a un'istanza a pagamento.
- Se hai richieste attive che utilizzano un endpoint di servizio a livello di regione su una delle risorse dell'istanza, il trasferimento dell'istanza influisce su tutte le richieste che utilizzano l'endpoint regionale perché l'applicazione delle norme a livello di regione blocca l'accesso alle istanze cross-region. Le richieste che usano un endpoint globale non interessate.
- I backup di Spanner sono specifici di una configurazione dell'istanza e non sono inclusi durante lo spostamento di un'istanza. Per Per saperne di più, consulta la sezione Backup.
- Le seguenti API vengono disattivate durante lo spostamento di un'istanza:
InstanceAdmin.DeleteInstance
InstanceAdmin.UpdateInstance
DatabaseAdmin.CreateDatabase
DatabaseAdmin.UpdateDatabaseDdl
(disattivato sedefault_leader
è specificato nella richiesta).DatabaseAdmin.RestoreDatabase
DatabaseAdmin.CreateBackup
DatabaseAdmin.CreateBackupSchedule
DatabaseAdmin.CopyBackup
- Non puoi spostare le istanze che contengono CMEK abilitate o Microsoft SQL Server.
- Se un database ha un leader predefinito modificato, la selezione viene conservata se nella configurazione dell'istanza di destinazione viene indicata una regione di lettura/scrittura e questa configurazione è multiregione. Se la configurazione della destinazione è regionale o meno includi la regione di lettura/scrittura denominata, la selezione leader predefinita è cancellato.
- Lo spostamento di un'istanza modifica l'attributo di configurazione dell'istanza
in esecuzione in un'istanza Compute Engine. Se gestisci le risorse Spanner tramite
automazione, assicurati di preparare e risolvere eventuali incoerenze che
sorgeranno.
- Ad esempio, se utilizzi Terraform per gestire le istanze e i database Spanner e attivi
terraform apply --auto-approve
per mantenere sincronizzate le risorse, tutte le istanze e le risorse secondarie vengono eliminate quando spostiamo l'istanza. Aggiorna la configurazione di conseguenza per evitare l'eliminazione e la perdita di dati. Consulta: Opzioni di applicazione Terraform per ulteriori informazioni sul comandoapply
.
- Ad esempio, se utilizzi Terraform per gestire le istanze e i database Spanner e attivi
- Durante il trasferimento dell'istanza, lo strumento di monitoraggio e i grafici potrebbero mostrare i dati sia nell'origine che nella destinazione configurazioni di istanze o potrebbe riflettere solo le prestazioni di un'istanza configurazione.
- Se hai configurato lo strumento di scalabilità automatica open source, non
è necessario disattivarlo. L'operazione non riesce perché
InstanceAdmin.UpdateInstance
(utilizzato per le modifiche ai nodi e alle unità di elaborazione) è disattivato. Non puoi spostare un'istanza se la funzionalità di autoscaling gestito di Spanner è attivata. Per spostare l'istanza, devi disattivare il gestore della scalabilità automatica gestito, spostare l'istanza e riattivare il gestore della scalabilità automatica gestito.
Inoltre, se utilizzi la scalabilità automatica, devi eseguire il provisioning di nodi sufficienti per l'utilizzo massimo della CPU secondo il numero massimo di suggerimenti annotato, quindi disabilita la scalabilità automatica prima sposterai l'istanza.
Considerazioni sulle prestazioni
Quando un'istanza viene spostata, le latenze di lettura/scrittura sono più elevate e il tasso di interruzione delle transazioni è maggiore. L'utilizzo della CPU durante il trasferimento potrebbe aumentare al 100% perché lo spostamento dell'istanza viene eseguito utilizzando la CPU di riserva di cui è stato eseguito il provisioning per l'utente. Tuttavia, lo spostamento di un'istanza non comporta tempi di inattività. L'ora necessario per trasferire un'istanza dipende da vari fattori, tra cui le dimensioni i database, il numero di nodi e il tipo di spostamento (ad es. da regione a regione più regioni).
Dopo aver spostato un'istanza, le sue prestazioni variano in base i dettagli della configurazione dell'istanza. Ad esempio: due regioni e configurazioni multiregionali hanno generalmente una latenza di scrittura e una latenza di lettura più alta rispetto a configurazioni regionali.
Backup
Quando sposti un'istanza, i backup nell'istanza di origine non vengono spostati automaticamente la nuova configurazione della destinazione. Il trasferimento dell'istanza viene interrotto se esistono backup nella configurazione dell'istanza di origine quando avvii il trasferimento. È importante copiare i backup e prendere in considerazione il piano di recupero dei dati prima di spostare l'istanza.
Se nell'istanza di origine sono presenti backup che devi conservare, ti consigliamo di copiarli nella configurazione dell'istanza di destinazione e in un'altra istanza con la stessa configurazione dell'istanza di origine da spostare. In questo modo:
- Puoi copiare i backup nella configurazione dell'istanza di destinazione immediatamente al termine del trasferimento dell'istanza.
- Se devi annullare lo spostamento dell'istanza, puoi anche ripristinare rapidamente i backup dall'istanza con la stessa configurazione dell'istanza di origine.
Dopo aver copiato i backup in un'altra istanza, devi eliminare eventuali i backup nell'istanza di origine prima di poter spostare l'istanza. Quindi, una volta lo spostamento dell'istanza viene completato, hai una copia del backup nella destinazione configurazione. Puoi anche creare un nuovo backup.
Per scoprire di più sulla copia dei backup e sui costi associati, consulta Copiare un backup.
Come spostare un'istanza
Puoi spostare un'istanza con la console Google Cloud, Cloud Shell e la CLI gcloud utilizzando i comandi gcloud
.
Prerequisiti
Prima di spostare la configurazione dell'istanza, assicurati di aver letto le sezioni Limitazioni e Considerazioni sul rendimento. Quindi, segui questa procedura:
- Verifica di disporre dell'autorizzazione IAM
spanner.instances.update
sull'istanza di origine. - Se applicabile, sposta le istanze non di produzione (ad esempio di test e di staging) prima di spostare le istanze di produzione per contribuire a valutare e comprendere l'impatto del rendimento sui carichi di lavoro durante lo spostamento di un'istanza.
- Quando sposti un'istanza Spanner, il processo di spostamento elimina i tag istanza creati in Data Catalog. Per conservare i tag, devi esportarli prima del trasferimento e importarli dopo. Per ulteriori informazioni, consulta Esportare e importare i tag.
Per le best practice, segui anche queste linee guida:
- Testa i carichi di lavoro relativi al rendimento nelle istanze non di produzione nella configurazione dell'istanza di destinazione prima di spostare l'istanza di produzione. Prova Sposta un'istanza temporanea simile a quella di produzione per avere un'idea di quanto tempo ci vorrà per spostare l'istanza di produzione.
- Verifica che non siano presenti hotspot nei tuoi database utilizzando Key Visualizer.
- Rivedi per assicurarti che la quota di nodi sia sufficiente nella configurazione dell'istanza di destinazione per supportare l'utilizzo di picco previsto dell'istanza. Per ulteriori informazioni, vedi Quote di Spanner e Limiti.
- Assicurati che il picco di utilizzo CPU di l'istanza è inferiore al 40% per la configurazione dell'istanza che hai spostato la quantità di spazio di archiviazione per nodo è inferiore a 1 tebibyte (TiB).
- Non apportare modifiche all'istanza durante lo spostamento. Questo include la modifica del numero di nodi delle istanze, la modifica degli schemi dei database, creando o eliminando database e creando o eliminando backup.
Se sposti la tua istanza in base a questi suggerimenti, di solito viene completata entro 24 ore. Tuttavia, a seconda dell'applicazione carico di lavoro, il tempo di completamento potrebbe essere più lungo o più breve.
Sposta un'istanza
Console Google Cloud
Fai clic su Attiva Cloud Shell nella parte superiore della console Google Cloud.
Una sessione di Cloud Shell si apre all'interno di un nuovo frame nella in fondo alla console Google Cloud e viene visualizzato un prompt della riga di comando. L'inizializzazione della sessione può richiedere alcuni secondi.
Utilizza la
gcloud spanner instances move
per spostare l'istanza.gcloud spanner instances move INSTANCE_ID \ --target-config=TARGET_CONFIG
Sostituisci quanto segue:
- INSTANCE_ID: l'identificatore permanente dell'istanza che vuoi spostare.
- TARGET_CONFIG: un identificatore permanente della configurazione dell'istanza in cui vuoi spostare l'istanza. Il nuovo targeting geografico
località dell'istanza. Può essere una regione, una doppia regione
configurazione di più regioni o di istanze personalizzate (ad esempio,
nam3
,us-central1
ocustom-nam3-us-west2
).
Ad esempio, per spostare l'istanza test-instance
dall'istanza attuale
configurazione dell'istanza in nam3
, esegui questo comando:
gcloud spanner instances move test-instance --target-config=nam3
(Facoltativo) Se vuoi aggiungere una replica di sola lettura, us-west2
, alla configurazione dell'istanza di base nam3
:
Clona la configurazione di base e aggiungi la replica di sola lettura:
gcloud spanner instance-configs create custom-nam3-us-west2 \ --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
Sposta l'istanza
test-instance
dalla sua configurazione attuale a questa nuova configurazione dell'istanzacustom-nam3-us-west2
:gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
Interfaccia a riga di comando gcloud
Utilizza il comando gcloud spanner instances move
per spostare l'istanza.
gcloud spanner instances move INSTANCE_ID \
--target-config=TARGET_CONFIG
Sostituisci quanto segue:
- INSTANCE_ID: l'identificatore permanente dell'istanza che vuoi spostare.
- TARGET_CONFIG: un identificatore permanente dell'istanza
in cui vuoi spostare l'istanza. Il nuovo targeting geografico
località dell'istanza. Può essere una singola regione, una doppia regione o
configurazione di istanze multiregionali (ad esempio,
nam3
,us-central1
, ocustom-nam3-us-west2
).
Ad esempio, per spostare l'istanza test-instance
dall'istanza attuale
configurazione dell'istanza in nam3
, esegui questo comando:
gcloud spanner instances move test-instance --target-config=nam3
(Facoltativo) Se vuoi aggiungere una replica di sola lettura, us-west2
, alla configurazione dell'istanza di base nam3
:
Clona la configurazione di base e aggiungi la replica di sola lettura:
gcloud spanner instance-configs create custom-nam3-us-west2 \ --clone-config=nam3 --add-replicas=location=us-west2, type=READ_ONLY
Sposta l'istanza
test-instance
dall'istanza attuale configurazione a questa nuova configurazione dell'istanzacustom-nam3-us-west2
:gcloud spanner instances move test-instance --target-config=custom-nam3-us-west2
Come monitorare l'avanzamento dello spostamento e dell'annullamento delle istanze
Puoi usare gcloud spanner operations describe
o creare un modello personalizzato
Dashboard di Cloud Monitoring per monitorare l'avanzamento del trasferimento di un'istanza.
Visualizzare l'avanzamento delle operazioni di trasferimento e annullamento
Per monitorare l'avanzamento dello spostamento di un'istanza o dell'annullamento dello spostamento di un'istanza.
utilizza gcloud spanner operations describe
. Questo comando richiede l'ID operazione dello spostamento dell'istanza in corso
operativa.
Per recuperare l'ID operazione per lo spostamento dell'istanza, esegui:
gcloud spanner operations list --instance="INSTANCE_ID"
Sostituisci quanto segue:
- INSTANCE_ID: l'identificatore permanente dell'istanza che vuoi spostare.
L'output mostra un elenco di operazioni a lunga esecuzione, inclusa l'operazione di trasferimento dell'istanza.
Esegui il comando
gcloud spanner operations describe
per visualizzare l'avanzamento percentuale e stato:gcloud spanner operations describe OPERATION_ID --instance=INSTANCE_ID
Sostituisci quanto segue:
- OPERATION_ID: l'ID operazione dell'operazione di spostamento dell'istanza che vuoi controllare.
- INSTANCE_ID: l'ID dell'istanza che vuoi verifica.
Monitorare un'operazione di spostamento di un'istanza
Puoi creare una dashboard di Cloud Monitoring personalizzata per visualizzare e monitorare durante lo spostamento dell'istanza, un'operazione a lunga esecuzione con e implicazioni per il servizio.
I grafici Spazio di archiviazione totale e Spazio di archiviazione totale del database per database nella dashboard sono utili per monitorare l'avanzamento del trasferimento. Puoi vedere che lo spazio di archiviazione nella configurazione di origine diminuisce gradualmente, mentre quello nella configurazione di destinazione aumenta.
Console Google Cloud
- Scarica il file
move-instance-dashboard.json
. Questo file contiene le informazioni necessarie per completare una dashboard personalizzata in Monitoring. -
Nella console Google Cloud, vai alla pagina Dashboard:
Se utilizzi la barra di ricerca per trovare questa pagina, seleziona il risultato con il sottotitolo Monitoring.
- Nella pagina Panoramica delle dashboard, fai clic su Crea dashboard.
- Nella barra degli strumenti della dashboard, fai clic sul menu a discesa Impostazioni dashboard. Quindi, selezionare JSON e poi Editor JSON.
- Nel riquadro Editor JSON, copia i contenuti del
file
move-instance-dashboard.json
che hai scaricato e incollali nell' editor. - Per applicare le modifiche alla dashboard, fai clic su Applica modifiche. Se non vuoi usare questa dashboard, torna alle dashboard pagina Panoramica.
- Dopo aver creato la dashboard, fai clic su Aggiungi filtro. Quindi seleziona
project_id
oinstance_id
per monitorare l'avanzamento del trasferimento dell'istanza.
Interfaccia a riga di comando gcloud
- Scarica il
move-instance-dashboard.json
. Questo file contiene le informazioni necessarie per completare una dashboard personalizzata in Monitoring. Per creare una dashboard in un progetto, utilizza il comando
gcloud monitoring dashboards create
:gcloud monitoring dashboards create --config-from-file=move-instance-dashboard.json
Per ulteriori informazioni, consulta la
gcloud monitoring dashboards create
riferimento.
Come annullare lo spostamento di un'istanza
Puoi annullare solo il trasferimento di un'istanza ancora in corso. Se vuoi se ripristini uno spostamento di un'istanza già completato, devi avviarne uno nuovo.
Puoi utilizzare gcloud spanner operations cancel
per annullare le operazioni di spostamento delle istanze. L'annullamento non è istantaneo
e richiede all'incirca lo stesso tempo trascorso dall'inizio del trasferimento. Questo perché i dati devono essere riportati nell'istanza di origine
configurazione.
Questo comando richiede l'ID operazione dello spostamento dell'istanza in corso.
Recupera l'ID operazione eseguendo:
gcloud spanner operations list --type=INSTANCE --instance="INSTANCE_ID" --filter="done:False AND metadata.@type:MoveInstanceMetadata
Sostituisci quanto segue:
- INSTANCE_ID: l'identificatore permanente dell'istanza che che vuoi spostare.
L'output mostra un elenco di operazioni di spostamento delle istanze in corso.
Esegui il comando
gcloud spanner operations cancel
per annullare il trasferimento dell'istanza:gcloud spanner operations cancel OPERATION_ID
Sostituisci quanto segue:
- OPERATION_ID: l'ID operazione del trasferimento dell'istanza che vuoi annullare.
Passaggi successivi
- Scopri di più sulle configurazioni a livello di regione, a due regioni e multi-regione di Spanner.
- Scopri di più su regioni e zone di Google Cloud.