Gunakan pemulihan dari bencana (DR) lanjutan

Halaman ini menjelaskan cara menggunakan pemulihan bencana tingkat lanjut (DR). 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 menurun.
  • Switchover memungkinkan Anda membalikkan peran instance utama dan replika DR tanpa kehilangan data. Anda dapat menggunakan {i>switchover<i} untuk memulihkan deployment ke status deployment aslinya setelah replika failover, atau Anda dapat menggunakan pengalihan untuk menguji DR.

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

Sebelum memulai

Jika berencana menggunakan Google Cloud SDK, Anda harus menggunakan versi 470.0.0 atau nanti dan Perintah gcloud beta. Untuk memeriksa versi Google Cloud SDK, jalankan gcloud --version. Untuk memperbarui Google Cloud SDK, jalankan gcloud components update.

Untuk menginstal Google Cloud SDK, lihat Instal gcloud CLI.

Membuat replika DR

Sebelum Anda menggunakan DR lanjutan, buat replika berurutan di region utama yang berbeda dengan instance utama.

Melakukan peralihan

Setelah Anda membuat replika DR, Anda dapat melakukan operasi pengalihan. Namun, sebagai praktik terbaik, hindari melakukan operasi pengalihan berdasarkan 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, 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) diaktifkan sepenuhnya pada instance utama baru. Pencadangan ini dapat memerlukan waktu antara 5 dan 15 menit untuk diselesaikan, tergantung pada ukuran {i>disk<i}. Cakupan PITR dimulai hanya setelah pencadangan ini telah selesai. Untuk informasi selengkapnya tentang pertimbangan menggunakan PITR dengan DR tingkat lanjut, lihat Gunakan PITR dengan DR lanjutan.

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

Sebelum memulai

Sebelum Anda melakukan operasi pengalihan, lakukan hal berikut:

  • Jika Anda belum melakukannya, membuat replika DR.
  • Pastikan instance utama dan replika DR online.
  • Ambil cadangan instance utama sesuai permintaan. Cadangan ini adalah tindakan pencegahan jika Anda perlu melakukan pemulihan dari kegagalan yang tidak terduga.

Melakukan operasi pengalihan

Konsol

Untuk melakukan operasi pengalihan, lakukan hal berikut:

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

    Buka Instance Cloud SQL

  2. Klik instance replika DR. Halaman Ringkasan untuk Replika DR muncul.
  3. Klik tombol Beralih.
  4. Di Melakukan peralihan antara replika utama dan DR masukkan nama instance utama di kolom ID Instance.
  5. Klik Beralih.

gcloud

Untuk melakukan operasi pengalihan, jalankan perintah berikut:

gcloud beta sql instances switchover REPLICA_NAME

Ganti variabel berikut:

  • REPLICA_NAME: nama replika DR yang ditetapkan yang Anda instance utama yang ingin diubah perannya.

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:

Lakukan DR dengan memanggil failover replika

Jika terjadi kegagalan regional atau bencana, Anda dapat melakukan DR dengan memanggil operasi failover replika ke replika DR yang ditentukan. Untuk melakukan failover replika, Anda mempromosikan Replika DR. Berbeda dengan peralihan, promosi replika DR secara langsung.

Karena replika DR mengasumsikan peran instance utama dengan segera, replika itu mungkin tidak memiliki semua data dari instance utama lama karena keterlambatan replikasi. Oleh karena itu, failover replika dapat menyebabkan kehilangan data.

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

Saat instance utama lama kembali online, proses failover replika mengambil cadangan. Setelah cadangan ini diambil, instance utama yang lama akan dibuat ulang sebagai replika baca dari instance utama yang baru. Dalam proses ini, instance utama lama kehilangan log transaksi PITR lama yang belum disimpan ke Cloud Storage. Dengan demikian, failover replika tidak menjamin bahwa semua log transaksi yang digunakan untuk PITR di instance utama lama akan dipertahankan.

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

Sebelum memulai

Sebelum Anda dapat melakukan failover replika, lakukan hal berikut:

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

Menjalankan operasi failover replika

Konsol

Untuk melakukan operasi failover replika, lakukan hal berikut:

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

    Buka Instance Cloud SQL

  2. Klik instance replika DR. Halaman Ringkasan untuk replika DR akan muncul.
  3. Klik tombol Replica Failover.
  4. Di halaman Jalankan failover replika antara replika utama dan replika DR, masukkan nama instance utama di kolom ID Instance untuk mengonfirmasi sehingga Anda ingin melanjutkan operasi.
  5. Untuk memulai failover replika, klik Replica Failover.

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: ditetapkan ke true untuk menggunakan failover replika. Jika Anda menetapkan ke false, API akan menggunakan metode promoteReplica reguler tanpa replika failover.

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: ditetapkan ke true untuk menggunakan failover replika. Jika Anda menetapkan ke false, API akan menggunakan metode promoteReplica reguler tanpa replika failover.

Metode HTTP dan URL:

POST https://sqladmin.googleapis.com/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 masing-masing fase sebelumnya.

  1. Periksa status fase pertama.

    Konsol

    Untuk memeriksa apakah replika DR telah dipromosikan menjadi 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 primer 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

    Di output, periksa apakah 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 pada instance untuk pesan RECONFIGURE_OLD_PRIMARY.

    Tampilan pesan ini bergantung pada kapan instance utama kembali secara online, yang dapat memerlukan waktu beberapa menit atau hari jika terjadi bencana.

    Untuk mengetahui informasi selengkapnya tentang cara memeriksa log operasi pada instance, baca Melihat log instance.

Gunakan 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 cadangan, termasuk penjadwalan cadangan otomatis, disalin dari instance utama lama ke instance utama yang baru.
  • Jika dinonaktifkan, tanda konfigurasi binlog akan diaktifkan untuk mengaktifkan PITR.
  • Cadangan baru diambil untuk mendukung PITR pada instance utama baru.
  • Kebijakan retensi log transaksi disalin dari tabel utama lama ke instance utama baru.

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

Awal cakupan PITR

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

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

Cakupan PITR untuk instance selama pengalihan dan failover replika

Saat instance berpartisipasi dalam operasi failover replika atau pengalihan, instance akan menghabiskan waktu sebagai replika baca. PITR dan pemulihan cadangan adalah didukung selama jangka waktu yang dihabiskan instance sebagai replika baca. Jika ingin melakukan PITR ke titik waktu sebelum peristiwa pengalihan terjadi (saat instance adalah instance utama), Anda dapat mengeluarkan perintah clone untuk menargetkan waktu saat instance adalah instance utama. Anda tidak dapat meminta PITR ke saat instance merupakan replika baca.

Jika Anda tidak dapat melakukan PITR karena instance utamanya adalah replika saat dibutuhkan, maka Anda harus mencoba mengajukan permintaan PITR di yang merupakan instance utama yang bertindak pada saat menarik.

Demikian pula, Anda dapat memulihkan cadangan yang diambil pada saat replika adalah instance utama. Meskipun instance adalah replika, perintah pulihkan harus menargetkan instance mandiri yang berbeda dan tidak dapat dipulihkan ke instance replika itu sendiri.

Guna menentukan instance mana yang akan digunakan untuk permintaan PITR, gunakan operasi daftar. Daftar operasi untuk instance dapat membantu menentukan kapan instance mengalami operasi pengalihan atau failover replika.

Split-brain selama failover replika

Split-brain dapat terjadi saat instance utama terus menerima penulisan sementara replika dipromosikan menggunakan failover replika. Setelah dipromosikan, saat instance utama lama tersedia lagi, dibangun ulang sebagai replika dari instance yang dipromosikan dan cadangan akhir dibuat. Ini cadangan dapat digunakan untuk memulihkan data {i>split-brain<i} 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 agar memiliki pencadangan otomatis harian dan menyimpan 7 cadangan dengan log PITR selama 7 hari, lalu saat instance ini menjadi replika, data yang lebih lama dari 7 hari akan dihapus sekali sehari.

Jika Anda 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.
  • Anda tidak dapat menetapkan replika baca edisi Cloud SQL Enterprise Plus sebagai replika DR jika instance utama menyimpan log transaksinya untuk pemulihan point-in-time (PITR) pada disk. Untuk memeriksa lokasi instance menyimpan log-nya untuk PITR, lihat Periksa lokasi penyimpanan log transaksi yang digunakan untuk PITR.
  • Anda tidak dapat menetapkan replika eksternal sebagai replika DR.

Memecahkan masalah

Masalah Pemecahan masalah
Operasi pengalihan gagal.
    Pastikan instance memenuhi semua persyaratan replika DR (replika yang dapat disusun bertingkat) yang dinyatakan.
  • Periksa volume transaksi di database. Jika volume transaksi tinggi, maka operasi mungkin kehabisan waktu. Pertimbangkan untuk mencoba kembali operasi tersebut saat pemuatan transaksi lebih rendah.
Operasi pengalihan gagal dan instance utama macet di mode hanya baca. Mulai ulang database untuk mengembalikan instance utama mode tulis.
Operasi pengalihan telah selesai, tetapi konsol Google Cloud tidak menampilkan peran baru yang dibalik untuk instance. Refresh browser untuk menampilkan topologi yang diperbarui.
Operasi failover replika telah gagal.
  • Pastikan Anda telah membuat replika DR untuk instance utama dan bahwa replika DR online.
  • Jika failover ke replika DR gagal, promosikan ke replika baca reguler (non-DR) sebagai gantinya.

Langkah selanjutnya