Peningkatan versi utama tanpa downtime memungkinkan Anda meningkatkan instans RDS PostgreSQL ke versi mesin utama yang lebih tinggi tanpa gangguan layanan. Peningkatan ini menggunakan logical replication untuk menyinkronkan data dari instans sumber ke instans target, lalu mengalihkan traffic melalui jendela read-only singkat.
Cara kerja
Peningkatan berlangsung dalam tiga fase:
Pre-upgrade check — Memvalidasi konfigurasi instans dan mengonfirmasi kompatibilitasnya dengan mode peningkatan tanpa waktu henti.
Tugas Peningkatan — Membuat instance target, menyiapkan replikasi logis, dan menyinkronkan data.
Instance switch — Menyinkronkan sequences dan mengalihkan traffic ke instans target.
Dampak peningkatan
| Phase | Impact | Duration |
|---|---|---|
| DDL restriction | Semua operasi DDL diblokir sejak awal peningkatan hingga proses switch selesai. | Seluruh proses peningkatan |
| WAL log accumulation | Sebuah replication slot dibuat sebelum peningkatan dimulai, menyebabkan akumulasi Write-Ahead Logging (WAL) logs pada instans sumber. Penggunaan disk meningkat sementara, lalu turun setelah logical replication terbentuk. | Dari pembuatan replication slot hingga subscriber di target mulai berjalan |
| Logical replication sync | Logical replication menghasilkan beban tambahan pada instans sumber. Dampaknya sebanding dengan jumlah database dan write traffic. Pantau penggunaan resource wal_sender untuk mengevaluasi beban tersebut. | Dari saat logical replication terbentuk hingga switch selesai |
| Switch (read-only) | Instans memasuki mode read-only selama sequences disinkronkan. | Sebanding dengan jumlah sequences |
Prasyarat
Sebelum memulai, pastikan Anda telah:
Memiliki instans RDS PostgreSQL dengan Major Version Upgrade yang terlihat di panel navigasi kiri.
Menghapus semua read-only instances yang terhubung ke instans primary atau memperbarui aplikasi agar terhubung langsung ke endpoint instans primary.
Langkah 1: Jalankan pre-upgrade check
Peningkatan tanpa downtime menggunakan logical replication, yang memiliki persyaratan kompatibilitas tertentu. Pre-upgrade check memvalidasi instans Anda terhadap persyaratan tersebut dan menandai hal apa pun yang dapat menghambat peningkatan.
Masuk ke Konsol ApsaraDB RDS, lalu buka halaman Instances. Di bilah navigasi atas, pilih wilayah tempat instans Anda berada, kemudian klik ID instans tersebut.
Di panel navigasi kiri, klik Major Version Upgrade.
Di tab Upgrade Check, klik Create Upgrade Check Report.
Pilih versi target di bawah Select The Upgrade Version, atur Upgrade Mode menjadi Zero Downtime, lalu klik OK.
Tinjau hasilnya di bagian Upgrade Check Log.
Lanjutkan ke Langkah 2 hanya jika Check Result menunjukkan successful. Jika pemeriksaan gagal, klik View Information untuk melihat laporan detail. Untuk bantuan menafsirkan error, lihat Interpreting the RDS PostgreSQL major version upgrade check report.
Jika plugin dibuat di instans target setelah pemeriksaan berhasil, jalankan kembali pemeriksaan tersebut sebelum melanjutkan.
Langkah 2: Buat tugas peningkatan
Klik tab Upgrade Instance, baca peringatan, pilih versi target di bawah Select The Upgrade Version, lalu klik Create Upgrade Task.
Di dialog konfirmasi, klik OK.
Di bagian Create Major Version Upgrade Task, atur Upgrade Mode menjadi Zero-downtime.
Klik Create Now.
Status instans berubah menjadi Migrating saat tugas peningkatan dimulai. Lacak progresnya di tab Upgrade History.
Monitor beban instans selama peningkatan
Pantau beban instans dan penggunaan disk selama peningkatan:
Disk usage: Meningkat selama akumulasi WAL log, lalu turun setelah logical replication terbentuk.
CPU and network load: Meningkat selama fase sinkronisasi logical replication. Periksa
wal_senderdi setiap kategori resource untuk mengevaluasi dampaknya.
Langkah 3: Verifikasi dan alihkan ke instans target
Verifikasi instans target
Saat status instans berubah dari Migrating menjadi Migrating Data, logical replication telah terbentuk. Pada titik ini, hubungkan ke instans target untuk memverifikasi data yang telah ditingkatkan.
Buka tab Upgrade History.
Salin Higher Version Verification Address dari catatan peningkatan target.
Hubungkan ke instans target dan verifikasi bahwa datanya sesuai ekspektasi Anda.
Alihkan traffic ke instans target
Setelah memastikan data sudah benar dan Upgrade Result menunjukkan Synchronizing:
Di kolom Upgrade Log, klik Change.
Atur Tolerable Write Suspension Time (dalam detik) dan klik OK.
Selama proses switch, sequences disinkronkan dan instans memasuki mode read-only (Upgrade Result berubah menjadi Read Only). Jika sinkronisasi sequences melebihi tolerable write suspension time, sistem akan kembali ke status Synchronizing dan menghapus batasan read-only — switch tidak dilanjutkan, dan Anda dapat mencoba ulang.
Periksa hasil switch:
Migrating — Switch sedang berlangsung. Untuk membatalkan, klik Break di kolom Upgrade Log.
The Instance Is Running. — Switch selesai. Verifikasi versi mesin saat ini di halaman Basic Information instans.
Rollback
Sebelum beralih, sistem secara otomatis mencadangkan instans versi sebelumnya. Jika Anda perlu melakukan rollback setelah beralih:
Klon instans baru dari backup terakhir instans versi lama yang diambil sebelum switch.
Perbarui endpoint instans yang diklon agar sesuai dengan endpoint instans asli.
Status hasil peningkatan
Tab Upgrade History menampilkan status berikut di kolom Upgrade Result:
| Status | Meaning | Available actions |
|---|---|---|
| Running | Tugas peningkatan sedang berjalan. | None |
| Synchronizing | Logical replication dalam kondisi sehat. | Change: Alihkan ke instans target. Cancel: Batalkan peningkatan ini. |
| Replication Interrupted | Logical replication tidak normal. | Lihat log peningkatan untuk mengidentifikasi penyebabnya. Cancel: Batalkan peningkatan ini. |
| Read Only | Switch sedang berlangsung. Instans berada dalam mode read-only selama sequences disinkronkan. | Break: Batalkan operasi switch ini. |
| Switch | Sinkronisasi sequences selesai; tugas akhir sedang berjalan. | None |
| Canceled | Tugas peningkatan dibatalkan. | None |
| Success | Peningkatan selesai. | None |