Ripristino di emergenza gestito

Questo documento fornisce una panoramica dell'emergenza gestita da BigQuery il ripristino di emergenza e come implementarla per i dati e i 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 la replica del set di dati in una regione secondaria, controllare il comportamento di failover di computing e archiviazione al fine di mantenere la continuità 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. Qualsiasi job che ha eseguito il commit dei dati la regione di origine prima del valore della replica replication_time potrebbe dover essere eseguito nuovamente nella regione di destinazione dopo il failover.

Per abilitare il ripristino di emergenza, devi creare una Prenotazione della versione Enterprise Plus nella regione principale, ovvero della 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 alleghi un set di dati in questa prenotazione per abilitare 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 viene collegate a una prenotazione di failover, solo le prenotazioni Enterprise Plus scrivere su questi set di dati e non puoi eseguire tra regioni di replica sul set di dati. Puoi dai set di dati collegati a una prenotazione di failover con qualsiasi modello di capacità. Per maggiori informazioni informazioni sulle prenotazioni, consulta Introduzione al carico di lavoro dei modelli.

La capacità di calcolo della regione principale è disponibile nella regione secondaria subito dopo un failover. Questa disponibilità si applica ai tuoi di base della prenotazione, indipendentemente dal fatto che venga utilizzata o meno.

Devi scegliere attivamente di eseguire il failover nell'ambito del test o in risposta a un una vera catastrofe. Non dovresti eseguire il failover più di una volta in un intervallo di 10 minuti. Nella scenari di replica dei dati, per backfill il processo di compilazione di un set di dati con dati storici esistenti prima che la replica creato o che è diventato attivo. 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:

Architettura gestita per il ripristino di emergenza.

Limitazioni

Al ripristino di emergenza di BigQuery si applicano le seguenti limitazioni:

  • Il ripristino di emergenza di BigQuery è soggetto alle stesse limitazioni come replica del set di dati tra regioni.

  • Il supporto per regione si basa su due regioni bucket.

  • Se il set di dati BigQuery si trova su più regioni, non puoi e configurare le seguenti coppie di regioni. Questa limitazione garantisce che sono separati geograficamente dopo la replica. Per ulteriori informazioni contenuti all'interno di più regioni, consulta Più regioni.

    • us-central1 - us (più regioni)
    • us-west1 - us (più regioni)
    • eu-west1 - eu (più regioni)
    • eu-west4 - eu (più regioni)
  • La scalabilità automatica dopo un failover dipende dalla disponibilità della capacità di calcolo nell'infrastruttura regione. Nella regione secondaria è disponibile solo la base di riferimento 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.

Prima di iniziare

  1. Assicurati di avere il bigquery.reservations.update Autorizzazione Identity and Access Management (IAM) per aggiornare le prenotazioni.
  2. Assicurati di disporre di set di dati esistenti configurati per la replica. Per ulteriori informazioni, vedi Replica un set di dati.

Replica turbo

La replica per il ripristino di emergenza utilizza la modalità Turbo per una replica dei dati più rapida tra le regioni, che riduce il rischio di perdita di dati e supporta il servizio senza interruzioni a seguito di un'interruzione regionale.

La replica turbo non si applica all'operazione di backfill iniziale. Dopo il l'operazione di backfill iniziale è stata completata, la replica turbo è progettata replicare i set di dati in una singola coppia di regioni di failover con una replica secondaria entro 60 minuti, purché la quota di larghezza di banda non viene superato e non ci sono errori utente.

Quota

Prima di configurare un'istanza, devi avere la capacità di calcolo scelta nella regione secondaria nella prenotazione di failover. Se non è disponibile una 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 la sezione 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 per GB fisico replicato. Per maggiori informazioni, consulta Prezzi di Cloud Storage.

  • 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. Inattivo gli slot machine non possono utilizzare la capacità di calcolo secondaria a meno che la prenotazione non abbia avuto esito negativo.

Se devi eseguire letture inattive nella regione secondaria, devi acquistare ulteriore capacità di calcolo.

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 il disaster recovery.

Crea una prenotazione

Seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel menu di navigazione, fai clic su Gestione della capacità e poi su Crea prenotazione.

  3. Nel campo Nome prenotazione, inserisci un nome per la prenotazione.

  4. Seleziona la località nell'elenco Località.

  5. Nell'elenco Versione, seleziona la versione Enterprise Plus.

  6. Nell'elenco Selettore Dimensione massima prenotazione, seleziona la dimensione massima della prenotazione.

  7. (Facoltativo) Nel campo Slot di riferimento, inserisci il numero di valori di riferimento slot machine 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 base di 100 slot e una dimensione massima della prenotazione di 400, la prenotazione include 300 con scalabilità automatica. Per ulteriori informazioni sugli slot di riferimento, consulta Utilizzo delle prenotazioni con base di riferimento e scalabilità automatica slot machine.

  8. Nell'elenco Località secondaria, seleziona la località secondaria.

  9. Per disattivare la condivisione degli slot inattivi e utilizza solo la capacità degli slot specificata, fai clic su Ignora gli slot inattivi pulsante di attivazione/disattivazione.

  10. Per espandere la sezione Impostazioni avanzate, fai clic sull'icona freccia di espansione.

  11. Facoltativo: per impostare la contemporaneità target dei job, fai clic su Override attiva l'opzione di contemporaneità automatica target dei job, quindi inserisci un valore in Target Contemporaneità dei job. La suddivisione degli slot viene visualizzata nella tabella Stima dei costi. R il riepilogo della prenotazione è visualizzato nel Riepilogo della capacità tabella.

  12. Fai clic su Salva.

La nuova prenotazione è visibile nella scheda Prenotazioni di slot.

SQL

Per creare una prenotazione, utilizza Dichiarazione DDL (Data Definition Language) di CREATE RESERVATION.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. 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 progetto del progetto di amministrazione proprietario della risorsa di prenotazione.
    • LOCATION: il località della prenotazione. Se selezioni un BigQuery Omni località, la tua 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'opzione slot_capacity e l'opzione edition nella stessa prenotazione.
    • SECONDARY_LOCATION: la località secondaria della prenotazione. Nel caso di un'interruzione, verrà eseguito il failover di tutti i set di dati collegati a questa prenotazione questa posizione.

  3. Fai clic su Esegui.

Per ulteriori informazioni su come eseguire le query, consulta Eseguire una query interattiva.

Modificare una prenotazione esistente

Seleziona una delle seguenti opzioni:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel riquadro di navigazione, vai alla sezione Gestione della capacità.

  3. Fai clic sulla scheda Prenotazioni slot.

  4. Trova la prenotazione che vuoi aggiornare.

  5. Espandi Azioni.

  6. Fai clic su Modifica.

  7. Nel campo Località secondaria, inserisci la località secondaria.

  8. Fai clic su Salva.

SQL

Per aggiungere o modificare una sede secondaria a una prenotazione, utilizza l'istruzione DDL ALTER RESERVATION SET OPTIONS.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor 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 progetto del progetto di amministrazione proprietario della risorsa di prenotazione.
    • LOCATION: la posizione della prenotazione, ad esempio europe-west9.
    • RESERVATION_NAME: il nome del prenotazione. Il nome deve iniziare e terminare con una lettera minuscola o un numero e contenere solo lettere minuscole, numeri e trattini.

    • SECONDARY_LOCATION: il secondario località della prenotazione. In caso di interruzione del servizio, tutti i set di dati collegati a questa prenotazione verranno sottoposti a failover in questa posizione.

  3. 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 il disaster recovery 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, vedi Replica del set di dati tra regioni.

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel menu di navigazione, fai clic su Gestione della capacità, quindi Fai clic sulla scheda Prenotazioni slot.

  3. Fai clic sulla prenotazione a cui vuoi allegare un set di dati.

  4. Fai clic sulla scheda Ripristino di emergenza.

  5. Fai clic su Aggiungi set di dati di failover.

  6. Inserisci il nome del set di dati da associare alla prenotazione.

  7. Fai clic su Aggiungi.

SQL

Per collegare un set di dati a una prenotazione, utilizza ALTER SCHEMA SET OPTIONS Istruzione DDL.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nell'editor 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.

  3. Fai clic su Esegui.

Per ulteriori informazioni su come eseguire le 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

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel menu di navigazione, fai clic su Gestione della capacità, quindi Fai clic sulla scheda Prenotazioni slot.

  3. Fai clic sulla prenotazione da cui vuoi scollegare un set di dati.

  4. Fai clic sulla scheda Ripristino di emergenza.

  5. Espandi l'opzione Azioni per la replica principale del set di dati.

  6. Fai clic su Rimuovi.

SQL

Per scollegare un set di dati da una prenotazione, utilizza l'istruzione DDL ALTER SCHEMA SET OPTIONS.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. 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.

  3. 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 la località utilizzata dalla replica. Il trasferimento della prenotazione include anche eventuali set di dati associati. Per eseguire manualmente il failover di una prenotazione:

Console

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. Nel menu di navigazione, fai clic su Ripristino di emergenza.

  3. Fai clic sul nome della prenotazione a cui vuoi eseguire il failover.

  4. 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.

  1. Nella console Google Cloud, vai alla pagina BigQuery.

    Vai a BigQuery

  2. 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: il location della prenotazione, ad esempio europe-west9.
    • RESERVATION_NAME: il nome del 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.

  3. Fai clic su Esegui.

Per ulteriori informazioni su come eseguire query, consulta Eseguire una query interattiva.

Monitoraggio

Per determinare lo stato delle tue repliche, esegui una query INFORMATION_SCHEMA.SCHEMATA_REPLICAS visualizzazione. 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 loro set di dati erano 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 località.

Passaggi successivi