Disaster recovery terkelola

Dokumen ini memberikan ringkasan tentang disaster recovery yang dikelola BigQuery dan cara menerapkannya untuk data dan workload Anda.

Ringkasan

BigQuery mendukung skenario disaster recovery jika terjadi pemadaman layanan di seluruh region. Pemulihan dari bencana (disaster recovery) BigQuery mengandalkan replikasi set data lintas region untuk mengelola failover penyimpanan. Setelah membuat replika set data di region sekunder, Anda dapat mengontrol perilaku failover untuk komputasi dan penyimpanan guna mempertahankan kontinuitas bisnis selama pemadaman. Setelah failover, Anda dapat mengakses kapasitas komputasi (slot) dan set data yang direplikasi di region yang dipromosikan. Disaster recovery hanya didukung dengan edisi Enterprise Plus.

Pemulihan dari bencana (disaster recovery) terkelola melakukan failover hard saat failover dimulai. Dalam hard failover, replika reservasi dan set data di region sekunder akan segera dipromosikan ke region utama, meskipun region utama sebelumnya tidak aktif, tanpa menunggu replikasi data yang belum direplikasi. Karena hal ini, kehilangan data dapat terjadi selama hard failover. Setiap tugas yang melakukan commit data di region sumber sebelum nilai replika replication_time mungkin perlu dijalankan ulang di region tujuan setelah failover.

Untuk mengaktifkan pemulihan dari bencana, Anda harus membuat reservasi edisi Enterprise Plus di region utama, yaitu region tempat set data berada sebelum failover. Kapasitas komputasi standby di region yang disambungkan disertakan dalam reservasi Enterprise Plus. Kemudian, Anda akan melampirkan set data ke reservasi ini untuk mengaktifkan failover untuk set data tersebut. Anda hanya dapat melampirkan set data ke reservasi jika set data diisi ulang dan memiliki lokasi primer dan sekunder yang dipasangkan yang sama dengan reservasi. Setelah set data disertakan ke pemesanan failover, hanya pemesanan Enterprise Plus yang dapat menulis ke set data tersebut dan Anda tidak dapat melakukan promosi replikasi lintas-region pada set data. Anda dapat membaca dari set data yang dilampirkan ke reservasi failover dengan model kapasitas apa pun. Untuk mengetahui informasi selengkapnya tentang reservasi, lihat Pengantar pengelolaan workload.

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

Anda harus secara aktif memilih untuk melakukan failover sebagai bagian dari pengujian atau sebagai respons terhadap bencana yang sebenarnya. Anda tidak boleh gagal lebih dari sekali dalam periode 10 menit. Dalam skenario replikasi data, pengisian ulang mengacu pada proses pengisian replika set data dengan data historis yang ada sebelum replika dibuat atau menjadi aktif. Set data harus menyelesaikan pengisian ulang sebelum Anda dapat beralih ke set data.

Diagram berikut menunjukkan arsitektur Disaster Recovery Terkelola:

Arsitektur pemulihan dari bencana (disaster recovery) terkelola.

Batasan

Batasan berikut berlaku untuk disaster recovery BigQuery:

  • Pemulihan dari bencana (disaster recovery) BigQuery tunduk pada batasan yang sama seperti replikasi set data lintas region.

  • Penskalaan otomatis setelah failover bergantung pada ketersediaan kapasitas komputasi di region sekunder. Hanya dasar pengukuran reservasi yang tersedia di region sekunder.

  • Tampilan INFORMATION_SCHEMA.RESERVATIONS tidak memiliki detail failover.

  • Jika Anda memiliki beberapa reservasi failover dengan project administrasi yang sama, tetapi set data yang dilampirkan menggunakan lokasi sekunder yang berbeda, jangan gunakan satu reservasi failover dengan set data yang dilampirkan ke reservasi failover yang berbeda.

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

Lokasi

Region berikut tersedia saat membuat pemesanan failover:

Kode lokasi Nama Region Deskripsi Region
ASIA
ASIA-EAST1 Taiwan
ASIA-SOUTHEAST1 Singapura
AU
AUSTRALIA-SOUTHEAST1 Sydney
AUSTRALIA-SOUTHEAST2 Melbourne
CA
NORTHAMERICA-NORTHEAST1 Montréal
NORTHAMERICA-NORTHEAST2 Toronto
EU
EU Multi-region Uni Eropa
EUROPE-CENTRAL2 Warsawa
EUROPE-NORTH1 Finlandia
EUROPE-SOUTHWEST1 Madrid
EUROPE-WEST1 Belgia
EUROPE-WEST3 Frankfurt
EUROPE-WEST4 Belanda
EUROPE-WEST8 Milan
EUROPE-WEST9 Paris
IN
ASIA-SOUTH1 Mumbai
ASIA-SOUTH2 Delhi
US
US Multi-region AS
US-CENTRAL1 Iowa
US-EAST1 South Carolina
US-EAST4 Northern Virginia
US-SOUTH1 Dallas
US-WEST1 Oregon
US-WEST2 Los Angeles
US-WEST3 Salt Lake City
US-WEST4 Las Vegas

Pasangan region harus dipilih dalam ASIA, AU, CA, EU, IN, atau US. Misalnya, region dalam US tidak dapat disambungkan dengan region dalam EU.

Jika set data BigQuery Anda berada di lokasi multi-region, Anda tidak dapat menggunakan pasangan region berikut. Batasan ini memastikan bahwa reservasi dan data failover Anda terpisah secara geografis setelah replikasi. Untuk mengetahui informasi selengkapnya tentang region yang terdapat dalam multi-region, lihat Multi-region.

  • us-central1 - us multi-region
  • us-west1 - us multi-region
  • eu-west1 - eu multi-region
  • eu-west4 - eu multi-region

Sebelum memulai

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

Replikasi Turbo

Replikasi pemulihan dari bencana menggunakan mode Turbo untuk replikasi data yang lebih cepat di seluruh region, yang mengurangi risiko eksposur kehilangan data dan membantu mendukung layanan tanpa gangguan setelah pemadaman layanan regional.

Replikasi Turbo tidak berlaku untuk operasi pengisian ulang awal. Setelah operasi pengisian ulang awal selesai, replikasi turbo dirancang untuk mereplikasi set data ke satu pasangan region failover dengan replika sekunder dalam waktu 60 menit, selama kuota bandwidth tidak terlampaui dan tidak ada error pengguna.

Kuota

Anda harus memiliki kapasitas komputasi yang dipilih di region sekunder sebelum mengonfigurasi pemesanan failover. Jika tidak ada kuota yang tersedia di region sekunder, Anda tidak dapat mengonfigurasi reservasi. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas.

Bandwidth replikasi Turbo memiliki kuota. Untuk mengetahui informasi selengkapnya, lihat Kuota dan batas.

Harga

Untuk mengonfigurasi pemulihan dari bencana terkelola, Anda memerlukan paket harga berikut:

  • Kapasitas komputasi: Anda harus membeli edisi Enterprise Plus.

  • Replikasi turbo: Disaster recovery mengandalkan replikasi turbo selama replikasi. Anda akan ditagih berdasarkan byte fisik dan per replika GiB fisik. Untuk mengetahui informasi selengkapnya, lihat Harga transfer data replikasi data untuk replikasi Turbo.

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

Pelanggan hanya diwajibkan untuk membayar kapasitas komputasi di region utama. Kapasitas komputasi sekunder (berdasarkan dasar pengukuran reservasi) tersedia di region sekunder tanpa biaya tambahan. Slot tidak ada aktivitas tidak dapat menggunakan kapasitas komputasi sekunder kecuali jika reservasi telah gagal.

Jika perlu melakukan pembacaan yang sudah tidak berlaku di region sekunder, Anda harus membeli kapasitas komputasi tambahan.

Membuat atau mengubah reservasi Enterprise Plus

Sebelum melampirkan set data ke reservasi, Anda harus membuat reservasi Enterprise Plus atau mengubah reservasi yang ada dan mengonfigurasinya untuk disaster recovery.

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, lalu klik Create reservation.

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

  4. Di daftar Location, pilih lokasi.

  5. Dalam 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 dengan mengurangi nilai Slot dasar pengukuran dari nilai Ukuran pemesanan maksimum. Misalnya, jika Anda membuat pemesanan dengan 100 slot dasar pengukuran dan ukuran pemesanan maksimum 400, pemesanan Anda memiliki 300 slot penskalaan otomatis. Untuk mengetahui informasi selengkapnya tentang slot dasar pengukuran, lihat Menggunakan pemesanan dengan slot dasar pengukuran dan penskalaan otomatis.

  8. Dalam daftar Secondary location, pilih lokasi sekunder.

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

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

  11. Opsional: Untuk menetapkan konkurensi tugas target, klik tombol Ganti konkurensi tugas target otomatis ke aktif, lalu masukkan nilai untuk Konkurensi Tugas Target. Perincian slot ditampilkan di tabel Estimasi biaya. Ringkasan pemesanan ditampilkan di tabel Ringkasan kapasitas.

  12. Klik Simpan.

Pemesanan baru dapat dilihat di tab Pemesanan slot.

SQL

Untuk membuat pemesanan, 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 dari project administrasi yang memiliki resource pemesanan.
    • LOCATION: lokasi pemesanan. Jika Anda memilih lokasi BigQuery Omni, opsi edisi Anda akan terbatas untuk edisi Enterprise.
    • RESERVATION_NAME: nama pemesanan.

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

    • NUMBER_OF_BASELINE_SLOTS: jumlah slot dasar pengukuran yang akan dialokasikan ke pemesanan. Anda tidak dapat menetapkan opsi slot_capacity dan opsi edition dalam pemesanan yang sama.
    • SECONDARY_LOCATION: lokasi pemesanan sekunder. Jika terjadi pemadaman, set data apa pun yang dilampirkan ke reservasi ini akan dialihkan ke lokasi ini.

  3. Klik Run.

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

Mengubah reservasi yang 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 Secondary location, masukkan lokasi sekunder.

  8. Klik Simpan.

SQL

Untuk menambahkan atau mengubah lokasi sekunder ke pemesanan, 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 dari project administrasi yang memiliki resource pemesanan.
    • LOCATION: lokasi pemesanan, misalnya europe-west9.
    • RESERVATION_NAME: nama pemesanan. Nama harus diawali dan diakhiri dengan huruf kecil atau angka, serta hanya berisi huruf kecil, angka, dan tanda hubung.

    • SECONDARY_LOCATION: lokasi pemesanan sekunder. Jika terjadi pemadaman, set data apa pun yang dilampirkan ke reservasi ini akan dialihkan ke lokasi ini.

  3. Klik Run.

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

Melampirkan set data ke reservasi

Untuk mengaktifkan disaster recovery untuk reservasi yang dibuat sebelumnya, selesaikan langkah-langkah berikut. Set data harus sudah dikonfigurasi untuk replikasi di region utama dan sekunder yang sama dengan reservasi. Untuk mengetahui 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 Reservations.

  3. Klik reservasi yang ingin Anda lampirkan set data.

  4. Klik tab Disaster recovery.

  5. Klik Tambahkan set data failover.

  6. Masukkan nama set data yang ingin dikaitkan dengan reservasi.

  7. Klik Tambahkan.

SQL

Untuk melampirkan set data ke pemesanan, gunakan 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 set data.

    • ADMIN_PROJECT_ID.RESERVATION_NAME: nama reservasi yang ingin Anda kaitkan dengan set data.

  3. Klik Run.

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

Melepaskan set data dari pemesanan

Untuk berhenti mengelola perilaku failover set data melalui reservasi, lepaskan set data dari reservasi. Tindakan ini tidak mengubah replika utama saat ini untuk set data, dan replika set data yang ada tidak akan dihapus. Untuk mengetahui informasi selengkapnya tentang cara menghapus replika set data setelah melepaskan set data, lihat 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 Reservations.

  3. Klik reservasi yang ingin Anda lepaskan set datanya.

  4. Klik tab Disaster recovery.

  5. Luaskan opsi Actions untuk replika utama set data.

  6. Klik Hapus.

SQL

Untuk melepaskan set data dari pemesanan, gunakan 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 set data.

  3. Klik Run.

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

Memulai failover

Jika terjadi pemadaman layanan regional, Anda harus melakukan failover pemesanan secara manual ke lokasi yang digunakan oleh replika. Kegagalan reservasi juga mencakup set data terkait. Untuk melakukan failover 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 gunakan untuk failover.

  4. Klik Failover.

SQL

Untuk menambahkan atau mengubah lokasi sekunder ke pemesanan, gunakan pernyataan DDL ALTER RESERVATION SET OPTIONS dan tetapkan 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 dari project administrasi yang memiliki resource pemesanan.
    • LOCATION: lokasi pemesanan, misalnya europe-west9.
    • RESERVATION_NAME: nama pemesanan. Nama harus diawali dan diakhiri dengan huruf kecil atau angka, serta hanya berisi huruf kecil, angka, dan tanda hubung.

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

  3. Klik Run.

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

Pemantauan

Untuk menentukan status replika, buat kueri tampilan INFORMATION_SCHEMA.SCHEMATA_REPLICAS. 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 tugas dari tujuh hari terakhir yang akan gagal jika set datanya 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