Ripristino di emergenza gestito
Questo documento fornisce una panoramica del piano di recupero di BigQuery gestito e su come implementarlo per i tuoi dati e carichi di lavoro.
Panoramica
BigQuery supporta scenari di ripristino di emergenza in caso di interruzione totale della regione. Il ripristino di emergenza di BigQuery si basa sulla replica dei set di dati tra regioni per gestire il failover dello spazio di archiviazione. Dopo aver creato una replica di un set di dati in una regione secondaria, puoi controllare il comportamento di failover per l'elaborazione e l'archiviazione per mantenere la continuità aziendale durante un'interruzione. Dopo un failover, puoi accedere alla capacità di calcolo (slot) e ai set di dati replicati nella regione promossa. Il ripristino di emergenza è supportato solo con la versione Enterprise Plus.
Il ripristino di emergenza gestito esegue un hard failover quando viene avviato un failover.
In un hard failover, le repliche della prenotazione e del set di dati nella regione secondaria vengono promosse immediatamente alla regione principale, anche se la regione principale precedente è inattiva, senza attendere la replica dei dati non replicati. Per questo motivo, durante il failover forzato può verificarsi una perdita di dati. Potrebbe essere necessario rieseguire nella regione di destinazione tutti i job che hanno eseguito il commit dei dati nella regione di origine prima del valore replication_time
della replica dopo il failover.
Per attivare ripristino di emergenza, devi creare una prenotazione della versione Enterprise Plus nella regione principale, ovvero la regione in cui si trova il set di dati prima del failover. La capacità di calcolo in standby nella regione accoppiata è inclusa nella prenotazione di Enterprise Plus. Poi, colleghi un set di dati a questa prenotazione per attivare il failover per quel set di dati. Puoi collegare un set di dati a una prenotazione solo se il set di dati è sottoposto a backfill e ha le stesse località principali e secondarie accoppiate della prenotazione. Dopo che un set di dati è stato collegato a una prenotazione di failover, solo le prenotazioni Enterprise Plus possono scrivere in questi set di dati e non puoi eseguire una promozione di replica tra regioni sul set di dati. Puoi leggere i set di dati associati a una prenotazione di failover con qualsiasi modello di capacità. Per ulteriori informazioni sulle prenotazioni, consulta Introduzione alla gestione dei carichi di lavoro.
La capacità di calcolo della regione principale è disponibile nella regione secondaria subito dopo un failover. Questa disponibilità si applica al valore di base della prenotazione, indipendentemente dal fatto che venga utilizzato o meno.
Devi scegliere attivamente il failover nell'ambito dei test o in risposta a un reale disastro. Non dovresti eseguire il failover più di una volta in un intervallo di 10 minuti. Negli scenari di replica dei dati, il backfill si riferisce al processo di compilazione di una replica di un set di dati con i dati storici esistenti prima della creazione o dell'attivazione della replica. I set di dati devono completare il backfill prima che tu possa eseguire il failover al set di dati.
Il seguente diagramma mostra l'architettura del ripristino di emergenza gestito:
Limitazioni
Le seguenti limitazioni si applicano al ripristino di emergenza di BigQuery:
Il ripristino di emergenza di BigQuery è soggetto alle stesse limitazioni della replica dei set di dati tra regioni.
La scalabilità automatica dopo un failover dipende dalla disponibilità della capacità di calcolo nella regione secondaria. Nella regione secondaria è disponibile solo la linea di base della prenotazione.
La visualizzazione
INFORMATION_SCHEMA.RESERVATIONS
non contiene dettagli sul failover.Se hai più prenotazioni di failover con lo stesso progetto di amministrazione, ma i set di dati allegati utilizzano posizioni secondarie diverse, non utilizzare una prenotazione di failover con i set di dati allegati a una prenotazione di failover diversa.
Se vuoi convertire le prenotazioni esistenti in una prenotazione di failover, le prenotazioni esistenti non possono avere più di 1000 assegnazioni.
Località
Quando crei una prenotazione per il failover, sono disponibili le seguenti regioni:
Codice posizione | Nome regione | Descrizione regione |
---|---|---|
ASIA |
||
ASIA-EAST1 |
Taiwan | |
ASIA-SOUTHEAST1 |
Singapore | |
AU |
||
AUSTRALIA-SOUTHEAST1 |
Sydney | |
AUSTRALIA-SOUTHEAST2 |
Melbourne | |
CA |
||
NORTHAMERICA-NORTHEAST1 |
Montréal | |
NORTHAMERICA-NORTHEAST2 |
Toronto | |
EU |
||
EU |
Multiregione UE | |
EUROPE-CENTRAL2 |
Varsavia | |
EUROPE-NORTH1 |
Finlandia | |
EUROPE-SOUTHWEST1 |
Madrid | |
EUROPE-WEST1 |
Belgio | |
EUROPE-WEST3 |
Francoforte | |
EUROPE-WEST4 |
Paesi Bassi | |
EUROPE-WEST8 |
Milano | |
EUROPE-WEST9 |
Parigi | |
IN |
||
ASIA-SOUTH1 |
Mumbai | |
ASIA-SOUTH2 |
Delhi | |
US |
||
US |
Multiregione Stati Uniti | |
US-CENTRAL1 |
Iowa | |
US-EAST1 |
Carolina del Sud | |
US-EAST4 |
Virginia del Nord | |
US-SOUTH1 |
Dallas | |
US-WEST1 |
Oregon | |
US-WEST2 |
Los Angeles | |
US-WEST3 |
Salt Lake City | |
US-WEST4 |
Las Vegas |
Le coppie di regioni devono essere selezionate tra ASIA
, AU
, CA
, EU
, IN
o US
.
Ad esempio, una regione all'interno di US
non può essere accoppiata a una regione all'interno di EU
.
Se il tuo set di dati BigQuery si trova in una località multiregionale, non puoi utilizzare le seguenti coppie di regioni. Questa limitazione garantisce che la prenotazione per il failover e i dati siano separati geograficamente dopo la replica. Per saperne di più sulle regioni contenute nelle regioni multiple, consulta Regioni multiple.
us-central1
-us
multiregioneus-west1
-us
multiregioneeu-west1
-eu
multiregioneeu-west4
-eu
multiregione
Prima di iniziare
- Assicurati di disporre dell'autorizzazione
bigquery.reservations.update
Identity and Access Management (IAM) per aggiornare le prenotazioni. - Assicurati di disporre di set di dati esistenti configurati per la replica. Per ulteriori informazioni, consulta Replicare un set di dati.
Replica turbo
La replica di ripristino di emergenza utilizza la modalità Turbo per una replica più rapida dei dati tra le regioni, che riduce il rischio di perdita di dati e aiuta a supportare un servizio ininterrotto in seguito a un'interruzione a livello di regione.
La replica turbo non si applica all'operazione di backfill iniziale. Al termine dell'operazione di backfill iniziale, la replica turbo è progettata per replicare i set di dati in una singola coppia di regioni di failover con una replica secondaria entro 60 minuti, a condizione che la quota di larghezza di banda non venga superata e non si verifichino errori utente.
Quota
Devi disporre della capacità di calcolo scelta nella regione secondaria prima di configurare una prenotazione per il failover. Se non è disponibile quota nella regione secondaria, non puoi configurare la prenotazione. Per ulteriori informazioni, consulta Quote e limiti.
La larghezza di banda della replica turbo ha una quota. Per ulteriori informazioni, consulta Quote e limiti.
Prezzi
La configurazione del ripristino di emergenza gestito richiede i seguenti piani tariffari:
Capacità di calcolo: devi acquistare la versione Enterprise Plus.
Replica turbo: il ripristino di emergenza si basa sulla replica turbo durante la replica. L'addebito avviene in base ai byte fisici e su una base di replica per GiB fisico. Per ulteriori informazioni, consulta Prezzi per il trasferimento di dati per la replica dei dati per la replica turbo.
Spazio di archiviazione: i byte di spazio di archiviazione nella regione secondaria vengono fatturati allo stesso prezzo dei byte di spazio di archiviazione nella regione principale. Per maggiori informazioni, consulta la pagina Prezzi dello spazio di archiviazione.
I clienti devono pagare solo per la capacità di calcolo nella regione principale. La capacità di calcolo secondaria (in base alla linea di base della prenotazione) è disponibile nella regione secondaria senza costi aggiuntivi. Gli slot inattivi non possono utilizzare la capacità di calcolo secondaria se la prenotazione non è andata a buon fine.
Se devi eseguire letture non aggiornate nella regione secondaria, devi acquistare capacità di calcolo aggiuntiva.
Creare o modificare una prenotazione Enterprise Plus
Prima di collegare un set di dati a una prenotazione, devi creare una prenotazione Enterprise Plus o modificare una prenotazione esistente e configurarla per ripristino di emergenza.
Crea una prenotazione
Seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel menu di navigazione, fai clic su Gestione della capacità e poi su Crea prenotazione.
Nel campo Nome prenotazione, inserisci un nome per la prenotazione.
Nell'elenco Località, seleziona la località.
Nell'elenco Versione, seleziona la versione Enterprise Plus.
Nell'elenco Selettore dimensione massima prenotazione, seleziona la dimensione massima della prenotazione.
(Facoltativo) Nel campo Slot di base, inserisci il numero di slot di base per la prenotazione.
Il numero di slot con scalabilità automatica disponibili viene determinato sottraendo il valore Slot di riferimento dal valore Dimensione massima della prenotazione. Ad esempio, se crei una prenotazione con 100 slot di riferimento e una dimensione massima della prenotazione di 400, la prenotazione avrà 300 slot con scalabilità automatica. Per saperne di più sugli slot di riferimento, consulta Utilizzare le prenotazioni con gli slot di riferimento e con la scalabilità automatica.
Nell'elenco Località secondaria, seleziona la località secondaria.
Per disattivare la condivisione degli slot inattivi e utilizzare solo la capacità dello slot specificata, fai clic sul pulsante di attivazione/disattivazione Ignora gli slot inattivi.
Per espandere la sezione Impostazioni avanzate, fai clic sulla freccia di espansione
.(Facoltativo) Per impostare la concorrenza dei job target, attiva l'opzione Ignora la concorrenza automatica target dei job e inserisci un valore per Concorrenza dei job target. La suddivisione degli slot viene visualizzata nella tabella Stima dei costi. Un riepilogo della prenotazione viene visualizzato nella tabella Riepilogo della capacità.
Fai clic su Salva.
La nuova prenotazione è visibile nella scheda Prenotazioni di slot.
SQL
Per creare una prenotazione, utilizza l'istruzione DDL (Data Definition Language) CREATE RESERVATION
.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
CREATE RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` OPTIONS ( slot_capacity = NUMBER_OF_BASELINE_SLOTS, edition = ENTERPRISE_PLUS, secondary_location = SECONDARY_LOCATION);
Sostituisci quanto segue:
ADMIN_PROJECT_ID
: l'ID del progetto di amministrazione proprietario della risorsa di prenotazione.LOCATION
: la posizione della prenotazione. Se selezioni una posizione BigQuery Omni, l'opzione di versione è limitata alla versione Enterprise.RESERVATION_NAME
: il nome della prenotazione.Il nome deve iniziare e terminare con una lettera minuscola o un numero e contenere solo lettere minuscole, numeri e trattini.
NUMBER_OF_BASELINE_SLOTS
: il numero di slot di riferimento da allocare alla prenotazione. Non puoi impostare l'opzioneslot_capacity
e l'opzioneedition
nella stessa prenotazione.SECONDARY_LOCATION
: la località secondaria della prenotazione. In caso di interruzione del servizio, tutti i set di dati collegati a questa prenotazione verranno sottoposti a failover in questa posizione.
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
Modificare una prenotazione esistente
Seleziona una delle seguenti opzioni:
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel pannello di navigazione, vai alla sezione Gestione della capacità.
Fai clic sulla scheda Prenotazioni slot.
Trova la prenotazione che vuoi aggiornare.
Espandi l'opzione
Azioni.Fai clic su Modifica.
Nel campo Località secondaria, inserisci la località secondaria.
Fai clic su Salva.
SQL
Per aggiungere o modificare una sede secondaria a una prenotazione, utilizza
l'istruzione DDL ALTER RESERVATION SET OPTIONS
.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
ALTER RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` SET OPTIONS ( secondary_location = SECONDARY_LOCATION);
Sostituisci quanto segue:
ADMIN_PROJECT_ID
: l'ID del progetto di amministrazione proprietario della risorsa di prenotazione.LOCATION
: la posizione della prenotazione, ad esempioeurope-west9
.RESERVATION_NAME
: il nome della prenotazione. Il nome deve iniziare e terminare con una lettera minuscola o un numero e contenere solo lettere minuscole, numeri e trattini.SECONDARY_LOCATION
: la località secondaria della prenotazione. In caso di interruzione del servizio, tutti i set di dati collegati a questa prenotazione verranno sottoposti a failover in questa posizione.
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
Allega un set di dati a una prenotazione
Per attivare ripristino di emergenza per la prenotazione creata in precedenza, completa i seguenti passaggi. Il set di dati deve essere già configurato per la replica nelle stesse regioni principali e secondarie della prenotazione. Per ulteriori informazioni, consulta Replica dei set di dati tra regioni.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel menu di navigazione, fai clic su Gestione della capacità, quindi sulla scheda Prenotazioni di slot.
Fai clic sulla prenotazione a cui vuoi allegare un set di dati.
Fai clic sulla scheda Disaster recovery.
Fai clic su Aggiungi set di dati di failover.
Inserisci il nome del set di dati da associare alla prenotazione.
Fai clic su Aggiungi.
SQL
Per collegare un set di dati a una prenotazione, utilizza l'istruzione DDL ALTER SCHEMA SET OPTIONS
.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
ALTER SCHEMA `DATASET_NAME` SET OPTIONS ( failover_reservation = ADMIN_PROJECT_ID.RESERVATION_NAME);
Sostituisci quanto segue:
DATASET_NAME
: il nome del set di dati.ADMIN_PROJECT_ID.RESERVATION_NAME
: il nome della prenotazione a cui vuoi associare il set di dati.
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
Scollegare un set di dati da una prenotazione
Per interrompere la gestione del comportamento di failover di un set di dati tramite una prenotazione, scollega il set di dati dalla prenotazione. La replica principale corrente del set di dati non viene modificata né vengono rimosse le repliche del set di dati esistenti. Per ulteriori informazioni sulla rimozione delle repliche del set di dati dopo il disaccoppiamento di un set di dati, vedi Rimuovere la replica del set di dati.
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel menu di navigazione, fai clic su Gestione della capacità, quindi sulla scheda Prenotazioni di slot.
Fai clic sulla prenotazione da cui vuoi scollegare un set di dati.
Fai clic sulla scheda Disaster recovery.
Espandi l'opzione
Azioni per la replica principale del set di dati.Fai clic su Rimuovi.
SQL
Per scollegare un set di dati da una prenotazione, utilizza l'istruzione DDL ALTER SCHEMA SET OPTIONS
.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
ALTER SCHEMA `DATASET_NAME` SET OPTIONS ( failover_reservation = NULL);
Sostituisci quanto segue:
DATASET_NAME
: il nome del set di dati.
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
Avvia un failover
In caso di interruzione del servizio a livello di regione, devi eseguire manualmente il failover della prenotazione alla località utilizzata dalla replica. Il trasferimento della prenotazione include anche eventuali set di dati associati. Per eseguire manualmente il failover di una prenotazione:
Console
Nella console Google Cloud, vai alla pagina BigQuery.
Nel menu di navigazione, fai clic su Disaster recovery.
Fai clic sul nome della prenotazione a cui vuoi eseguire il failover.
Fai clic su Failover.
SQL
Per aggiungere o modificare una località secondaria a una prenotazione, utilizza l'istruzione DDL ALTER RESERVATION SET OPTIONS
e imposta is_primary
su TRUE
.
Nella console Google Cloud, vai alla pagina BigQuery.
Nell'editor di query, inserisci la seguente istruzione:
ALTER RESERVATION `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME` SET OPTIONS ( is_primary = TRUE);
Sostituisci quanto segue:
ADMIN_PROJECT_ID
: l'ID del progetto di amministrazione proprietario della risorsa di prenotazione.LOCATION
: la posizione della prenotazione, ad esempioeurope-west9
.RESERVATION_NAME
: il nome della prenotazione. Il nome deve iniziare e terminare con una lettera minuscola o un numero e contenere solo lettere minuscole, numeri e trattini.PRIMARY_STATUS
: uno stato booleano che indica se la prenotazione è la replica principale.
Fai clic su
Esegui.
Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.
Monitoraggio
Per determinare lo stato delle repliche, esegui una query sulla
visualizzazione INFORMATION_SCHEMA.SCHEMATA_REPLICAS
. Ad esempio:
SELECT schema_name, replica_name, creation_complete, replica_primary_assigned, replica_primary_assignment_complete FROM `region-LOCATION`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS WHERE schema_name="my_dataset"
La seguente query restituisce i job degli ultimi sette giorni che non andrebbero a buon fine se i relativi set di dati fossero set di dati di failover:
WITH non_epe_reservations AS ( SELECT project_id, reservation_name FROM `PROJECT_ID.region-LOCATION`.INFORMATION_SCHEMA.RESERVATIONS WHERE edition != 'ENTERPRISE_PLUS' ) SELECT * FROM ( SELECT job_id FROM ( SELECT job_id, reservation_id, ARRAY_CONCAT(referenced_tables, [destination_table]) AS all_referenced_tables, query FROM `PROJECT_ID.region-LOCATION`.INFORMATION_SCHEMA.JOBS WHERE creation_time BETWEEN TIMESTAMP_SUB(CURRENT_TIMESTAMP(), INTERVAL 7 DAY) AND CURRENT_TIMESTAMP() ) A, UNNEST(all_referenced_tables) AS referenced_table ) jobs LEFT OUTER JOIN non_epe_reservations ON ( jobs.reservation_id = CONCAT( non_epe_reservations.project_id, ':', 'LOCATION', '.', non_epe_reservations.reservation_name)) WHERE CONCAT(jobs.project_id, ':', jobs.dataset_id) IN UNNEST( [ 'PROJECT_ID:DATASET_ID', 'PROJECT_ID:DATASET_ID']);
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto.DATASET_ID
: l'ID set di dati.LOCATION
: la posizione.
Passaggi successivi
Scopri di più sulla replica dei set di dati tra regioni.
Scopri di più sull'affidabilità.