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.
- 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.
Menunjuk replika DR
Untuk melakukan DR lanjutan, Anda harus menetapkan replika DR lintas region terlebih dahulu.
Persyaratan instance utama
Instance utama harus berupa instance edisi Cloud SQL Enterprise Plus dan memiliki replika DR yang ditetapkan.
Jika Anda membuat instance Cloud SQL dengan endpoint tulis DNS, instance utama Anda harus memiliki konfigurasi SSL yang sama dengan replika DR yang ditetapkan sebelum Anda memanggil operasi pengalihan atau failover replika. Misalnya, jika Anda mengonfigurasi replika DR 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 atau failover selesai.
Persyaratan replika DR
Replika baca DR yang ditetapkan harus memenuhi persyaratan berikut:
- Harus berupa instance edisi Cloud SQL Enterprise Plus
- Harus memiliki versi utama dan minor database yang sama dengan instance utama, yang menjalankan MySQL 8.0.31 atau yang lebih baru
Harus berada di region yang terpisah dari instance utama
Harus berupa replika baca langsung; tidak boleh berupa replika bertingkat
Selain menggunakan nilai default, replika DR tidak boleh mengonfigurasi tanda berikut:
replicate_do_db
replicate_ignore_db
replicate_do_table
replicate_wild_do_table
replicate_ignore_table
replicate_wild_ignore_table
Harus menyimpan log transaksi yang digunakan untuk PITR di Cloud Storage
Tidak dapat berupa replika eksternal
Rekomendasi replika DR
Bagian ini memberikan rekomendasi untuk replika DR Anda. Rekomendasi berikut dapat membantu Anda menghindari masalah performa dalam deployment:
- Gunakan ukuran disk yang sama dengan instance utama atau aktifkan pertumbuhan otomatis.
- Gunakan konfigurasi HA yang konsisten. Jika Anda mengaktifkan HA di instance utama, aktifkan juga HA di replika DR.
- Gunakan konfigurasi cache data yang konsisten. Jika Anda mengaktifkan cache data di instance utama, aktifkan juga cache data di replika DR.
- Konfigurasi flag database yang sesuai untuk replika DR Anda sebelum dan setelah operasi pengalihan atau failover replika.
Buat replika untuk memenuhi persyaratan replika DR
Jika instance utama belum memiliki replika baca lintas region yang memenuhi persyaratan replika DR, buatlah.
Konsol
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Temukan instance utama.
- Di kolom Tindakan, klik menu Tindakan Lainnya.
- Pilih Buat replika baca.
- Di kolom Instance ID, masukkan nama untuk replika DR.
- Di kolom Database version, versi utama yang sama dengan instance utama akan dipilih untuk Anda.
- Jika Anda menggunakan MySQL 8.0, di kolom Versi minor, pertahankan versi minor yang telah dipilih sebelumnya. Replika DR dan instance utama harus memiliki versi minor database yang sama.
- Di bagian Pilih region dan ketersediaan zona di halaman,
lakukan hal berikut:
- Pilih region _lain_ dari region instance utama Anda.
- Opsional. Pilih Beberapa zona untuk replika DR.
- Opsional. Pilih Zona primer dan sekunder untuk replika DR.
- Di bagian Sesuaikan instance Anda pada halaman, Anda dapat memperbarui setelan untuk replika DR Anda. Untuk mengetahui detail selengkapnya tentang setiap setelan, lihat halaman Tentang setelan instance.
- Untuk Machine shapes, pilih jenis mesin yang sama dengan instance utama Anda.
- Untuk Flag, konfigurasikan flag yang diperlukan untuk database Anda.
- Klik Buat replika.
Cloud SQL membuat cadangan instance utama dan membuat replika. Anda akan dikembalikan ke halaman instance untuk instance utama.
gcloud
Untuk membuat replika yang memenuhi persyaratan replika DR, jalankan perintah berikut:
gcloud sql instances create REPLICA_NAME \ --master-instance-name=PRIMARY_INSTANCE_NAME \ --region=REPLICA_REGION_NAME \ --database-version=DATABASE_VERSION \ --tier=MACHINE_TYPE \ --availability-type=AVAILABILITY_TYPE --edition="ENTERPRISE_PLUS"
Ganti variabel berikut:
- REPLICA_NAME: nama replika DR.
- PRIMARY_INSTANCE_NAME: nama instance utama.
- REPLICA_REGION_NAME: tentukan region yang berbeda dengan region instance utama.
- DATABASE_VERSION: tentukan string versi yang cocok dengan
versi utama dan minor database instance utama, misalnya
MYSQL_8_0_31
.Versi utama dan minor database harus sama untuk replika DR dan utama.
- MACHINE_TYPE: tentukan jenis mesin yang sama dengan instance utama. Sebaiknya jenis mesin cocok dengan jenis mesin instance utama.
- AVAILABILITY_TYPE: jika instance utama dikonfigurasi untuk ketersediaan
tinggi, sebaiknya tentukan
REGIONAL
untuk mengaktifkan ketersediaan tinggi. - EDITION: tentukan
ENTERPRISE_PLUS
.
Terraform
Untuk membuat replika DR, gunakan resource Terraform.
REST v1
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PRIMARY_INSTANCE_NAME: nama instance utama.
- PROJECT_ID: ID atau nomor project Google Cloud project dari instance utama dan replika DR.
- String versi DATABASE_VERSION: yang cocok dengan versi utama dan
minor database instance utama, misalnya
MYSQL_8_0_31
. Versi database harus sama untuk replika DR dan utama. - REPLICA_NAME: nama instance replika DR yang Anda buat.
- REPLICA_REGION: region instance replika DR. Region replika harus berbeda dengan region instance utama.
- MACHINE_TYPE: tentukan jenis mesin yang sama dengan instance utama. Sebaiknya pilih jenis mesin yang sama dengan instance utama.
- AVAILABILITY_TYPE: jika instance utama dikonfigurasi untuk ketersediaan
tinggi, sebaiknya tentukan
REGIONAL
untuk mengaktifkan ketersediaan tinggi.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Meminta isi JSON:
{ "masterInstanceName": "PRIMARY_INSTANCE_NAME", "project": "PROJECT_ID", "databaseVersion": "DATABASE_VERSION", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", "availabilityType": "AVAILABILITY_TYPE", "settingsVersion": 0, "replicationType": "ASYNCHRONOUS", } }
Untuk mengirim permintaan Anda, 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:
- PRIMARY_INSTANCE_NAME: nama instance utama.
- PROJECT_ID: ID atau nomor project Google Cloud project dari instance utama dan replika DR.
- String versi DATABASE_VERSION: yang cocok dengan versi utama dan
minor database instance utama, misalnya
MYSQL_8_0_31
. Versi database harus sama untuk replika DR dan utama. - REPLICA_NAME: nama instance replika DR yang Anda buat.
- REPLICA_REGION: region instance replika DR. Region replika harus berbeda dengan region instance utama.
- MACHINE_TYPE: tentukan jenis mesin yang sama dengan instance utama. Sebaiknya ukuran disk cocok dengan ukuran disk instance utama.
- AVAILABILITY_TYPE: jika instance utama dikonfigurasi untuk ketersediaan
tinggi, sebaiknya tentukan
REGIONAL
untuk mengaktifkan ketersediaan tinggi.
Metode HTTP dan URL:
POST https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances
Meminta isi JSON:
{ "masterInstanceName": "PRIMARY_INSTANCE_NAME", "project": "PROJECT_ID", "databaseVersion": "DATABASE_VERSION", "name": "REPLICA_NAME", "region": "REPLICA_REGION", "settings": { "tier": "MACHINE_TYPE", "availabilityType": "AVAILABILITY_TYPE", "settingsVersion": 0, "replicationType": "ASYNCHRONOUS", } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Menetapkan replika DR untuk instance utama
Prosedur berikut menjelaskan cara menetapkan salah satu replika lintas region dari instance utama sebagai replika DR untuk pengalihan atau failover replika.
Konsol
Untuk menetapkan replika DR untuk instance utama, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Cari dan pilih instance utama. Halaman Ringkasan untuk instance utama akan muncul.
- Di menu navigasi, klik Replica.
- Dalam daftar replika baca, temukan replika baca lintas region yang ingin Anda tetapkan sebagai replika DR.
- Untuk replika, klik tombol more_vert Tindakan, lalu pilih Tetapkan sebagai replika DR.
- Klik Konfirmasi.
gcloud
Untuk menetapkan replika DR untuk instance utama, gunakan perintah berikut:
gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --failover-dr-replica-name=REPLICA_NAME
Ganti variabel berikut:
- PRIMARY_INSTANCE_NAME: nama instance utama.
- REPLICA_NAME: nama replika DR.
Terraform
Untuk menetapkan replika DR untuk instance utama, gunakan resource Terraform.
REST v1
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PRIMARY_INSTANCE_NAME: nama instance utama.
- REPLICA_NAME: nama replika DR.
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME
Meminta isi JSON:
{ "replicationCluster": { "failoverDrReplicaName": "REPLICA_NAME" } }
Untuk mengirim permintaan Anda, 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:
- PRIMARY_INSTANCE_NAME: nama instance utama.
- REPLICA_NAME: nama replika DR.
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME
Meminta isi JSON:
{ "replicationCluster": { "failoverDrReplicaName": "REPLICA_NAME" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Mengubah penetapan replika DR
Jika replika memenuhi persyaratan, Anda dapat menetapkan replika lain sebagai replika DR. Replika DR lama kehilangan penetapan replika DR.
Konsol
Untuk mengubah replika DR untuk instance utama, lakukan langkah-langkah berikut:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Cari dan pilih instance utama. Halaman Ringkasan untuk instance utama akan muncul.
- Di menu navigasi, klik Replica.
- Dalam daftar replika baca, temukan replika baca lintas region yang ingin Anda tetapkan sebagai replika DR baru.
- Untuk replika, klik tombol more_vert Tindakan, lalu pilih Tetapkan sebagai replika DR.
gcloud
Untuk mengubah replika DR, jalankan perintah designate lagi, dan tentukan replika DR yang berbeda.
REST
Untuk mengubah replika DR, buat permintaan API tetapkan lagi, dan tentukan replika DR yang berbeda.
Melihat penetapan replika DR
Anda dapat memeriksa replika DR mana yang ditetapkan ke instance utama menggunakan gcloud CLI atau Cloud SQL Admin API. Anda juga dapat memeriksa apakah replika merupakan replika DR yang ditetapkan.
Untuk mengetahui replika DR mana yang ditetapkan untuk instance utama, gunakan prosedur berikut.
Konsol
Untuk mengetahui replika baca mana yang merupakan replika DR yang ditetapkan untuk instance utama, lakukan langkah berikut:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Cari dan pilih instance utama. Halaman Ringkasan untuk instance utama akan muncul.
- Di menu navigasi, klik Replica.
- Dalam daftar replika baca, pastikan
MySQL disaster recovery replica
muncul di kolom Jenis untuk replika DR yang ditetapkan.
gcloud
Untuk mengetahui instance mana yang merupakan replika DR yang ditetapkan dari instance utama, gunakan perintah berikut:
gcloud sql instances describe PRIMARY_INSTANCE_NAME
Ganti variabel berikut:
- PRIMARY_INSTANCE_NAME: nama instance utama
Output perintah ini berisi kolom bernama
failoverDrReplica
yang mengidentifikasi replika DR yang ditetapkan.
REST v1
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project Google Cloud project yang berisi instance.
- PRIMARY_INSTANCE_NAME: nama instance utama.
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME
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 yang berisi instance.
- PRIMARY_INSTANCE_NAME: nama instance utama.
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Untuk memeriksa apakah replika adalah replika DR, gunakan salah satu prosedur berikut.
Konsol
Untuk memeriksa apakah instance replika adalah replika DR, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Temukan instance replika.
- Pastikan
MySQL disaster recovery replica
muncul di kolom Type untuk replika DR yang ditetapkan.
gcloud
Untuk memeriksa apakah instance replika adalah replika DR, jalankan perintah berikut:
gcloud sql instances describe REPLICA_NAME
Ganti variabel berikut:
- REPLICA_NAME: nama replika baca yang ingin Anda periksa
Jika replika adalah replika DR, output perintah akan berisi kolom drReplica=true
.
REST v1
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project Google Cloud project yang berisi instance.
- REPLICA_NAME: nama replika.
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/REPLICA_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima kode status yang menandakan proses berhasil (2xx), dan sebuah respons kosong.
REST v1beta4
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- PROJECT_ID: ID atau nomor project Google Cloud project yang berisi instance.
- REPLICA_NAME: nama replika.
Metode HTTP dan URL:
GET https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME
Untuk mengirim permintaan, perluas salah satu opsi berikut:
Anda akan menerima kode status yang menandakan proses berhasil (2xx), dan sebuah respons kosong.
Menghapus replika DR
Anda dapat menghapus penetapan replika DR dari instance utama. Namun, jika tidak ada replika DR yang ditetapkan ke instance utama, Anda tidak dapat melakukan pengalihan atau failover replika.
Konsol
Untuk menghapus replika DR yang ditetapkan dari instance utama, lakukan langkah-langkah berikut:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Cari dan pilih instance utama. Halaman Ringkasan untuk instance utama akan muncul.
- Di menu navigasi, klik Replica.
- Dalam daftar replika baca, temukan replika baca lintas region yang ingin Anda hapus.
- Untuk replika, klik tombol more_vert Tindakan, lalu pilih Hapus sebagai replika DR.
- Klik Konfirmasi.
gcloud
Untuk menghapus penetapan replika DR, jalankan perintah berikut pada instance utama:
gcloud sql instances patch PRIMARY_INSTANCE_NAME \ --clear-failover-dr-replica-name
Ganti variabel berikut:
- PRIMARY_INSTANCE_NAME: nama instance utama tempat Anda ingin menghapus replika DR yang ditetapkan
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.
- PRIMARY_INSTANCE_NAME: nama instance utama.
- Tetapkan kolom
failoverDrReplicaName
ke string kosong.
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME
Meminta isi JSON:
{ "replicationCluster": { "failoverDrReplicaName": "" } }
Untuk mengirim permintaan Anda, 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.
- PRIMARY_INSTANCE_NAME: nama instance utama.
- Tetapkan kolom
failoverDrReplicaName
ke string kosong.
Metode HTTP dan URL:
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME
Meminta isi JSON:
{ "replicationCluster": { "failoverDrReplicaName": "" } }
Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:
Anda akan menerima respons JSON yang mirip dengan yang berikut ini:
Melakukan pengalihan
Setelah menetapkan 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. Setelah pencadangan ini selesai, pemulihan point-in-time (PITR) akan diaktifkan sepenuhnya di instance utama baru. Pencadangan ini dapat memerlukan waktu antara 5 dan 15 menit untuk diselesaikan, bergantung pada ukuran disk. Cakupan PITR dimulai hanya 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 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:
- Tentukan replika DR. Anda hanya dapat melakukan pengalihan antara instance utama dan replika DR yang ditetapkan.
- 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
Konsol
Untuk melakukan operasi pengalihan, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Temukan replika DR yang ditetapkan dari instance utama.
- Klik instance replika DR. Halaman Ringkasan untuk replika DR akan muncul.
- Klik tombol Switchover.
- Di halaman Lakukan pengalihan antara replika utama dan DR, masukkan nama instance utama di kolom ID Instance.
- Klik Switchover.
gcloud
Untuk melakukan operasi pengalihan, jalankan perintah berikut:
gcloud sql instances switchover REPLICA_NAME [--db-timeout=TIMEOUT_DURATION ]
Ganti variabel berikut:
- REPLICA_NAME: nama replika DR yang ditetapkan yang Anda inginkan untuk menggantikan peran instance utama.
- TIMEOUT_DURATION: opsional. Periode waktu tunggu untuk memungkinkan penyelesaian operasi database pada instance.
Jika Anda tidak menentukan parameter ini, operasi pengalihan mencakup waktu tunggu 10 menit.
Anda dapat meningkatkan nilai waktu tunggu ini dengan menentukan
parameter --db-timeout
. Ganti TIMEOUT_DURATION dengan
durasi jangka waktu hingga 24 jam, termasuk notasi awal untuk
format. Misalnya, untuk 30 detik, tentukan 30s
. Untuk 24 jam, tentukan
24h
. Anda juga dapat menentukan satuan waktu pecahan dengan
menggunakan desimal hingga 9 tempat. Misalnya, untuk 30,5 menit,
tentukan 30.5m
.
Jika tidak ada operasi yang tertunda, Anda dapat mengurangi nilai waktu tunggu ini.
Terraform
Untuk memulai operasi pengalihan, gunakan resource Terraform. Untuk menjadikan replika DR sebagai instance utama baru, jalankan contoh pertama.
Untuk menjadikan instance utama asli sebagai replika instance utama baru, gunakan contoh kedua.
Jika pengalihan berhasil diselesaikan,
saat Anda menjalankan terraform apply
untuk sampel kedua,
maka pesan yang mirip dengan berikut akan muncul:
No changes. Your infrastructure matches the configuration.
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 yang ditetapkan. 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 tetapkan replika DR. Anda hanya dapat melakukan failover replika antara instance utama dan replika DR yang ditetapkan.
- Pastikan replika DR online dan responsif.
Lakukan operasi failover replika
Konsol
Untuk melakukan operasi failover replika, lakukan hal berikut:
-
Di konsol Google Cloud , buka halaman Instance Cloud SQL.
- Temukan replika DR yang ditetapkan dari instance utama.
- Klik instance replika DR. Halaman Ringkasan untuk replika DR akan muncul.
- Klik tombol Replica Failover.
- Di halaman Lakukan failover replika antara replika primer dan DR, masukkan nama instance primer di kolom ID Instance untuk mengonfirmasi bahwa 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 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 MySQL 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
Dengan failover replika dan pengalihan, segera setelah replika DR dipromosikan menjadi instance utama, perubahan berikut terjadi untuk mendukung pencadangan dan PITR:
- Konfigurasi pencadangan, termasuk penjadwalan pencadangan otomatis, disalin dari instance utama lama ke instance utama baru.
- Jika dinonaktifkan, flag konfigurasi binlog akan diaktifkan untuk mengaktifkan PITR.
Cadangan baru diambil untuk mendukung PITR di instance utama baru.
Kebijakan retensi log transaksi disalin dari instance utama lama ke instance utama baru.
Untuk kebijakan retensi log transaksi dan konfigurasi cadangan, 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 pencadangan otomatis dan membuat cadangan pertama instance utama baru. Jika Anda ingin cakupan PITR dimulai lebih awal, sebaiknya verifikasi bahwa pencadangan pertama berhasil. Instance utama yang baru dipromosikan memiliki cakupan PITR hanya setelah pencadangan otomatis pertama berhasil diselesaikan.
Untuk mengetahui informasi selengkapnya tentang cara melihat cadangan yang tersedia untuk instance, lihat Melihat daftar cadangan.
Cakupan PITR untuk instance selama failover replika dan switchover
Saat berpartisipasi dalam operasi pengalihan atau failover replika, instance menghabiskan waktu sebagai replika baca. PITR dan pemulihan cadangan didukung selama jangka waktu saat instance digunakan sebagai replika baca dan sebagai instance utama.
Anda dapat melakukan PITR ke waktu sebelum pengalihan saat instance menjadi instance utama. Untuk operasi pengalihan dan failover replika, Cloud SQL memulai pencadangan 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, bergantung pada ukuran disk.
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
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.
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. |
|
Tidak dapat mengetahui apakah replikasi tidak terjadi | Hubungkan ke replika dan ketik:
show slave status;
Anda juga dapat melihat status replikasi untuk replika di dasbor pemantauan Cloud SQL. Untuk mengetahui informasi selengkapnya, lihat Memantau instance Cloud SQL. |
Anda menerima pesan error berikut:
|
Anda tidak dapat melakukan PITR untuk jangka waktu saat instance mengalami pengalihan ke replika. Log PITR tidak tersedia untuk jangka waktu saat instance menjadi replika.
|
Anda menerima pesan error berikut:
|
Instance utama Anda belum mengalihkan lokasi penyimpanan log transaksinya ke Cloud Storage. Anda dapat mencoba lagi setelah lokasi penyimpanan untuk log transaksi dialihkan, atau Anda dapat mencoba menetapkan replika DR untuk instance utama yang berbeda. Untuk mengetahui informasi selengkapnya tentang memindahkan lokasi penyimpanan log transaksi yang digunakan untuk PITR, lihat Menggunakan pemulihan point-in-time (PITR). |
Anda menerima pesan error berikut:
|
Untuk mengetahui informasi selengkapnya tentang cara menetapkan replika DR dan sintaksis perintah yang benar, lihat Menetapkan replika DR untuk instance utama. |
Langkah berikutnya
- Lihat semua layananGoogle Cloud yang tersedia di berbagai lokasi di seluruh dunia.
- Baca tentang kemampuan observasi database
- Memantau instance Cloud SQL