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:
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Klik instance replika DR. Halaman Ringkasan untuk Replika DR muncul.
- Klik tombol Beralih.
- Di Melakukan peralihan antara replika utama dan DR masukkan nama instance utama di kolom ID Instance.
- 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:
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Klik instance replika DR. Halaman Ringkasan untuk replika DR akan muncul.
- Klik tombol Replica Failover.
- 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.
- 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 kefalse
, API akan menggunakan metodepromoteReplica
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 kefalse
, API akan menggunakan metodepromoteReplica
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.
Periksa status fase pertama.
Konsol
Untuk memeriksa apakah replika DR telah dipromosikan menjadi instance mandiri, lakukan hal berikut:
-
Di konsol Google Cloud, buka halaman Instance Cloud SQL.
- Temukan nama replika DR yang Anda promosikan.
- 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
-
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. |
|
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. |
|
Langkah selanjutnya
- Baca tentang kemampuan observasi database
- Memantau instance Cloud SQL