Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Instans server fleksibel Azure Database for PostgreSQL Anda mendukung PostgreSQL versi 18, 17, 16, 15, 14, 13, 12, 11. Komunitas Postgres merilis versi utama baru yang berisi fitur baru sekitar setahun sekali. Selain itu, setiap versi utama menerima perbaikan bug berkala dalam bentuk rilis minor. Pembaruan versi minor mencakup perubahan yang mudah disesuaikan dengan versi sebelumnya dari aplikasi yang ada. Instans server fleksibel Azure Database for PostgreSQL secara berkala memperbarui versi minor selama jendela pemeliharaan pelanggan.
Peningkatan versi utama lebih rumit daripada peningkatan versi minor. Mereka dapat menyertakan perubahan internal dan fitur baru yang mungkin tidak kompatibel dengan versi sebelumnya dari aplikasi yang ada.
Instans server fleksibel Azure Database for PostgreSQL Anda memiliki fitur yang melakukan peningkatan versi utama server di tempat hanya dengan sekali klik. Fitur ini menyederhanakan proses peningkatan dengan meminimalkan gangguan pada pengguna dan aplikasi yang mengakses server.
Peningkatan di tempat mempertahankan nama server dan pengaturan lain dari server saat ini setelah peningkatan ke versi utama yang lebih baru. Mereka tidak memerlukan migrasi data atau perubahan pada string koneksi aplikasi. Peningkatan di tempat lebih cepat dan melibatkan waktu henti yang lebih singkat daripada migrasi data.
Nota
Azure Database for PostgreSQL mendukung peningkatan versi utama secara langsung ke versi PostgreSQL yang didukung saat ini. Misalnya, Anda dapat meningkatkan versi saat ini mengingat versi target secara resmi didukung oleh Azure pada saat peningkatan. Versi yang tidak didukung tidak dapat dipilih sebagai target peningkatan, dan mencoba meningkatkan ke versi yang tidak digunakan lagi dapat mengakibatkan kegagalan atau gangguan layanan. Selalu lihat kebijakan penerapan versi Azure PostgreSQL dan dokumentasi peningkatan sebelum memulai peningkatan versi utama.
Nota
Pembaruan versi utama ke PostgreSQL 18 dilakukan secara bertahap. Saat ini, MVU ke PostgreSQL 18 tersedia di wilayah AustraliaSoutheast, CanadaCentral, CentralIndia, CentralUS, EastAsia, EastUS2, NorthCentralUS, SouthAfricaNorth, SouthCentralUS, SwedenCentral, WestCentralUS, WestUS2, dan WestUS3.
Proses Peningkatan
Berikut adalah beberapa pertimbangan penting untuk peningkatan versi utama in-place:
- Sebelum memulai peningkatan, pastikan server Anda memiliki setidaknya 10-20% penyimpanan gratis yang tersedia. Selama proses peningkatan, file log sementara dan operasi metadata dapat meningkatkan penggunaan disk. Ruang kosong yang tidak mencukupi dapat mengakibatkan kegagalan pemutakhiran atau masalah rollback.
- Selama proses peningkatan versi utama di tempat, instans server fleksibel Azure Database for PostgreSQL Anda menjalankan prosedur pra-pemeriksaan untuk mengidentifikasi potensi masalah yang mungkin menyebabkan peningkatan gagal.
- Jika pra-pemeriksaan menemukan ketidaksesuaian, akan dibuat peristiwa log yang menunjukkan bahwa pra-pemeriksaan peningkatan gagal, disertai dengan pesan kesalahan.
- Jika pra-pemeriksaan berhasil, instans server fleksibel Azure Database for PostgreSQL menghentikan layanan dan mengambil cadangan implisit tepat sebelum memulai peningkatan. Layanan ini dapat menggunakan cadangan ini untuk memulihkan instans database ke versi sebelumnya jika ada kesalahan peningkatan.
- Instans server fleksibel Azure Database for PostgreSQL menggunakan alat pg_upgrade untuk melakukan peningkatan versi utama di tempat. Layanan ini memberikan fleksibilitas untuk melewati versi dan meningkatkan langsung ke versi yang lebih baru.
- Selama peningkatan versi utama server yang mendukung high availability (HA), layanan menonaktifkan HA, melakukan peningkatan pada server utama, dan kemudian mengaktifkan kembali HA setelah peningkatan selesai.
- Sebagian besar ekstensi secara otomatis ditingkatkan ke versi yang lebih baru selama peningkatan versi utama di tempat, dengan beberapa pengecualian.
- Proses peningkatan versi utama di tempat untuk instans server fleksibel Azure Database for PostgreSQL secara otomatis menyebarkan versi minor terbaru yang didukung.
- Peningkatan versi utama di tempat adalah operasi offline, yang berarti server tidak akan tersedia selama proses. Meskipun sebagian besar peningkatan selesai dalam waktu kurang dari 15 menit, durasi aktual tergantung pada ukuran dan kompleksitas database. Secara khusus, waktu yang diperlukan berbanding lurus dengan jumlah objek (tabel, indeks, skema) dalam instans PostgreSQL Anda. Skema yang lebih besar atau lebih kompleks mungkin mengalami waktu peningkatan yang lebih lama.
- Transaksi jangka panjang atau beban kerja tinggi sebelum peningkatan dapat meningkatkan waktu yang diperlukan untuk mematikan database dan meningkatkan waktu peningkatan.
- Setelah peningkatan versi utama di tempat berhasil, tidak ada cara otomatis untuk kembali ke versi sebelumnya. Namun, Anda dapat melakukan pemulihan pada titik waktu tertentu (PITR) ke waktu sebelum peningkatan dilakukan untuk memulihkan versi instans database sebelumnya.
- Instans server fleksibel Azure Database for PostgreSQL Anda mengambil rekam jepret database Anda selama peningkatan. Rekam jepret diambil sebelum peningkatan dimulai. Jika peningkatan gagal, sistem secara otomatis memulihkan database Anda ke statusnya dari rekam jepret.
- PostgreSQL 16 memperkenalkan langkah-langkah keamanan berbasis peran. Setelah peningkatan versi utama pada instans server fleksibel Azure Database for PostgreSQL, pengguna pertama yang dibuat di server—yang diberikan opsi ADMIN—sekarang akan memiliki hak istimewa admin atas peran lain untuk operasi pemeliharaan penting.
Pertimbangan dan Batasan Peningkatan
Jika operasi pra-pemeriksaan gagal selama peningkatan versi utama di tempat, peningkatan diblokir dengan pesan kesalahan terperinci. Di bawah ini adalah batasan yang diketahui yang dapat menyebabkan peningkatan gagal atau berperilaku tidak terduga:
Konfigurasi Server yang Tidak Didukung
- Replika baca tidak didukung selama peningkatan di lokasi. Anda harus menghapus replika baca (termasuk replika baca bertingkat) sebelum memutakhirkan server utama. Setelah peningkatan, Anda dapat membuat ulang replika tersebut.
- Aturan lalu lintas jaringan dapat memblokir operasi peningkatan.
- Pastikan instans server fleksibel Anda dapat mengirim/menerima lalu lintas pada port 5432 dan 6432 dalam jaringan virtualnya dan ke Azure Storage (untuk pengarsipan log).
- Jika Kelompok Keamanan Jaringan (NSG) membatasi lalu lintas ini, HA tidak akan mengaktifkan kembali secara otomatis pasca-peningkatan. Anda mungkin perlu memperbarui aturan NSG secara manual dan mengaktifkan kembali HA.
- Slot replikasi logis tidak didukung selama pemutakhiran versi utama langsung.
- Server yang menggunakan penyimpanan SSDv2 tidak memenuhi syarat untuk peningkatan versi utama.
- Tampilan bergantung pada
pg_stat_activitytidak didukung selama pembaruan versi utama. - Jika Anda melakukan peningkatan dari PG11 ke versi yang lebih tinggi, Anda harus terlebih dahulu mengonfigurasi server fleksibel Anda untuk menggunakan autentikasi SCRAM dengan mengaktifkan SCRAM dan mengatur ulang semua kata sandi peran masuk.
Batasan Ekstensi
Peningkatan versi utama di tempat tidak mendukung semua ekstensi PostgreSQL. Peningkatan akan gagal selama pemeriksaan awal jika ekstensi yang tidak didukung ditemukan.
- Ekstensi berikut didukung untuk penggunaan reguler, tetapi akan memblokir peningkatan versi utama di tempat jika ada. Hapus sebelum peningkatan dan aktifkan kembali setelahnya, jika didukung pada versi target:
timescaledb, ,orafcepostgres_fdw. - Ekstensi berikut adalah ekstensi utilitas non-persisten dan perlu dihilangkan dan dibuat ulang setelah peningkatan berdasarkan desain:
pg_repack,hypopg. - Saat meningkatkan ke PostgreSQL 17, ekstensi berikut tidak didukung dan harus dihapus sebelum peningkatan. Anda dapat mengaktifkannya kembali hanya jika didukung pada versi target:
age, ,azure_aihll,pg_diskann,pgrouting.
Nota: Jika salah satu ekstensi ini muncul di azure.extensions parameter server, peningkatan akan diblokir. Hapus mereka dari parameter sebelum memulai peningkatan.
Pertimbangan PostGIS-Specific
Jika Anda menggunakan PostGIS atau ekstensi dependen apa pun, Anda harus mengonfigurasi parameter server search_path untuk menyertakan:
- Skema yang terkait dengan PostGIS
- Ekstensi dependen, termasuk:
postgis, ,postgis_raster,postgis_sfcgal,postgis_tiger_geocoder,postgis_topology,address_standardizer,address_standardizer_data_us,fuzzystrmatch - Kegagalan untuk mengonfigurasi search_path dengan benar dapat menyebabkan kegagalan peningkatan atau objek rusak pasca-peningkatan.
Pertimbangan peningkatan lainnya
- Pemicu peristiwa: Pemicu peristiwa diblokir oleh pemeriksaan peningkatan pra-upgrade karena mereka terhubung ke perintah DDL dan dapat mereferensikan katalog sistem yang berubah di antara versi utama—hapus semua
EVENT TRIGGERsebelum proses peningkatan, dan buat ulang setelah peningkatan untuk memastikan peningkatan yang lancar. - Objek besar (LO): Database dengan jutaan objek besar (disimpan dalam
pg_largeobject) dapat menyebabkan kegagalan peningkatan karena penggunaan memori atau volume log yang tinggi. Gunakan utilitas vacuumlo untuk membersihkan LO yang tidak digunakan, dan pertimbangkan untuk meningkatkan skala server Anda sebelum meningkatkan jika banyak LO yang masih digunakan.
Peringatan
Berhati-hatilah penggunaan penyedot debu.
vacuumlo mengidentifikasi objek besar tanpa induk berdasarkan kolom referensi konvensional (oid, lo). Jika aplikasi Anda menggunakan jenis referensi kustom atau tidak langsung, objek besar yang valid mungkin salah dihapus. Selain itu, vacuumlo dapat mengonsumsi CPU, memori, dan IOPS yang signifikan, terutama dalam database dengan jutaan objek besar. Jalankan selama periode pemeliharaan dan uji terlebih dahulu pada lingkungan non-produksi.
Pasca peningkatan
Setelah peningkatan versi utama selesai, sebaiknya jalankan ANALYZE perintah di setiap database untuk me-refresh pg_statistic tabel. Statistik yang hilang atau basi dapat menyebabkan rencana kueri yang buruk, yang pada gilirannya dapat menurunkan performa dan mengambil memori yang berlebihan.
postgres=> analyze;
ANALYZE
Menampilkan log peningkatan
Log peningkatan versi utama (PG_Upgrade_Logs) menyediakan akses langsung ke log server terperinci. Mengintegrasikan PG_Upgrade_Logs ke dalam proses peningkatan Anda dapat membantu memastikan transisi yang lebih lancar dan lebih transparan ke versi PostgreSQL baru.
Anda dapat mengonfigurasi log peningkatan versi utama dengan cara yang sama seperti log server, dengan menggunakan parameter server berikut:
- Untuk mengaktifkan fitur, atur
logfiles.download_enablekeON. - Untuk menentukan retensi file log dalam hari, gunakan
logfiles.retention_days.
Mengatur catatan peningkatan
Untuk mulai menggunakan PG_Upgrade_Logs, Anda dapat Mengonfigurasi pengambilan log peningkatan versi utama dan log server PostgreSQL.
Anda dapat mengakses log peningkatan melalui antarmuka untuk log server. Di sana, Anda dapat memantau kemajuan dan detail peningkatan versi utama PostgreSQL Anda secara real time. UI ini menyediakan lokasi terpusat untuk melihat log, sehingga Anda dapat dengan lebih mudah melacak dan memecahkan masalah proses peningkatan.
Manfaat menggunakan log peningkatan
-
Diagnostik yang berwawasan:
PG_Upgrade_Logsmemberikan wawasan berharga tentang proses peningkatan. Ini menangkap informasi terperinci tentang operasi yang dilakukan, dan menyoroti kesalahan atau peringatan yang terjadi. Tingkat detail ini berperan penting dalam mendiagnosis dan menyelesaikan masalah yang mungkin muncul selama peningkatan, untuk transisi yang lebih lancar. - Pemecahan masalah yang efisien: Dengan akses langsung ke log ini, Anda dapat dengan cepat mengidentifikasi dan mengatasi potensi rintangan peningkatan, mengurangi waktu henti, dan meminimalkan dampak pada operasi Anda. Log berfungsi sebagai alat pemecahan masalah penting dengan mengaktifkan penyelesaian masalah yang lebih efisien dan efektif.
Nota
Peningkatan versi utama di tempat didukung pada server yang dimigrasikan secara otomatis. Setelah berhasil dilakukan Peningkatan Versi Utama di tempat pada server yang dimigrasikan secara otomatis, format nama pengguna username@servername tidak akan lagi didukung. Sebagai gantinya, Anda harus menggunakan format standar: nama pengguna. Untuk menghindari masalah autentikasi, tinjau dan perbarui dengan cermat semua string koneksi di aplikasi dan skrip Anda untuk memastikan mereka menggunakan format nama pengguna yang diperbarui setelah peningkatan.