Halaman ini menjelaskan cara menggunakan pemulihan dari bencana (DR) lanjutan. DR lanjutan menyediakan dua kemampuan utama:
- Failover replika memungkinkan Anda melakukan fail over instance utama ke replika DR segera jika terjadi kegagalan region. Untuk Cloud SQL untuk SQL Server, replika DR adalah replika yang dapat dikaskade.
- Pengalihan 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 tingkat lanjut hanya didukung di instance edisi Cloud SQL Enterprise Plus.
Sebelum memulai
Jika Anda 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 bagian Menginstal gcloud CLI.
Membuat replika DR
Sebelum menggunakan DR lanjutan, buat replika yang dapat dikaskadekan 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 mencadangkan instance utama baru (replika DR sebelumnya) segera setelah instance utama baru dipromosikan. Pencadangan ini dapat memerlukan waktu antara 5 hingga 15 menit, bergantung pada ukuran disk. Setelah pencadangan ini selesai, jika Anda ingin menggunakan PITR pada instance yang dipromosikan, Anda harus mengaktifkan PITR secara manual. 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 replikasi dibalik.
Setelah instance utama lama dikonfigurasi ulang sebagai replika baca, endpoint tulis DNS, yang sebelumnya di-resolve ke instance utama lama, akan di-resolve ke instance utama baru.
Sebelum memulai
Sebelum Anda melakukan operasi pengalihan, lakukan hal berikut:
- Jika Anda belum melakukannya, buat replika DR.
- Pastikan instance utama dan replika DR online.
- Jika Anda menggunakan endpoint penulisan 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, maka klien tidak akan dapat terhubung ke instance utama baru setelah operasi pengalihan selesai.
- Buat cadangan sesuai permintaan dari instance utama. Pencadangan ini merupakan tindakan pencegahan jika Anda perlu memulihkan data dari kegagalan yang tidak terduga.
Lakukan 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 Anda inginkan untuk menggantikan peran instance utama.
REST v1
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project Google Cloud project 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 Google Cloud project 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 region atau bencana, Anda dapat melakukan DR dengan memanggil operasi failover replika ke replika DR yang ditetapkan. Untuk melakukan failover replika, Anda mempromosikan replika DR. Berbeda dengan pengalihan, promosi replika DR dilakukan segera.
Karena replika DR segera mengambil peran instance utama, ada kemungkinan replika tidak memiliki semua data dari instance utama lama karena jeda replikasi. Oleh karena itu, failover replika dapat menyebabkan kehilangan data.
Sebagai bagian dari proses promosi, failover replika mencadangkan instance utama baru (replika DR sebelumnya) tepat setelah replika DR menjadi instance utama baru. Setelah pencadangan ini selesai, pemulihan point-in-time (PITR) akan diaktifkan sepenuhnya pada instance utama baru. Pencadangan ini dapat memerlukan waktu antara 5 dan 15 menit untuk diselesaikan, bergantung pada ukuran disk instance primer baru (dan lama). Selama periode pencadangan ini, PITR tidak tersedia.
Saat instance primer lama kembali online, proses failover replika akan membuat cadangan. Setelah pencadangan ini dilakukan, 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 di-resolve ke instance utama lama, akan di-resolve ke instance utama baru.
Sebelum memulai
Sebelum Anda dapat melakukan failover replika, lakukan hal berikut:
- Jika Anda belum melakukannya, maka buat replika DR.
- Pastikan replika DR online dan responsif.
Lakukan 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 dari instance utama dan replika DR.
- REPLICA_NAME: nama replika DR.
- ENABLE_REPLICA_FAILOVER: tetapkan ke
true
untuk menggunakan failover replika. Jika Anda menyetel kefalse
, API akan menggunakan metodepromoteReplica
biasa 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 dari instance utama dan replika DR.
- REPLICA_NAME: nama replika DR.
- ENABLE_REPLICA_FAILOVER: tetapkan ke
true
untuk menggunakan failover replika. Jika Anda menyetel kefalse
, API akan menggunakan metodepromoteReplica
biasa 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.
Periksa status fase pertama.
Konsol
Untuk memeriksa apakah replika DR telah dipromosikan ke 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 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, 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 di instance untuk menemukan pesan
RECONFIGURE_OLD_PRIMARY
.Tampilan pesan ini bergantung pada kapan 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 pada instance, lihat Melihat log instance.
Menggunakan PITR dengan DR lanjutan
Baik pengalihan maupun failover replika, jika replika DR dipromosikan menjadi instance utama, dan Anda ingin menggunakan PITR pada instance yang dipromosikan, Anda harus mengaktifkan PITR secara manual.
Setelah PITR diaktifkan, kebijakan retensi log transaksi dan konfigurasi pencadangan akan berlaku. Jika Anda tidak menentukan nilai untuk setelan ini, nilai default 14 hari akan berlaku.
Untuk mengetahui informasi selengkapnya, lihat Menggunakan PITR.
Setelah PITR diaktifkan pada instance utama yang baru, Anda dapat memulihkan instance ke titik waktu mana pun saat instance tersebut menjadi instance utama yang aktif.
Split-brain selama failover replika
Ada kemungkinan terjadinya split-brain saat instance utama terus menerima penulisan sementara replika dipromosikan menggunakan failover replika. Setelah replika dipromosikan, saat instance primer lama tersedia kembali, instance tersebut akan dibangun ulang sebagai replika dari 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 pada replika
Jika instance utama yang diaktifkan dengan PITR dan pencadangan menjadi replika baca, maka kebijakan retensi PITR dan cadangan terakhir dari saat instance tersebut menjadi instance utama akan dipertahankan dan diterapkan selama instance tersebut menjadi replika. Meskipun instance utama baru tidak mencadangkan, cadangan lama dan log transaksi yang digunakan untuk PITR akan dihapus di replika baca sesuai dengan kebijakan terakhir yang 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 Anda perlu menghapus cadangan lebih cepat, Anda dapat menghapus cadangan secara manual. Untuk mengetahui informasi selengkapnya, lihat Menghapus cadangan.
Batasan
- DR tingkat lanjut 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.
- Anda tidak dapat menggunakan konsol Google Cloud untuk melakukan operasi pengalihan atau peralihan replika.
Memecahkan masalah
Masalah | Pemecahan masalah |
---|---|
Operasi pengalihan gagal. |
|
Operasi pengalihan gagal dan instance utama mengalami masalah karena berada 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 Anda untuk menampilkan topologi yang diperbarui. |
Operasi failover replika gagal. |
|
Langkah berikutnya
- Lihat semua layananGoogle Cloud yang tersedia di berbagai lokasi di seluruh dunia.
- Baca tentang kemampuan observasi database
- Memantau instance Cloud SQL