Mempromosikan replika untuk migrasi regional atau pemulihan dari bencana

Halaman ini menjelaskan cara menggunakan dan mempromosikan replika lintas-region (replika yang dibuat di region yang berbeda dari region utama) untuk migrasi regional atau pemulihan dari bencana.

Ringkasan

Ada dua skenario umum untuk mempromosikan replika lintas-region:

  • Migrasi regional: Lakukan migrasi terencana database ke region yang berbeda.
  • Pemulihan dari bencana (disaster recovery): Gagal melalui database ke region lain jika region utama tidak tersedia.

Kedua kasus penggunaan melibatkan penyiapan replikasi lintas-region lalu mempromosikan replika tersebut. Perbedaan utama di antara keduanya adalah apakah promosi replika tersebut direncanakan (dalam kasus migrasi regional) atau tidak direncanakan (failover ke region replika diperlukan untuk melanjutkan operasi karena region utama telah menjadi tidak tersedia).

Migrasi regional

Anda dapat menggunakan replika lintas-region untuk memigrasikan database ke region lain dengan periode nonaktif minimal. Ide umumnya adalah membuat replika di region lain, menunggu hingga replikasi berhasil, mempromosikannya, lalu mengarahkan klien ke instance yang baru dipromosikan.

Langkah-langkah yang terlibat dalam promosi sama seperti langkah mempromosikan replika dalam wilayah; ikuti petunjuk tersebut untuk memastikan bahwa instance yang baru dipromosikan memiliki semua transaksi yang di-commit ke instance utama asli. Setelah Anda mempromosikan replika dan memastikan bahwa instance yang baru dipromosikan berfungsi, update semua klien database agar terhubung ke instance baru.

Pemulihan dari bencana

Replika lintas-region dapat digunakan sebagai bagian dari prosedur pemulihan dari bencana. Anda dapat mempromosikan replika lintas-region untuk beralih ke region lain jika region utama menjadi tidak tersedia dalam waktu yang lebih panjang.

Memverifikasi kriteria failover

Karena replikasi bersifat asinkron, saat terjadi pemadaman layanan regional dan upaya failover dicoba, beberapa transaksi terbaru yang di-commit ke replika utama mungkin akan hilang (tidak direplikasi ke replika). Setiap kali instance utama tidak tersedia, langkah-langkah berikut menunjukkan (1) cara menentukan jumlah data, jika ada, yang mungkin hilang dalam failover lintas region dan (2) cara memastikan bahwa replikasi yang dipromosikan mencerminkan sebanyak mungkin penulisan terbaru.

Pertama, periksa nilai Lag Bytes di dasbor pemantauan. Saat terjadi pemadaman layanan regional di region instance utama, Lag Bytes akan dilaporkan untuk instance utama.

Lalu, hubungkan ke instance replika dengan klien PostgreSQL dengan mengikuti petunjuk di halaman status replikasi (lihat tab Klien psql). Lihat petunjuk yang terkait dengan metrik pg_catalog.pg_last_wal_receive_lsn() dan pg_catalog.pg_last_wal_replay_lsn(). Pastikan bahwa replika sudah memproses semua transaksi yang diterima dari instance utama. Langkah ini memastikan bahwa saat dipromosikan, replika mencerminkan semua transaksi yang diterima sebelum instance utama menjadi tidak tersedia.

Mempromosikan replika baca

Setelah menentukan bahwa kriteria failover terpenuhi, Anda dapat mempromosikan salah satu replika ke instance mandiri yang dapat ditulis. Pertimbangkan skenario berikut:

  • Region A (us-central1) memiliki instance utama Ketersediaan Tinggi (db-a-0)
  • Region B (us-west1) memiliki replika lintas region dengan Ketersediaan Tinggi (db-b-1) sebesar db-a-0
  • Region C (us-east1) memiliki replika lintas region (db-c-1) dari db-a-0

Anda dapat memilih untuk mempromosikan db-b-1 di Wilayah B untuk menjadi instance mandiri yang dapat ditulis.

Lihat Mempromosikan replika untuk petunjuk mendetail.

Pastikan jenis mesin sesuai

Pastikan jenis mesin dari instance yang baru dipromosikan sesuai dengan beban kerjanya dengan memantau metrik pada instance seperti penggunaan CPU dan memori. Jika instance yang baru dipromosikan lebih kecil dari instance utama sebelumnya, sebaiknya ubah ukuran instance yang dipromosikan agar cocok dengan instance utama sebelumnya sehingga dapat menangani jumlah beban yang sama.

Mengaktifkan ketersediaan tinggi untuk instance yang dipromosikan

Untuk konfigurasi pemulihan dari bencana, sebaiknya konfigurasikan replika yang ingin Anda promosikan sebagai replika dengan ketersediaan tinggi. Atau, konfigurasikan instance yang baru dipromosikan sebagai ketersediaan tinggi. Jika memilih untuk tidak mengonfigurasi replika baca dengan ketersediaan tinggi, Anda juga dapat mengonfigurasi instance dengan ketersediaan tinggi jika dan saat Anda mempromosikannya.

Saat dipromosikan, replika baca secara otomatis dikonfigurasi dengan cadangan. Mengonfigurasi replika baca untuk ketersediaan tinggi dilakukan dengan cara yang sama seperti untuk instance utama. Untuk mengetahui informasi selengkapnya, baca mengonfigurasi instance untuk ketersediaan tinggi.

Membuat ulang replika tambahan

Jika Anda mempromosikan replika untuk menjadi instance utama, Anda perlu membuat ulang replika lainnya dari instance utama sebelumnya. Misalnya, pertimbangkan konfigurasi yang direferensikan sebelumnya dan diulang di sini:

  • Region A (us-central1) memiliki instance utama Ketersediaan Tinggi (db-a-0)
  • Region B (us-west1) memiliki replika lintas region (db-b-1) db-a-0
  • Region C (us-east1) memiliki replika lintas region (db-c-1) dari db-a-0

Jika instance utama (db-a-0) tidak tersedia, Anda dapat mempromosikan replika di region B untuk menjadi yang utama. Untuk memiliki replika tambahan di region A dan C lagi, hapus instance lama (instance utama sebelumnya di A, dan replika di C), dan buat replika baca baru dari instance utama baru di B.

Konfigurasi yang dihasilkan adalah:

  • Region A (us-central1) kini memiliki replika lintas region (db-a-1)
  • Region B (us-west1) sekarang memiliki instance utama (db-b-1)
  • Region C (us-east1) kini memiliki replika lintas region baru (db-c-2)