Gunakan pemulihan dari bencana (DR) lanjutan

Halaman ini menjelaskan cara menggunakan pemulihan bencana (DR) lanjutan. DR lanjutan memberikan dua kemampuan utama:

  • Failover replika memungkinkan Anda langsung menggagalkan instance utama ke replika DR jika terjadi kegagalan regional.
  • Switchover memungkinkan Anda membalikkan peran instance utama dan replika DR yang ditetapkan tanpa kehilangan data. Anda dapat menggunakan switchover untuk memulihkan deployment ke status deployment aslinya setelah failover replika, atau Anda dapat menggunakan switchover untuk menguji DR.

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

Menetapkan replika DR

Untuk melakukan DR lanjutan, Anda harus menetapkan replika DR lintas region terlebih dahulu.

Sebelum memulai

Anda harus menggunakan Google Cloud SDK versi 470.0.0 atau yang lebih baru dan perintah gcloud beta. Untuk memeriksa versi Google Cloud SDK, jalankan gcloud --version. Untuk mengupdate Google Cloud SDK, jalankan gcloud components update.

Untuk menginstal Google Cloud SDK, lihat artikel Menginstal gcloud CLI.

Persyaratan replika DR

Replika baca DR yang ditetapkan harus memenuhi persyaratan berikut:

  • Harus berupa instance edisi Cloud SQL Enterprise Plus
  • Harus berupa 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 boleh 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 ketersediaan tinggi (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.
  • Konfigurasikan flag database yang sesuai untuk replika DR Anda sebelum dan setelah peralihan atau operasi failover replika.

Buat replika untuk memenuhi persyaratan replika DR

Jika instance utama belum memiliki replika baca lintas region yang memenuhi persyaratan replika DR, buat replika DR.

Konsol

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

    Buka Instance Cloud SQL

  2. Temukan instance utama.
  3. Pada kolom Tindakan, klik menu Tindakan Lainnya.
  4. Pilih Buat replika baca.
  5. Di kolom ID Instance, masukkan nama untuk replika DR.
  6. Di kolom Database version, MySQL 8.0 sudah dipilih.
  7. Di kolom Versi minor, simpan versi minor yang telah dipilih sebelumnya. Replika DR dan instance utama harus memiliki versi minor database yang sama.
  8. Di bagian Pilih ketersediaan region dan zona pada halaman ini, lakukan langkah-langkah berikut:
    • Pilih region yang berbeda dengan region instance utama Anda.
    • Opsional. Pilih Multiple zone untuk replika DR.
    • Opsional. Pilih Primary dan Secondary zone untuk replika DR.
  9. Di bagian Menyesuaikan instance Anda pada halaman, Anda dapat memperbarui setelan untuk replika DR. Untuk mengetahui detail selengkapnya tentang setiap setelan, lihat halaman Tentang setelan instance.
  10. Untuk Machine shape, pilih jenis mesin yang sama dengan instance utama Anda.
  11. Untuk Tanda, konfigurasi tanda yang diperlukan untuk database Anda.
  12. 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: menentukan region yang berbeda dengan region instance utama.
  • DATABASE_VERSION: menentukan string versi yang cocok dengan versi utama dan minor database dari instance utama, misalnya MYSQL_8_0_31.

    Versi utama dan minor database harus sama untuk replika utama dan DR.

  • MACHINE_TYPE: menentukan jenis mesin yang sama dengan instance utama. Sebaiknya jenis mesin sesuai dengan jenis mesin instance utama.
  • AVAILABILITY_TYPE: jika instance utama dikonfigurasi untuk ketersediaan tinggi, sebaiknya tentukan REGIONAL untuk mengaktifkan ketersediaan tinggi.
  • EDITION: menentukan ENTERPRISE_PLUS.

REST v1

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PRIMARY_INSTANCE_NAME: nama instance utama.
  • PROJECT_ID: ID atau nomor project project Google Cloud dari instance utama dan replika DR.
  • String versi DATABASE_VERSION: yang cocok dengan versi utama dan minor database dari instance utama, misalnya MYSQL_8_0_31. Versi utama dan minor database harus sama untuk replika utama dan DR.
  • REPLICA_NAME: nama instance replika DR yang Anda buat.
  • REPLICA_REGION: region instance replika DR. Region replika harus berbeda dari region instance utama.
  • MACHINE_TYPE: menentukan 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 melihat respons JSON seperti berikut:

REST v1beta4

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PRIMARY_INSTANCE_NAME: nama instance utama.
  • PROJECT_ID: ID atau nomor project project Google Cloud dari instance utama dan replika DR.
  • String versi DATABASE_VERSION: yang cocok dengan versi utama dan minor database dari instance utama, misalnya MYSQL_8_0_31. Versi utama dan minor database harus sama untuk replika utama dan DR.
  • REPLICA_NAME: nama instance replika DR yang Anda buat.
  • REPLICA_REGION: region instance replika DR. Region replika harus berbeda dari region instance utama.
  • MACHINE_TYPE: menentukan jenis mesin yang sama dengan instance utama. Sebaiknya ukuran disk sesuai 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 melihat respons JSON seperti berikut:

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 bagi instance utama, gunakan gcloud CLI atau Cloud SQL Admin API.

gcloud

Untuk menetapkan replika DR ke instance utama, gunakan perintah berikut:

gcloud beta sql instances patch PRIMARY_INSTANCE_NAME \
   --failover-dr-replica-name=PROJECT_ID:REPLICA_NAME

Ganti variabel berikut:

  • PRIMARY_INSTANCE_NAME: nama instance utama.
  • PROJECT_ID: ID atau nomor project project Google Cloud dari instance utama dan replika DR. Anda harus menentukan project ID sebagai bagian dari penetapan.
  • 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. Anda harus menentukan project ID sebagai bagian dari penetapan.
  • 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": "PROJECT_ID:REPLICA_NAME"
   }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

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. Anda harus menentukan project ID sebagai bagian dari penetapan.
  • PRIMARY_INSTANCE_NAME: nama instance utama.
  • REPLICA_NAME: nama replika DR.

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Meminta isi JSON:

{
  "replicationCluster": {
     "failoverDrReplicaName": "PROJECT_ID:REPLICA_NAME"
   }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

Mengubah penetapan replika DR

Jika replika memenuhi persyaratan, Anda dapat menetapkan replika yang berbeda sebagai replika DR. Replika DR lama kehilangan penetapan replika DR.

gcloud

Untuk mengubah replika DR, jalankan lagi perintah penetapan, dan tentukan replika DR yang berbeda.

REST

Untuk mengubah replika DR, buat lagi permintaan API yang ditentukan, dan tentukan replika DR yang berbeda.

Lihat 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 adalah replika DR yang ditetapkan.

Untuk mengetahui replika DR mana yang ditetapkan untuk instance utama, gunakan prosedur berikut.

gcloud

Untuk mengetahui instance mana yang merupakan replika DR yang ditetapkan dari instance utama, gunakan perintah berikut:

gcloud beta 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 dari project Google Cloud 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 dari project Google Cloud 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.

gcloud

Untuk memeriksa apakah instance replika adalah replika DR, jalankan perintah berikut:

gcloud beta sql instances describe REPLICA_NAME

Ganti variabel berikut:

  • REPLICA_NAME: nama replika baca yang ingin Anda periksa

Jika replika adalah replika DR, output perintah berisi kolom drReplica=true.

REST v1

Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:

  • PROJECT_ID: ID atau nomor project dari project Google Cloud 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 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 dari project Google Cloud yang berisi instance.
  • REPLICA_NAME: nama replika.

Metode HTTP dan URL:

GET https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/REPLICA_NAME

Untuk mengirim permintaan, perluas salah satu opsi berikut:

Anda akan menerima respons JSON yang mirip dengan yang berikut ini:

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.

gcloud

Untuk menghapus penetapan replika DR, jalankan perintah berikut pada instance utama:

gcloud beta 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 project Google Cloud 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 melihat respons JSON seperti berikut:

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.
  • PRIMARY_INSTANCE_NAME: nama instance utama.
  • Tetapkan kolom failoverDrReplicaName ke string kosong.

Metode HTTP dan URL:

PATCH https://sqladmin.googleapis.com/v1beta4/projects/PROJECT_ID/instances/PRIMARY_INSTANCE_NAME

Meminta isi JSON:

{
  "replicationCluster": {
     "failoverDrReplicaName": ""
   }
}

Untuk mengirim permintaan Anda, perluas salah satu opsi berikut:

Anda akan melihat respons JSON seperti berikut:

Melakukan {i>switchover<i}

Setelah menetapkan replika DR, Anda dapat melakukan operasi pengalihan. Namun, sebagai praktik terbaik, hindari melakukan operasi pengalihan dalam situasi berikut:

  • Instance utama sedang aktif digunakan.
  • Operasi admin sedang berlangsung, seperti pencadangan otomatis atau pengaktifan atau penonaktifan ketersediaan tinggi (HA).

Untuk menghindari waktu tunggu, pertimbangkan untuk melakukan peralihan saat volume transaksi rendah.

Setelah pengalihan selesai, operasi akan mengambil cadangan instance utama yang baru (replika DR sebelumnya) segera setelah instance utama yang baru dipromosikan. Setelah pencadangan ini selesai, pemulihan point-in-time (PITR) sepenuhnya diaktifkan pada instance utama yang baru. Proses pencadangan ini dapat memerlukan waktu antara 5 dan 15 menit, tergantung ukuran {i>disk<i}. Cakupan PITR dimulai hanya setelah pencadangan ini selesai. Untuk informasi selengkapnya tentang pertimbangan penggunaan PITR dengan DR lanjutan, lihat Menggunakan PITR dengan DR lanjutan.

Setelah operasi peralihan selesai, Anda akan melihat bahwa arah replikasi terbalik.

Sebelum memulai

Sebelum melakukan operasi pengalihan, lakukan hal berikut:

  • Tetapkan replika DR. Anda hanya dapat melakukan pengalihan antara instance utama dan replika DR yang ditetapkan.
  • Verifikasi bahwa instance utama dan replika DR sudah online.
  • Ambil pencadangan on demand dari instance utama. Pencadangan ini adalah tindakan pencegahan jika Anda perlu melakukan pemulihan dari kegagalan tak terduga.

Melakukan operasi peralihan

gcloud

Untuk melakukan operasi switchover, jalankan perintah berikut:

gcloud beta sql instances switchover REPLICA_NAME
   [--db-timeout=TIMEOUT_DURATION ]

Ganti variabel berikut:

  • REPLICA_NAME: nama replika DR yang ditetapkan yang Anda inginkan untuk beralih peran dengan instance utama.
  • TIMEOUT_DURATION: opsional. periode waktu tunggu untuk penyelesaian operasi database pada instance.
  • Jika Anda tidak menentukan parameter ini, operasi switchover akan menyertakan waktu tunggu selama 10 menit.

    Anda dapat menambah nilai waktu tunggu ini dengan menentukan parameter --db-timeout. Ganti TIMEOUT_DURATION dengan durasi jangka waktu hingga 24 jam, termasuk notasi awal untuk format tersebut. Misalnya, untuk 30 detik, tentukan 30s. Untuk 24 jam, tentukan 24h. Anda juga dapat menentukan satuan pecahan periode waktu menggunakan desimal hingga 9 angka. Misalnya, untuk 30,5 menit, tentukan 30.5m.

    Jika tidak memiliki operasi yang tertunda, Anda dapat mengurangi nilai waktu tunggu ini.

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/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 failover replika, Anda mempromosikan replika DR yang ditetapkan. Berbeda dengan peralihan, promosi replika DR dilakukan secara langsung.

Karena replika DR lintas region mengasumsikan peran instance utama secara langsung, replika tersebut mungkin tidak akan memiliki semua data dari instance utama lama karena adanya jeda replikasi. Oleh karena itu, failover replika dapat menyebabkan kehilangan 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) sepenuhnya diaktifkan pada instance utama yang baru. Proses pencadangan ini dapat memerlukan waktu antara 5 hingga 15 menit, bergantung pada ukuran disk instance utama yang baru (dan lama). Selama periode pencadangan ini, PITR tidak tersedia.

Saat instance utama yang lama kembali online, proses failover replika akan mengambil cadangan. Setelah pencadangan ini diambil, instance utama yang lama dibuat ulang sebagai replika baca dari instance utama yang baru. Dalam proses ini, instance utama lama akan 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 pada instance utama lama akan tetap ada.

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

Sebelum memulai

Sebelum Anda dapat melakukan failover replika, lakukan hal berikut:

  • Jika Anda belum melakukannya, tetapkan replika DR. Anda hanya dapat melakukan failover replika antara instance utama dan replika DR yang ditetapkan.
  • Pastikan replika DR online dan responsif.

gcloud

Untuk memanggil failover replika ke replika DR, gunakan perintah berikut:

gcloud beta 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 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: ditetapkan 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/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. Tahap pertama adalah promosi replika DR. Fase kedua adalah pembuatan ulang instance utama yang lama sebagai replika baca.

Untuk memeriksa status failover replika, periksa status setiap fase.

  1. Periksa status fase pertama dengan menjalankan perintah berikut:

    gcloud sql instances describe REPLICA_NAME

    Ganti variabel berikut:

    • REPLICA_NAME: nama replika DR

    Pada 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.

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

    Untuk mengetahui informasi lebih lanjut tentang cara memeriksa log operasi pada instance, baca artikel Melihat log instance.

Menggunakan PITR dengan DR lanjutan

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

Untuk kebijakan retensi log dan konfigurasi cadangan, sebaiknya pastikan bahwa setelan yang diwarisi dari instance utama yang lama sudah benar untuk instance utama yang baru.

Awal cakupan PITR

Pada akhir operasi pengalihan, Cloud SQL menjadwalkan pencadangan otomatis dan mengambil pencadangan pertama dari instance utama yang baru. Jika Anda ingin cakupan PITR dimulai lebih cepat, sebaiknya pastikan bahwa pencadangan pertama telah berhasil. Instance utama yang baru dipromosikan memiliki cakupan PITR hanya setelah pencadangan otomatis pertama berhasil diselesaikan.

Untuk informasi lebih lanjut cara melihat cadangan yang tersedia untuk instance, baca Melihat daftar cadangan.

Cakupan PITR untuk instance selama peralihan dan failover replika

Saat instance berpartisipasi dalam operasi failover atau failover replika, instance menghabiskan waktu sebagai replika baca. PITR tidak didukung selama jangka waktu yang dihabiskan instance sebagai replika baca. Jika ingin melakukan PITR ke suatu titik waktu sebelum peristiwa pengalihan terjadi, Anda harus mengalihkan kembali instance ke instance utama lagi. Setelah instance beralih kembali ke instance utama, Anda dapat melakukan PITR ke waktu sebelum operasi peralihan yang asli.

Jika Anda tidak dapat menjalankan PITR karena instance utama adalah replika baca pada saat yang diinginkan, Anda harus mencoba permintaan PITR pada instance yang merupakan instance utama yang bertindak pada saat yang diinginkan. Untuk melakukannya, beralihlah ke instance tersebut dan coba lakukan PITR.

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

Penghapusan cadangan dan log transaksi pada replika

Jika instance utama yang diaktifkan dengan PITR dan cadangan menjadi replika baca, kebijakan pencadangan dan retensi PITR terakhir dari waktu sebagai instance utama akan dipertahankan dan diterapkan selama waktunya sebagai replika. Meskipun instance utama yang baru tidak melakukan pencadangan, log cadangan dan transaksi lama yang digunakan untuk PITR akan dihapus pada replika baca sesuai dengan kebijakan yang terakhir dikonfigurasi.

Misalnya, jika instance dikonfigurasi untuk memiliki pencadangan otomatis harian dan menyimpan 7 cadangan dengan log PITR selama 7 hari, maka saat instance ini menjadi replika baca, apa pun 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.
  • 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) pada disk. Guna memeriksa tempat instance menyimpan log-nya untuk PITR, lihat Memeriksa lokasi penyimpanan log transaksi yang digunakan untuk PITR.
  • Anda tidak dapat menetapkan replika eksternal sebagai replika DR.

Memecahkan masalah

Masalah Pemecahan masalah
Operasi peralihan gagal.
  • Pastikan instance memenuhi semua persyaratan replika DR yang dinyatakan.
  • Memeriksa volume transaksi di database. Peralihan mengamankan log biner instance utama di Cloud Storage sebelum melakukan pengalihan. Jika volume transaksi tinggi, waktu tunggu operasi mungkin habis. Sebaiknya coba lagi operasi tersebut saat beban transaksi lebih rendah.
Operasi peralihan gagal dan instance utama macet dalam mode hanya baca. Mulai ulang database untuk mengembalikan instance utama ke mode tulis.
Operasi peralihan telah selesai, tetapi Konsol Google Cloud tidak menampilkan peran baru yang terbalik untuk instance tersebut. Refresh browser Anda untuk menampilkan topologi terbaru.
Operasi failover replika gagal.
  • Pastikan replika DR ditetapkan untuk instance utama dan sedang online.
  • Jika failover ke replika DR gagal, promosikan ke replika baca reguler (non-DR).
Tidak dapat mengetahui apakah replikasi tidak terjadi Hubungkan ke replika dan ketik:

show slave status;
  • Jika replikasi terjadi, kolom pertama "Slave_IO_State" akan menampilkan "Waiting for master to send event" dan kolom "Last_IO_Error" kosong.
  • Jika replikasi tidak terjadi, kolom pertama "Slave_IO_State" akan menampilkan "Connecting to master". dan kolom "Last_IO_Error" menunjukkan error yang mirip dengan "error connecting to master 'cloudsqlreplica@x.x.x.x:3306".

Anda juga dapat melihat status replikasi untuk replika tersebut di dasbor pemantauan Cloud SQL. Untuk mengetahui informasi selengkapnya, lihat Memantau instance Cloud SQL.

Anda menerima pesan error berikut:

"Instance was converted into a replica between the target PITR time and the last available base backup. PITR logs are not available for the period instance was a replica. Please clone from the instance that was primary at time %s"

Anda tidak dapat menjalankan PITR selama jangka waktu tertentu saat instance mengalami peralihan ke replika. Log PITR tidak tersedia untuk jangka waktu saat instance berupa replika.

  • Tinjau daftar operasi untuk instance guna menentukan apakah instance tersebut merupakan replika pada saat itu atau tidak
  • Gunakan daftar operasi untuk menentukan instance mana yang merupakan instance utama pada saat itu.
  • Clone instance tersebut untuk melakukan PITR.

Anda menerima pesan error berikut:

"You can only designate a disaster recovery (DR) replica for primary instances that are storing their PITR logs in Cloud Storage. PITR logs of the instance %s are not stored in Cloud Storage"

Instance utama Anda belum mengalihkan lokasi penyimpanan log transaksinya ke Cloud Storage. Anda dapat mencoba lagi setelah lokasi penyimpanan log transaksi diganti, atau Anda dapat mencoba menetapkan replika DR untuk instance utama yang berbeda.

Untuk informasi selengkapnya tentang memindahkan lokasi penyimpanan log transaksi yang digunakan untuk PITR, lihat Menggunakan pemulihan point-in-time (PITR).

Anda menerima pesan error berikut:

"The specified failover dr replica name REPLICA_NAME must be one of the replicas of the primary instance INSTANCE_NAME".

Pastikan Anda menentukan project ID atau nomor saat menetapkan replika DR untuk instance utama.

Untuk mengetahui informasi selengkapnya tentang cara menetapkan replika DR dan sintaksis perintah yang benar, lihat Menetapkan replika DR untuk instance utama.

Langkah selanjutnya