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.

Saat pengalihan selesai, operasi akan mengambil cadangan instance utama baru (replika DR sebelumnya) segera setelah instance utama baru dipromosikan. Setelah pencadangan ini selesai, pemulihan point-in-time (PITR) akan diaktifkan sepenuhnya di instance utama baru. Pencadangan ini dapat memerlukan waktu antara 5 hingga 15 menit untuk diselesaikan, bergantung pada ukuran disk. Cakupan PITR hanya dimulai setelah pencadangan ini selesai. Untuk mengetahui 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 project Google Cloud dari 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 project Google Cloud dari 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 dan 15 menit untuk selesai, 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 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 project Google Cloud dari 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 project Google Cloud dari 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

Dengan pengalihan dan failover replika, segera setelah replika DR dipromosikan ke instance utama, perubahan berikut akan terjadi untuk mendukung pencadangan dan PITR:

  • Konfigurasi pencadangan, termasuk penjadwalan pencadangan otomatis, dikopi dari instance utama lama ke instance utama baru.
  • Cadangan baru diambil untuk mendukung PITR di instance utama baru.

  • Kebijakan retensi log transaksi disalin dari instance utama lama ke instance utama baru.

Untuk konfigurasi pencadangan dan kebijakan retensi log transaksi, sebaiknya Anda memverifikasi bahwa setelan yang diwarisi dari instance utama lama sudah benar untuk instance utama baru.

Awal cakupan PITR

Di akhir operasi pengalihan, Cloud SQL menjadwalkan cadangan otomatis dan mengambil cadangan pertama dari instance utama baru. Jika Anda ingin cakupan PITR dimulai lebih awal, sebaiknya verifikasi bahwa pencadangan pertama berhasil. Instance utama yang baru dipromosikan hanya memiliki cakupan PITR setelah pencadangan otomatis pertama berhasil selesai.

Untuk mengetahui informasi selengkapnya tentang cara melihat cadangan yang tersedia untuk instance, lihat Melihat daftar cadangan.

Cakupan PITR untuk instance selama switchover dan failover replika

Saat instance berpartisipasi dalam operasi failover replika atau pengalihan, instance akan menghabiskan waktu sebagai replika baca. PITR dan pemulihan cadangan didukung selama jangka waktu yang dihabiskan instance sebagai replika baca dan sebagai instance utama.

Anda dapat melakukan PITR ke waktu sebelum pengalihan saat instance adalah instance utama. Untuk operasi pengalihan dan failover replika, Cloud SQL memulai pencadangan dengan upaya terbaik untuk instance utama baru segera setelah instance utama baru dipromosikan. PITR diaktifkan di instance yang dipromosikan hanya setelah pencadangan ini selesai. Pencadangan ini dapat memerlukan waktu 5 hingga 15 menit untuk diselesaikan, bergantung pada ukuran disk.

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 selanjutnya