Pemulihan dari bencana (disaster recovery) yang terkelola

Dokumen ini memberikan ringkasan tentang bencana terkelola BigQuery pemulihan data dan cara menerapkannya untuk data dan beban kerja Anda.

Ringkasan

BigQuery mendukung skenario pemulihan dari bencana dalam kasus total pemadaman layanan region. Pemulihan dari bencana (disaster recovery) BigQuery bergantung pada replikasi set data lintas region untuk mengelola failover penyimpanan tersebut. Setelah membuat replika set data di region sekunder, Anda dapat mengontrol perilaku failover untuk komputasi dan penyimpanan guna mempertahankan bisnis kontinuitas selama pemadaman. Setelah failover, Anda dapat mengakses kapasitas komputasi (slot) dan set data replika di region yang dipromosikan. Pemulihan dari bencana adalah hanya didukung dengan paket Enterprise Plus edisi.

Pemulihan dari bencana terkelola akan melakukan failover berat saat failover dimulai. Dalam failover keras, replika reservasi dan set data di region sekunder segera dipromosikan menjadi wilayah utama, meskipun wilayah utama sebelumnya mati, tanpa menunggu replikasi dari data yang tidak direplikasi. Karena ini, kehilangan data dapat terjadi selama failover keras. Setiap pekerjaan yang meng-commit data di region sumber sebelum nilai replika replication_time mungkin perlu dijalankan kembali di region tujuan setelah failover.

Untuk mengaktifkan pemulihan dari bencana, Anda diharuskan membuat Reservasi edisi Enterprise Plus di region utama, yang merupakan region region tempat set data berada sebelum failover. Kapasitas komputasi standby berpasangan yang tercakup dalam reservasi Enterprise Plus. Kemudian, lampirkan yang ditetapkan ke reservasi ini untuk mengaktifkan failover set data tersebut. Anda hanya dapat melampirkan set data ke reservasi jika set data diisi ulang dan memiliki lokasi utama dan sekunder yang dipasangkan sebagai reservasi. Setelah {i>dataset<i} dilampirkan ke reservasi failover, hanya reservasi Enterprise Plus dapat membaca atau menulis ke set data tersebut dan Anda tidak dapat melakukan operasi lintas region replikasi pada set data. Untuk selengkapnya informasi tentang reservasi, lihat Pengantar workload pengelolaan akun.

Kapasitas komputasi region utama Anda tersedia di region sekunder segera setelah failover. Ketersediaan ini berlaku untuk dasar pemesanan, baik itu digunakan maupun tidak.

Anda harus secara aktif memilih untuk gagal sebagai bagian dari pengujian atau sebagai respons terhadap bencana yang sebenarnya. Anda tidak boleh gagal lebih dari sekali dalam periode 10 menit. Di beberapa skenario replikasi data, pengisian ulang mengacu pada proses mengisi replika set data dengan data historis yang sudah ada sebelum replikanya dibuat atau menjadi aktif. Set data harus menyelesaikan pengisian ulang sebelum Anda dapat gagal saat beralih ke {i>dataset<i}.

Diagram berikut menunjukkan arsitektur pemulihan dari bencana yang dikelola:

Arsitektur pemulihan dari bencana (disaster recovery) yang terkelola.

Batasan

Batasan berikut berlaku untuk pemulihan dari bencana (disaster recovery) BigQuery:

  • Pemulihan dari bencana (disaster recovery) BigQuery memiliki batasan yang sama sebagai replikasi set data lintas region.

  • Dukungan wilayah didasarkan pada dual-region bucket.

  • Jika set data BigQuery Anda berada di multi-region, Anda tidak dapat melakukan konfigurasi pasangan region berikut. Keterbatasan ini memastikan bahwa data terpisah secara geografis setelah replikasi. Untuk mengetahui informasi selengkapnya tentang di beberapa region, lihat Multi-region.

    • Multi-region us-central1 - us
    • Multi-region us-west1 - us
    • Multi-region eu-west1 - eu
    • Multi-region eu-west4 - eu
  • Penskalaan otomatis setelah failover bergantung pada ketersediaan kapasitas komputasi di platform sekunder teritorial Anda. Hanya dasar pengukuran reservasi yang tersedia di region sekunder.

  • INFORMATION_SCHEMA.RESERVATIONS tampilan tidak memiliki failover spesifikasi pendukung.

  • Jika Anda memiliki beberapa reservasi failover dengan administrasi yang sama tetapi yang {i>dataset<i} yang dilampirkan menggunakan lokasi sekunder yang berbeda, jangan gunakan satu reservasi failover dengan set data dilampirkan ke failover yang berbeda pemesanan tambahan.

  • Jika Anda ingin mengonversi reservasi yang ada menjadi reservasi failover, reservasi yang ada tidak boleh memiliki lebih dari 1.000 tugas.

Sebelum memulai

  1. Pastikan Anda memiliki bigquery.reservations.update Izin Identity and Access Management (IAM) untuk memperbarui reservasi.
  2. Pastikan Anda sudah memiliki set data yang dikonfigurasi untuk replikasi. Untuk informasi selengkapnya, lihat Mereplikasi set data.

Kuota

Anda harus sudah memilih kapasitas komputasi di region sekunder sebelum mengonfigurasi pemesanan failover. Jika tidak ada kuota yang tersedia di region sekunder, Anda tidak dapat mengonfigurasi pemesanan. Untuk informasi selengkapnya, lihat Kuota dan batasan ini.

Harga

Konfigurasi pemulihan dari bencana (disaster recovery) yang terkelola memerlukan paket harga berikut:

  • Kapasitas komputasi: Anda harus membeli edisi Enterprise Plus.

  • Replikasi turbo: Pemulihan dari bencana mengandalkan Turbo replikasi selama replikasi. Anda ditagih berdasarkan byte fisik dan per GB fisik yang direplikasi. Untuk informasi selengkapnya, lihat Harga Cloud Storage.

  • Penyimpanan: Byte penyimpanan di region sekunder ditagih dengan harga yang sama dengan di region utama. Untuk informasi selengkapnya, lihat Penyimpanan harga.

Pelanggan hanya diwajibkan membayar kapasitas komputasi di region utama. Kapasitas komputasi sekunder (berdasarkan dasar pengukuran reservasi) tersedia di region sekunder tanpa biaya tambahan. Tidak Ada Aktivitas slot tidak dapat menggunakan kapasitas komputasi sekunder kecuali terjadi kegagalan pemesanan.

Jika Anda perlu melakukan pembacaan yang sudah tidak berlaku di Anda dapat membeli kapasitas komputasi Enterprise Plus tambahan di region sekunder.

Membuat atau mengubah reservasi Enterprise Plus

Sebelum melampirkan set data ke reservasi, Anda harus membuat pemesanan Enterprise Plus atau mengubah reservasi yang sudah ada dan mengonfigurasinya untuk pemulihan dari bencana.

Membuat pemesanan

Pilih salah satu opsi berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di menu navigasi, klik Capacity management, dan lalu klik Buat reservasi.

  3. Di kolom Nama pemesanan, masukkan nama untuk pemesanan.

  4. Di daftar Lokasi, pilih lokasi.

  5. Di daftar Edisi, pilih edisi Enterprise Plus.

  6. Pada daftar Pemilih ukuran pemesanan maksimum, pilih ukuran pemesanan maksimum.

  7. Opsional: Di kolom Slot dasar pengukuran, masukkan jumlah slot dasar pengukuran untuk pemesanan.

    Jumlah slot penskalaan otomatis yang tersedia ditentukan oleh mengurangi nilai Slot dasar pengukuran dari Reservasi maksimum ukuran. Misalnya, jika Anda membuat pemesanan dengan 100 slot dasar pengukuran dan ukuran pemesanan maksimum 400, pemesanan Anda memiliki 300 slot penskalaan otomatis. Untuk informasi selengkapnya tentang slot dasar, lihat Menggunakan reservasi dengan dasar pengukuran dan penskalaan otomatis slot yang tersedia.

  8. Dalam daftar Lokasi sekunder, pilih lokasi sekunder.

  9. Untuk menonaktifkan berbagi slot tidak ada aktivitas dan hanya menggunakan kapasitas slot yang ditentukan, klik Abaikan slot tidak ada aktivitas tombol.

  10. Untuk meluaskan bagian Advanced settings, klik panah peluas .

  11. Opsional: Untuk menetapkan tugas target serentak, klik tombol Ganti aktifkan konkurensi tugas target otomatis, lalu masukkan nilai untuk Target Serentak Pekerjaan. Pengelompokan slot ditampilkan di tabel Estimasi biaya. J ringkasan reservasi ditampilkan di Ringkasan kapasitas tabel sementara.

  12. Klik Simpan.

Pemesanan baru dapat dilihat di tab Pemesanan slot.

SQL

Untuk membuat reservasi, gunakan Pernyataan bahasa definisi data (DDL) CREATE RESERVATION.

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    CREATE RESERVATION
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`
    OPTIONS (
      slot_capacity = NUMBER_OF_BASELINE_SLOTS,
      edition = ENTERPRISE_PLUS,
      secondary_location = SECONDARY_LOCATION);

    Ganti kode berikut:

    • ADMIN_PROJECT_ID: project ID project administrasi yang memiliki sumber daya reservasi.
    • LOCATION: lokasi pemesanan. Jika Anda memilih BigQuery Omni lokasi, edisi Anda terbatas untuk edisi Enterprise.
    • RESERVATION_NAME: nama pemesanan.

      Nama harus diawali dan diakhiri dengan huruf kecil atau angka dan hanya berisi huruf kecil, angka, dan tanda hubung.

    • NUMBER_OF_BASELINE_SLOTS: jumlah slot dasar pengukuran untuk untuk reservasi. Anda tidak dapat menetapkan opsi slot_capacity dan opsi edition dalam pemesanan yang sama.
    • SECONDARY_LOCATION: sekunder lokasi reservasi. Dalam kasus pemadaman layanan, {i>dataset<i} apa pun yang terlampir pada reservasi ini akan gagal di lokasi ini.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

Mengubah reservasi yang sudah ada

Pilih salah satu opsi berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di panel navigasi, buka bagian Pengelolaan kapasitas.

  3. Klik tab Pemesanan slot.

  4. Cari pemesanan yang ingin diperbarui.

  5. Perluas opsi Actions.

  6. Klik Edit.

  7. Di kolom Lokasi sekunder, masukkan lokasi sekunder.

  8. Klik Simpan.

SQL

Untuk menambahkan atau mengubah lokasi sekunder ke reservasi, gunakan Pernyataan DDL ALTER RESERVATION SET OPTIONS.

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    ALTER RESERVATION
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`
    SET OPTIONS (
      secondary_location = SECONDARY_LOCATION);

    Ganti kode berikut:

    • ADMIN_PROJECT_ID: project ID project administrasi yang memiliki sumber daya reservasi.
    • LOCATION: lokasi pemesanan, misalnya europe-west9.
    • RESERVATION_NAME: nama pemesanan. Nama harus diawali dan diakhiri dengan huruf kecil atau angka dan hanya berisi huruf kecil, angka, dan tanda hubung.

    • SECONDARY_LOCATION: sekunder lokasi reservasi. Dalam kasus pemadaman layanan, {i>dataset<i} apa pun yang terlampir pada reservasi ini akan gagal di lokasi ini.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

Melampirkan set data ke reservasi

Guna mengaktifkan pemulihan dari bencana untuk reservasi yang dibuat sebelumnya, selesaikan langkah-langkah berikut. Set data harus sudah dikonfigurasi untuk replikasi di di region utama dan sekunder yang sama dengan reservasi. Untuk informasi selengkapnya, lihat Replikasi set data lintas region.

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di menu navigasi, klik Capacity management, lalu klik tab Slot Pemesanan.

  3. Klik pemesanan tempat Anda ingin melampirkan set data.

  4. Klik tab Disaster recovery.

  5. Klik Add failover dataset.

  6. Masukkan nama set data yang ingin Anda kaitkan dengan reservasi.

  7. Klik Tambahkan.

SQL

Untuk melampirkan set data ke reservasi, gunakan metode Pernyataan DDL ALTER SCHEMA SET OPTIONS.

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    ALTER SCHEMA
      `DATASET_NAME`
    SET OPTIONS (
      failover_reservation = ADMIN_PROJECT_ID.RESERVATION_NAME);

    Ganti kode berikut:

    • DATASET_NAME: nama {i>dataset<i} aslinya.

    • ADMIN_PROJECT_ID.RESERVATION_NAME: nama reservasi yang ingin Anda kaitkan dengan {i>dataset <i}tersebut.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

Melepaskan set data dari reservasi

Untuk berhenti mengelola perilaku failover set data melalui reservasi, melepaskan {i>dataset <i}tersebut dari pemesanan. Ini tidak mengubah replika utama saat ini untuk {i>dataset<i} atau apakah replika set data yang ada sudah dihapus. Untuk mengetahui informasi selengkapnya tentang menghapus replika set data setelah melepaskan set data, baca artikel Menghapus replika set data.

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di menu navigasi, klik Capacity management, lalu klik tab Slot Pemesanan.

  3. Klik pemesanan tempat Anda ingin melepaskan set data.

  4. Klik tab Disaster recovery.

  5. Luaskan Opsi Actions untuk replika utama set data.

  6. Klik Hapus.

SQL

Untuk melepaskan set data dari reservasi, gunakan metode Pernyataan DDL ALTER SCHEMA SET OPTIONS.

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    ALTER SCHEMA
      `DATASET_NAME`
    SET OPTIONS (
      failover_reservation = NULL);

    Ganti kode berikut:

    • DATASET_NAME: nama {i>dataset<i} aslinya.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

Mulai failover

Jika terjadi pemadaman layanan regional, Anda harus melakukan failover reservasi secara manual untuk lokasi yang digunakan replika. Kegagalan pemesanan juga mencakup yang terkait. Untuk gagal melalui reservasi secara manual, lakukan langkah berikut:

Konsol

  1. Di konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di menu navigasi, klik Disaster recovery.

  3. Klik nama reservasi yang ingin Anda tuju.

  4. Klik Failover.

SQL

Untuk menambahkan atau mengubah lokasi sekunder ke reservasi, gunakan Pernyataan DDL ALTER RESERVATION SET OPTIONS dan setel is_primary ke TRUE.

  1. Di Konsol Google Cloud, buka halaman BigQuery.

    Buka BigQuery

  2. Di editor kueri, masukkan pernyataan berikut:

    ALTER RESERVATION
      `ADMIN_PROJECT_ID.region-LOCATION.RESERVATION_NAME`
    SET OPTIONS (
      is_primary = TRUE);

    Ganti kode berikut:

    • ADMIN_PROJECT_ID: project ID project administrasi yang memiliki sumber daya reservasi.
    • LOCATION: lokasi reservasi, misalnya europe-west9.
    • RESERVATION_NAME: nama pemesanan. Nama harus diawali dan diakhiri dengan huruf kecil atau angka dan hanya berisi huruf kecil, angka, dan tanda hubung.

    • PRIMARY_STATUS: status boolean yang mendeklarasikan apakah reservasi adalah replika utama atau tidak.

  3. Klik Run.

Untuk mengetahui informasi selengkapnya tentang cara menjalankan kueri, lihat Menjalankan kueri interaktif.

Pemantauan

Untuk menentukan status replika, buat kueri INFORMATION_SCHEMA.SCHEMATA_REPLICAS tampilan. Contoh:

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"

Kueri berikut menampilkan pekerjaan dari tujuh hari terakhir yang akan gagal jika set data mereka adalah set data 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']);

Ganti kode berikut:

  • PROJECT_ID: project ID.
  • DATASET_ID: ID set data.
  • LOCATION: lokasi.

Langkah selanjutnya