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 nel caso di interruzione totale della regione. Il ripristino di emergenza di BigQuery si basa replica del set di dati tra regioni per gestire il failover dell'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 set di dati replicati nella regione promossa. Il ripristino di emergenza è supportata solo con il modello Enterprise Plus dell'app.

All'avvio del failover, il ripristino di emergenza gestito esegue un failover completo. In un failover completo, la prenotazione e le repliche del set di dati nella regione secondaria vengono immediatamente promossi a principali, anche se la regione principale precedente è senza attendere la replica dei dati non replicati. A causa di Durante il failover completo, può verificarsi una perdita di dati. Qualsiasi job in cui è stato 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 in cui si trova il set di dati prima del failover. Capacità di calcolo in standby è inclusa nella prenotazione Enterprise Plus. Poi alleghi un set di dati in questa prenotazione per abilitare il failover per il set di dati. Puoi solo collegare un set di dati a una prenotazione se il set di dati viene sottoposto a backfill e ha lo stesso associate come prenotazione. Dopo che un set di dati viene collegate a una prenotazione di failover, solo le prenotazioni Enterprise Plus possono leggere o scrivere su questi set di dati e non puoi eseguire di replica sul set di dati. Per ulteriori 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 di un test o in risposta a un una vera catastrofe. Non dovresti eseguire il failover più di una volta in un periodo di 10 minuti. Nel 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. Prima di poter, i set di dati devono completare il backfill eseguire il failover sul 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. Non puoi configurare le seguenti coppie di 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'ambiente regione. Nella regione secondaria è disponibile solo la base di riferimento della prenotazione.

  • La INFORMATION_SCHEMA.RESERVATIONS vista non ha un failover i dettagli.

  • Se hai più prenotazioni di failover con la stessa amministrazione ma i cui set di dati collegati utilizzano località secondarie diverse, non utilizzare una prenotazione di failover con i set di dati collegati a un'istanza prenotazione.

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

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 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 su Turbo durante la replica. Tu vengono addebitati in base ai byte fisici e ai GB fisici replicati. Per ulteriori informazioni, consulta i prezzi di Cloud Storage.

  • Spazio di archiviazione: i byte di archiviazione nella regione secondaria sono fatturati allo stesso prezzo e il numero di byte di archiviazione nella regione principale. Per ulteriori informazioni, vedi Archiviazione pricing.

I clienti devono pagare solo per la capacità di calcolo nella regione principale. La capacità di calcolo secondaria (in base alla base della prenotazione) è disponibile in 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 nel puoi acquistare capacità di calcolo Enterprise Plus aggiuntiva nella regione secondaria.

Creare o modificare una prenotazione Enterprise Plus

Prima di collegare un set di dati a una prenotazione, devi creare prenotare Enterprise Plus o modificare una prenotazione esistente e per il ripristino di emergenza.

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 e poi fai clic su Crea prenotazione.

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

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

  5. Nell'elenco Edizione, 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 è determinato sottraendo il valore degli slot di riferimento dalla prenotazione massima [size]. 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 la 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à .

  12. Fai clic su Salva.

La nuova prenotazione è visibile nella scheda Prenotazioni 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 query, inserisci la seguente istruzione:

    CREATE RESERVATION
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`
    OPTIONS (
      slot_capacity = NUMBER_OF_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 valore località della prenotazione. Se selezioni un BigQuery Omni località, la tua versione è limitata alla versione Enterprise.
    • 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.

    • NUMBER_OF_SLOTS: il numero di slot da allocare alla prenotazione. Il numero di slot non allocati deve essere sufficiente in l'impegno. Non puoi impostare l'opzione slot_capacity e l'opzione edition nella stessa prenotazione.
    • SECONDARY_LOCATION: il secondario località 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, vedi 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 pannello di navigazione, vai alla sezione Gestione della capacità.

  3. Fai clic sulla scheda Prenotazioni slot.

  4. Trova la prenotazione da 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 località secondaria in una prenotazione, utilizza la ALTER RESERVATION 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 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: il valore 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.

    • SECONDARY_LOCATION: il secondario località 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, vedi Eseguire una query interattiva.

Collega un set di dati a una prenotazione

Per abilitare il ripristino di emergenza per la prenotazione creata in precedenza, completa la i seguenti passaggi. Il set di dati deve essere già configurato per la replica nel le 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 collegare un set di dati.

  4. Fai clic sulla scheda Ripristino di emergenza.

  5. Fai clic su Aggiungi set di dati associato.

  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 = RESERVATION_NAME);
    

    Sostituisci quanto segue:

    • DATASET_NAME: il nome del del set di dati.

    • 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, vedi 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 failover della prenotazione include anche eventuali e 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 per cui vuoi eseguire il failover.

  4. Fai clic su Failover.

SQL

Per aggiungere o modificare una località secondaria in una prenotazione, utilizza la ALTER RESERVATION SET OPTIONS Istruzione DDL e imposta is_primary su TRUE.

  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 (
      is_primary = TRUE);
    

    Sostituisci quanto segue:

    • ADMIN_PROJECT_ID: l'ID progetto del progetto di amministrazione proprietario della risorsa di prenotazione.
    • LOCATION: il valore 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 dichiara se la prenotazione è la replica principale.

  3. Fai clic su Esegui.

Per ulteriori informazioni su come eseguire le query, vedi 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-us`.INFORMATION_SCHEMA.SCHEMATA_REPLICAS
WHERE
  schema_name="project2.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 del set di dati.
  • LOCATION: la località.

Passaggi successivi