Menggunakan pemulihan dari bencana (DR) lanjutan

Halaman ini menjelaskan cara menggunakan pemulihan dari bencana (DR) lanjutan. DR Lanjutan menyediakan dua kemampuan utama:

  • Failover replika memungkinkan Anda melakukan failover instance utama ke replika DR segera jika terjadi kegagalan regional. Untuk Cloud SQL untuk SQL Server, replika DR adalah replika yang dapat di-cascade.
  • Switchover memungkinkan Anda membalikkan peran instance utama dan replika DR tanpa kehilangan data. Anda dapat menggunakan pengalihan untuk memulihkan deployment ke status deployment aslinya setelah failover replika, atau Anda dapat menggunakan pengalihan untuk menguji DR.

DR Lanjutan hanya didukung di instance edisi Cloud SQL Enterprise Plus.

Sebelum memulai

Jika berencana menggunakan Google Cloud SDK, Anda harus menggunakan versi 502.0.0 atau yang lebih baru. Untuk memeriksa versi Google Cloud SDK, jalankan gcloud --version. Untuk mengupdate Google Cloud SDK, jalankan gcloud components update.

Untuk menginstal Google Cloud SDK, lihat Menginstal gcloud CLI.

Membuat replika DR

Sebelum menggunakan DR lanjutan, buat replika yang dapat disusun secara bertingkat dari instance utama di region yang berbeda dengan instance utama.

Melakukan pengalihan

Setelah membuat replika DR, Anda dapat melakukan operasi pengalihan. Namun, sebagai praktik terbaik, hindari melakukan operasi pengalihan dalam keadaan berikut:

  • Instance utama sedang digunakan secara aktif.
  • Operasi admin sedang berlangsung, seperti pencadangan otomatis atau pengaktifan atau penonaktifan ketersediaan tinggi (HA).

Untuk menghindari waktu tunggu habis, pertimbangkan untuk melakukan pengalihan saat volume transaksi rendah.

Setelah pengalihan selesai, operasi akan mengambil cadangan instance utama baru (replika DR sebelumnya) segera setelah instance utama baru dipromosikan. Pencadangan ini dapat memerlukan waktu antara 5 hingga 15 menit untuk diselesaikan, bergantung pada ukuran disk. Setelah pencadangan ini selesai, jika ingin menggunakan PITR pada instance yang dipromosikan, Anda harus mengaktifkan PITR secara manual. Untuk informasi selengkapnya tentang pertimbangan penggunaan PITR dengan DR lanjutan, lihat Menggunakan PITR dengan DR lanjutan.

Setelah operasi pengalihan selesai, Anda akan melihat bahwa arah replika dibalik.

Setelah instance utama lama Anda dikonfigurasi ulang sebagai replika baca, endpoint tulis DNS, yang sebelumnya me-resolve ke instance utama lama, akan me-resolve ke instance utama baru.

Sebelum memulai

Sebelum Anda melakukan operasi pengalihan, lakukan hal berikut:

  • Buat replika DR, jika Anda belum melakukannya.
  • Verifikasi bahwa instance utama dan replika DR sedang online.
  • Jika Anda menggunakan endpoint operasi tulis DNS, pastikan konfigurasi SSL untuk instance utama dan replika DR sama. Misalnya, jika replika DR dikonfigurasi untuk menerapkan enkripsi SSL, tetapi instance utama mengizinkan koneksi yang tidak dienkripsi, klien tidak akan dapat terhubung ke instance utama baru setelah operasi pengalihan selesai.
  • Buat cadangan instance utama sesuai permintaan. Pencadangan ini adalah tindakan pengamanan jika Anda perlu memulihkan dari kegagalan yang tidak terduga.

Melakukan operasi pengalihan

gcloud

Untuk melakukan operasi pengalihan, jalankan perintah berikut:

gcloud sql instances switchover REPLICA_NAME

Ganti variabel berikut:

  • REPLICA_NAME: nama replika DR yang ingin Anda jadikan sebagai peran pengganti instance utama.

REST v1

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID atau nomor project Google Cloud project instance utama dan replika DR.
  • REPLICA_NAME: nama replika DR.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME/switchover

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

REST v1beta4

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID atau nomor project Google Cloud project instance utama dan replika DR.
  • REPLICA_NAME: nama replika DR.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME/switchover

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Melakukan DR dengan memanggil failover replika

Jika terjadi kegagalan regional atau bencana, Anda dapat melakukan DR dengan memanggil operasi failover replika ke replika DR yang ditetapkan. Untuk melakukan replika transisi failover, Anda harus mempromosikan replika DR. Berbeda dengan pengalihan, promosi replika DR bersifat langsung.

Karena replika DR langsung mengambil peran instance utama, replika mungkin tidak memiliki semua data dari instance utama lama karena jeda replikasi. Karena alasan ini, failover replika dapat menyebabkan hilangnya data.

Sebagai bagian dari proses promosi, failover replika mengambil cadangan instance utama baru (replika DR sebelumnya) tepat setelah replika DR menjadi instance utama baru. Setelah pencadangan ini selesai, pemulihan point-in-time (PITR) diaktifkan sepenuhnya di instance utama baru. Pencadangan ini dapat memerlukan waktu antara 5 hingga 15 menit untuk diselesaikan, bergantung pada ukuran disk instance utama baru (dan lama). Selama periode pencadangan ini, PITR tidak tersedia.

Saat instance utama lama kembali online, proses failover replika akan mengambil cadangan. Setelah pencadangan ini diambil, instance utama lama akan dibuat ulang sebagai replika baca dari instance utama baru.

Untuk mengetahui informasi selengkapnya tentang pertimbangan penggunaan PITR dengan DR lanjutan, lihat Menggunakan PITR dengan DR lanjutan.

Setelah Anda memanggil operasi failover replika, endpoint tulis DNS, yang sebelumnya me-resolve ke instance utama lama, akan me-resolve ke instance utama baru.

Sebelum memulai

Sebelum Anda dapat melakukan transisi failover replika, lakukan hal berikut:

  • Jika Anda belum melakukannya, buat replika DR.
  • Pastikan replika DR online dan responsif.

Melakukan operasi failover replika

gcloud

Untuk memanggil failover replika ke replika DR, gunakan perintah berikut:

gcloud sql instances promote-replica \
   REPLICA_NAME --failover

Ganti variabel berikut:

  • REPLICA_NAME: nama replika DR

REST v1

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID atau nomor project Google Cloud project instance utama dan replika DR.
  • REPLICA_NAME: nama replika DR.
  • ENABLE_REPLICA_FAILOVER: tetapkan ke true untuk menggunakan failover replika. Jika Anda menetapkan ke false, API akan menggunakan metode promoteReplica reguler tanpa failover replika.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME/promoteReplica?failover=ENABLE_REPLICA_FAILOVER

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

REST v1beta4

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID atau nomor project Google Cloud project instance utama dan replika DR.
  • REPLICA_NAME: nama replika DR.
  • ENABLE_REPLICA_FAILOVER: tetapkan ke true untuk menggunakan failover replika. Jika Anda menetapkan ke false, API akan menggunakan metode promoteReplica reguler tanpa failover replika.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME/promoteReplica?failover=ENABLE_REPLICA_FAILOVER

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

Memeriksa status failover replika

Failover replika terjadi dalam dua fase. Fase pertama adalah promosi replika DR. Fase kedua adalah pembuatan ulang instance utama lama sebagai replika baca.

Untuk memeriksa status failover replika, periksa status setiap fase.

  1. Periksa status fase pertama.

    Konsol

    Untuk memeriksa apakah replika DR telah dipromosikan ke instance mandiri, lakukan hal berikut:

    1. Di konsol Google Cloud, buka halaman Instance Cloud SQL.

      Buka Instance Cloud SQL

    2. Temukan nama replika DR yang Anda promosikan.
    3. Pastikan SQL Server VERSION muncul di kolom Type untuk instance utama baru.

    gcloud

    Anda dapat memeriksa status dengan menjalankan perintah berikut:

    gcloud sql instances describe DR_REPLICA_NAME

    Ganti variabel berikut:

    • DR_REPLICA_NAME: nama replika DR yang dipromosikan

    Dalam output, pastikan kolom berikut muncul dan replika telah menjadi instance utama Cloud SQL mandiri:

    instanceType: CLOUD_SQL_INSTANCE
    

  2. Untuk memverifikasi penyelesaian fase kedua, periksa log operasi di instance untuk pesan RECONFIGURE_OLD_PRIMARY.

    Munculnya pesan ini bergantung pada waktu instance primer lama kembali online, yang dapat memerlukan waktu beberapa menit atau hari jika terjadi bencana.

    Untuk mengetahui informasi selengkapnya tentang cara memeriksa log operasi di instance, lihat Melihat log instance.

Menggunakan PITR dengan DR lanjutan

Baik pengalihan atau kegagalan replika, jika replika DR dipromosikan ke instance utama, dan Anda ingin menggunakan PITR pada instance yang dipromosikan, Anda harus mengaktifkan PITR secara manual.

Setelah PITR diaktifkan, konfigurasi pencadangan dan kebijakan retensi log transaksi akan berlaku. Jika Anda tidak menentukan nilai untuk setelan ini, nilai default 14 hari akan berlaku.

Untuk informasi selengkapnya, lihat Menggunakan PITR.

Setelah PITR diaktifkan di instance utama baru, Anda dapat memulihkan instance tersebut ke titik waktu mana pun selama instance utama tersebut aktif.

Split-brain selama failover replika

Split-brain mungkin terjadi saat instance utama terus menerima operasi tulis saat replika dipromosikan menggunakan failover replika. Setelah replika dipromosikan, saat instance utama lama tersedia lagi, instance tersebut akan di-build ulang sebagai replika instance yang dipromosikan dan cadangan akhir akan dibuat. Cadangan ini dapat digunakan untuk memulihkan data split-brain yang tidak ditulis ke replika yang dipromosikan.

Penghapusan cadangan dan log transaksi di replika

Jika instance utama yang diaktifkan dengan PITR dan pencadangan menjadi replika baca, kebijakan retensi PITR dan cadangan terakhir dari waktunya sebagai instance utama akan dipertahankan dan diterapkan selama waktunya sebagai replika. Meskipun instance utama baru tidak membuat cadangan, cadangan lama dan log transaksi yang digunakan untuk PITR akan dihapus di replika baca sesuai dengan kebijakan yang terakhir dikonfigurasi.

Misalnya, jika instance dikonfigurasi untuk memiliki pencadangan otomatis harian dan menyimpan 7 pencadangan dengan log PITR 7 hari, maka saat instance ini menjadi replika baca, semua yang lebih lama dari 7 hari akan dihapus sekali sehari.

Jika perlu menghapus cadangan lebih cepat, Anda dapat menghapus cadangan secara manual. Untuk mengetahui informasi selengkapnya, lihat Menghapus cadangan.

Batasan

  • DR Lanjutan tidak didukung untuk instance Cloud SQL yang menggunakan Private Service Connect. DR Lanjutan mendukung akses layanan pribadi.

  • Anda tidak dapat menetapkan instance replika baca edisi Cloud SQL Enterprise Plus sebagai replika DR jika instance utama menyimpan log transaksinya untuk pemulihan point-in-time (PITR) di disk. Untuk memeriksa tempat instance menyimpan lognya untuk PITR, lihat Memeriksa lokasi penyimpanan log transaksi yang digunakan untuk PITR.

  • Anda tidak dapat menetapkan replika eksternal sebagai replika DR.

  • Terraform tidak didukung untuk operasi failover replika atau pengalihan.

  • Anda tidak dapat menggunakan konsol Google Cloud untuk melakukan operasi failover atau pengalihan replika.

Memecahkan masalah

Masalah Pemecahan masalah
Operasi pengalihan gagal.
Operasi pengalihan telah gagal dan instance utama macet dalam mode hanya baca. Lakukan mulai ulang database untuk mengembalikan instance utama ke mode tulis.
Operasi pengalihan telah selesai, tetapi konsol Google Cloud tidak menampilkan peran baru yang dibalik untuk instance. Muat ulang browser untuk menampilkan topologi yang diperbarui.
Operasi failover replika telah gagal.
  • Pastikan Anda telah membuat replika DR untuk instance utama dan replika DR tersebut sedang online.
  • Jika failover ke replika DR gagal, promosikan ke replika baca reguler (non-DR).

Langkah berikutnya