Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Meningkatkan kluster Amazon Aurora SQL Postgre DB
Amazon Aurora membuat versi baru dari mesin SQL database Postgre Wilayah AWS hanya tersedia setelah pengujian ekstensif. Anda dapat memutakhirkan cluster Aurora Postgre SQL DB Anda ke versi baru ketika tersedia di Wilayah Anda.
Bergantung pada versi Aurora Postgre SQL yang sedang dijalankan oleh cluster DB Anda, peningkatan ke rilis baru adalah peningkatan kecil atau peningkatan besar. Misalnya, memutakhirkan cluster Aurora SQL Postgre 11.15 DB ke Aurora Postgre 13.6 adalah peningkatan versi SQL utama. Memutakhirkan cluster Aurora SQL Postgre 13.3 DB ke SQL Aurora Postgre 13.7 adalah upgrade versi minor. Pada topik berikut, Anda dapat menemukan informasi tentang cara melakukan kedua jenis peningkatan.
Daftar Isi
- Ikhtisar proses peningkatan Aurora Postgre SQL
- Mendapatkan daftar versi yang tersedia di Wilayah AWS
- Cara melakukan peningkatan versi mayor
- Sebelum melakukan upgrade versi minor
- Cara melakukan peningkatan versi minor dan menerapkan patch
- Memutakhirkan ekstensi Postgre SQL
- Teknik peningkatan blue/green alternatif
Ikhtisar proses peningkatan Aurora Postgre SQL
Berikut adalah perbedaan antara peningkatan versi mayor dan minor:
- Peningkatan dan patch versi minor
-
Peningkatan dan patch versi minor hanya mencakup perubahan yang kompatibel mundur dengan aplikasi yang ada. Upgrade dan patch versi minor menjadi tersedia untuk Anda hanya setelah Aurora SQL Postgre menguji dan menyetujuinya.
Peningkatan versi minor dapat diterapkan untuk Anda secara otomatis oleh Aurora. Saat Anda membuat cluster SQL DB Aurora Postgre baru, opsi Aktifkan peningkatan versi minor telah dipilih sebelumnya. Kecuali Anda mematikan opsi ini, tingkatkan versi minor diterapkan secara otomatis selama periode pemeliharaan terjadwal Anda. Untuk informasi selengkapnya tentang opsi peningkatan versi minor otomatis (AmVU) dan cara mengubah klaster DB Aurora untuk menggunakannya, lihat Peningkatan versi minor otomatis untuk klaster DB Aurora.
Jika opsi pemutakhiran versi minor otomatis tidak disetel untuk cluster SQL DB Aurora Postgre Anda, Aurora Postgre Anda SQL tidak secara otomatis ditingkatkan ke versi minor baru. Sebaliknya, ketika versi minor baru dirilis di cluster SQL DB Aurora Postgre Anda Wilayah AWS dan Anda menjalankan versi minor yang lebih lama, Aurora meminta Anda untuk meningkatkan. Ini dilakukan dengan menambahkan rekomendasi ke tugas pemeliharaan untuk klaster Anda.
Patch tidak dianggap sebagai peningkatan, dan tidak diterapkan secara otomatis. Aurora Postgre SQL meminta Anda untuk menerapkan tambalan apa pun dengan menambahkan rekomendasi ke tugas pemeliharaan untuk cluster Aurora Postgre DB Anda. SQL Untuk informasi selengkapnya, lihat Cara melakukan peningkatan versi minor dan menerapkan patch.
catatan
Patch yang menyelesaikan masalah keamanan atau masalah penting lainnya juga ditambahkan sebagai tugas pemeliharaan. Namun, patch ini diperlukan. Pastikan untuk menerapkan patch keamanan ke cluster Aurora SQL Postgre DB Anda ketika mereka tersedia dalam tugas pemeliharaan Anda yang tertunda.
Proses peningkatan melibatkan kemungkinan pemadaman singkat karena setiap instans dalam klaster ditingkatkan ke versi baru. Namun, setelah Aurora Postgre SQL versi 14.3.3, 13.7.3, 12.11.3, 11.16.3, 10.21.3 dan rilis lain yang lebih tinggi dari versi minor ini dan versi utama yang lebih baru, proses upgrade menggunakan fitur zero-downtime patching (). ZDP Fitur ini meminimalkan pemadaman, dan dalam banyak kasus sepenuhnya menghilangkannya. Untuk informasi selengkapnya, lihat Peningkatan rilis minor dan patching nol-waktu henti.
catatan
ZDPtidak didukung dalam kasus berikut:
Ketika Aurora Postgre SQL DB cluster dikonfigurasi sebagai. Aurora Serverless v1
Ketika Aurora Postgre SQL DB cluster dikonfigurasi sebagai database global Aurora di sekunder. Wilayah AWS
Selama peningkatan instans pembaca di basis data global Aurora.
Selama patch OS dan peningkatan OS.
ZDPdidukung untuk cluster Aurora Postgre SQL DB yang dikonfigurasi sebagai. Aurora Serverless v2
- Peningkatan versi mayor
-
Tidak seperti upgrade versi minor dan patch, Aurora Postgre SQL tidak memiliki opsi upgrade versi mayor otomatis. SQLVersi Postgre utama baru mungkin berisi perubahan database yang tidak kompatibel ke belakang dengan aplikasi yang ada. Fungsionalitas baru dapat menyebabkan aplikasi yang ada tidak berfungsi dengan benar.
Untuk mencegah masalah apa pun, kami sangat menyarankan Anda mengikuti proses yang diuraikan Menguji peningkatan klaster DB produksi ke versi mayor baru sebelum memutakhirkan instans DB di cluster Aurora Postgre DB Anda. SQL Pertama pastikan aplikasi Anda dapat berjalan di versi baru dengan mengikuti prosedur tersebut. Kemudian Anda dapat secara manual meningkatkan cluster Aurora Postgre SQL DB Anda ke versi baru.
Proses upgrade melibatkan kemungkinan pemadaman singkat ketika semua instance di cluster ditingkatkan ke versi baru. Proses perencanaan awal juga membutuhkan waktu. Sebaiknya Anda selalu melakukan tugas peningkatan selama periode pemeliharaan klaster atau saat pengoperasiannya minimum. Untuk informasi selengkapnya, lihat Cara melakukan peningkatan versi mayor.
catatan
Peningkatan versi minor dan peningkatan versi mayor mungkin melibatkan pemadaman singkat. Oleh karena itu, sebaiknya Anda melakukan atau menjadwalkan peningkatan selama periode pemeliharaan atau selama periode penggunaan rendah lainnya.
Cluster Aurora Postgre SQL DB terkadang memerlukan pembaruan sistem operasi. Pembaruan ini mungkin menyertakan pustaka glibc versi yang lebih baru. Selama pembaruan tersebut, sebaiknya Anda mengikuti pedoman seperti yang dijelaskan dalam Kolasi yang didukung di Aurora PostgreSQL.
Mendapatkan daftar versi yang tersedia di Wilayah AWS
Anda bisa mendapatkan daftar semua versi mesin yang tersedia sebagai target peningkatan untuk cluster Aurora Postgre SQL DB Anda dengan menanyakan Anda Wilayah AWS menggunakan perintah, sebagai berikut describe-db-engine-versions AWS CLI .
Untuk Linux, macOS, atau Unix:
aws rds describe-db-engine-versions \ --engine aurora-postgresql \ --engine-version
version-number
\ --query 'DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}' \ --output text
Untuk Windows:
aws rds describe-db-engine-versions ^ --engine aurora-postgresql ^ --engine-version
version-number
^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^ --output text
Misalnya, untuk mengidentifikasi target pemutakhiran yang valid untuk cluster Aurora Postgre SQL versi 12.10 DB, jalankan perintah berikut: AWS CLI
Untuk Linux, macOS, atau Unix:
aws rds describe-db-engine-versions \ --engine aurora-postgresql \ --engine-version
12.10
\ --query 'DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}' \ --output text
Untuk Windows:
aws rds describe-db-engine-versions ^ --engine aurora-postgresql ^ --engine-version
12.10
^ --query "DBEngineVersions[*].ValidUpgradeTarget[*].{EngineVersion:EngineVersion}" ^ --output text
Dalam tabel berikut, Anda dapat menemukan target peningkatan versi mayor dan minor untuk versi Aurora SQL Postgre DB yang berbeda. Untuk menjaga kompatibilitas, tidak semua versi ditawarkan sebagai target peningkatan. Aurora Postgre SQL memperkenalkan fitur baru dan perbaikan bug dengan setiap rilis versi minor triwulanan. Untuk informasi tentang rilis SQL minor Aurora Postgre, lihat Catatan Rilis untuk Aurora Postgre. SQL
Untuk versi apa pun yang Anda pertimbangkan, selalu periksa ketersediaan kelas instans DB klaster Anda. Misalnya, db.r4
tidak didukung untuk Aurora SQL Postgre 13. Jika cluster Aurora Postgre SQL DB Anda saat ini menggunakan kelas instans db.r4, Anda harus pindah ke db.r5 sebelum mencoba memutakhirkan. Untuk informasi selengkapnya tentang kelas instans DB, termasuk kelas yang berbasis Graviton2 dan kelas yang berbasis Intel, lihat Kelas instans Amazon Aurora DB.
Cara melakukan peningkatan versi mayor
Peningkatan versi mayor mungkin berisi perubahan basis data yang tidak kompatibel mundur dengan basis data versi sebelumnya. Fungsionalitas baru dalam versi baru dapat menyebabkan aplikasi yang ada tidak berfungsi dengan benar. Untuk menghindari masalah, Amazon Aurora tidak menerapkan peningkatan versi mayor secara otomatis. Sebaliknya, sebaiknya Anda merencanakan peningkatan versi utama secara cermat dengan mengikuti langkah-langkah berikut:
Pilih versi mayor yang diinginkan dari daftar target yang tersedia dari yang tercantum untuk versi Anda dalam tabel. Anda bisa mendapatkan daftar versi yang tepat yang tersedia di versi Anda saat ini dengan menggunakan AWS CLI. Wilayah AWS Untuk detailnya, lihat Mendapatkan daftar versi yang tersedia di Wilayah AWS.
Verifikasi apakah aplikasi Anda berfungsi seperti yang diharapkan saat deployment uji coba versi baru. Untuk informasi tentang proses lengkapnya, lihat Menguji peningkatan klaster DB produksi ke versi mayor baru.
Setelah memverifikasi bahwa aplikasi Anda berfungsi seperti yang diharapkan saat deployment uji coba, Anda dapat meningkatkan klaster. Untuk detailnya, lihat Upgrade mesin Aurora SQL Postgre ke versi mayor baru.
catatan
Anda dapat melakukan upgrade versi utama dari Babelfish untuk Aurora Postgre SQL 13 berbasis versi mulai dari 13.6 ke Aurora Postgre 14 berbasis versi mulai dari 14.6. SQL Babelfish untuk Aurora Postgre SQL 13.4 dan 13.5 tidak mendukung peningkatan versi utama.
Anda bisa mendapatkan daftar versi mesin yang tersedia sebagai target peningkatan versi utama untuk cluster Aurora Postgre SQL DB Anda dengan menanyakan Anda Wilayah AWS menggunakan perintah, sebagai berikut describe-db-engine-versions AWS CLI .
Untuk Linux, macOS, atau Unix:
aws rds describe-db-engine-versions \ --engine aurora-postgresql \ --engine-version
version-number
\ --query 'DBEngineVersions[].ValidUpgradeTarget[?IsMajorVersionUpgrade == `true`].{EngineVersion:EngineVersion}' \ --output text
Untuk Windows:
aws rds describe-db-engine-versions ^ --engine aurora-postgresql ^ --engine-version
version-number
^ --query "DBEngineVersions[].ValidUpgradeTarget[?IsMajorVersionUpgrade == `true`].{EngineVersion:EngineVersion}" ^ --output text
Dalam beberapa kasus, versi yang ingin ditingkatkan bukanlah target untuk versi Anda saat ini. Dalam kasus seperti itu, gunakan informasi dalam versions table untuk melakukan peningkatan versi minor hingga klaster Anda memiliki versi dengan target yang Anda pilih di baris targetnya.
Menguji peningkatan klaster DB produksi ke versi mayor baru
Setiap versi mayor baru mencakup penyempurnaan pada pengoptimal kueri yang dirancang untuk meningkatkan performa. Namun, beban kerja Anda mungkin mencakup kueri yang menyebabkan rencana berperforma lebih buruk di versi baru. Itulah mengapa kami menyarankan Anda menguji dan meninjau performa sebelum melakukan peningkatan dalam produksi. Anda dapat mengelola stabilitas paket kueri di seluruh versi dengan menggunakan ekstensi Query Plan Management (QPM), seperti yang dijelaskan dalamMemastikan stabilitas rencana setelah upgrade versi mayor.
Sebelum memutakhirkan cluster Aurora SQL Postgre DB produksi Anda ke versi utama yang baru, kami sangat menyarankan Anda menguji peningkatan untuk memverifikasi bahwa semua aplikasi Anda berfungsi dengan benar:
-
Siapkan grup parameter yang kompatibel dengan versi.
Jika menggunakan instans DB kustom atau grup parameter klaster DB, Anda dapat memilih dari dua opsi:
-
Tentukan instans DB default, grup parameter klaster DB, atau keduanya untuk versi mesin DB baru.
-
Buat grup parameter kustom untuk versi mesin DB baru.
Jika Anda menautkan instans DB baru atau grup parameter klaster DB sebagai bagian dari permintaan peningkatan, pastikan untuk mem-boot ulang basis data setelah proses peningkatan selesai untuk menerapkan parameter. Jika instans DB perlu di-boot ulang untuk menerapkan perubahan grup parameter, status grup parameter instans akan menampilkan
pending-reboot
. Anda dapat melihat status grup parameter instance di konsol atau dengan menggunakan CLI perintah seperti describe-db-instancesatau describe-db-clusters. -
-
Periksa penggunaan yang tidak didukung:
-
Lakukan atau putar kembali semua transaksi terbuka yang disiapkan sebelum mencoba peningkatan. Anda dapat menggunakan kueri berikut untuk memverifikasi bahwa tidak ada transaksi terbuka yang disiapkan di instans Anda.
SELECT count(*) FROM pg_catalog.pg_prepared_xacts;
-
Hapus semua penggunaan jenis data reg* sebelum mencoba peningkatan. Kecuali untuk
regtype
danregclass
, Anda tidak dapat meningkatkan jenis data reg*. Utilitas pg_upgrade (yang digunakan oleh Amazon Aurora untuk melakukan peningkatan) tidak dapat mempertahankan jenis data ini. Untuk mempelajari lebih lanjut tentang utilitas ini, lihat pg_upgradedi dokumentasi Postgre. SQL Untuk memverifikasi bahwa jenis data reg* yang tidak didukung tidak digunakan, gunakan kueri berikut untuk setiap basis data.
SELECT count(*) FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n, pg_catalog.pg_attribute a WHERE c.oid = a.attrelid AND NOT a.attisdropped AND a.atttypid IN ('pg_catalog.regproc'::pg_catalog.regtype, 'pg_catalog.regprocedure'::pg_catalog.regtype, 'pg_catalog.regoper'::pg_catalog.regtype, 'pg_catalog.regoperator'::pg_catalog.regtype, 'pg_catalog.regconfig'::pg_catalog.regtype, 'pg_catalog.regdictionary'::pg_catalog.regtype) AND c.relnamespace = n.oid AND n.nspname NOT IN ('pg_catalog', 'information_schema');
-
Jika Anda memutakhirkan Aurora SQL Postgre versi 10.18 atau cluster DB yang lebih tinggi yang memiliki
pgRouting
ekstensi terpasang, lepaskan ekstensi sebelum memutakhirkan ke versi 12.4 atau lebih tinggi.Jika Anda memutakhirkan versi Aurora SQL Postgre 10.x yang memiliki ekstensi versi 1.4.3 diinstal, lepaskan
pg_repack
ekstensi sebelum memutakhirkan ke versi yang lebih tinggi.
-
-
Periksa basis data template1 dan template0.
Agar peningkatan berhasil, basis data template 1 dan template 0 harus ada dan harus tercantum sebagai template. Untuk melakukannya, gunakan perintah berikut:
SELECT datname, datistemplate FROM pg_database;
datname | datistemplate -----------+--------------- template0 | t rdsadmin | f template1 | t postgres | f
Dalam output perintah, nilai
datistemplate
untuk basis data template1 dan template0 seharusnyat
. Hapus slot replikasi logis.
Proses upgrade tidak dapat dilanjutkan jika cluster Aurora Postgre SQL DB menggunakan slot replikasi logis. Slot replikasi logis biasanya digunakan untuk tugas migrasi data jangka pendek, seperti migrasi data menggunakan AWS DMS atau untuk mereplikasi tabel dari database ke danau data, alat BI, atau target lainnya. Sebelum meningkatkan, pastikan Anda mengetahui tujuan dari setiap slot replikasi logis yang ada, dan konfirmasikan bahwa menghapusnya tidak akan jadi masalah. Anda dapat memeriksa slot replikasi logis menggunakan kueri berikut:
SELECT * FROM pg_replication_slots;
Jika slot replikasi logis masih digunakan, Anda tidak boleh menghapusnya, dan Anda tidak dapat melanjutkan dengan peningkatan. Namun, jika slot replikasi logis tidak diperlukan, Anda dapat menghapusnya menggunakan yang berikut: SQL
SELECT pg_drop_replication_slot(
slot_name
);Skenario replikasi logis yang menggunakan ekstensi
pglogical
juga harus memiliki slot yang dijatuhkan dari simpul penerbit untuk peningkatan versi utama yang berhasil pada simpul tersebut. Namun, Anda dapat memulai ulang proses replikasi dari simpul pelanggan setelah peningkatan. Untuk informasi selengkapnya, lihat Membangun kembali replikasi logis setelah peningkatan besar.-
Lakukan pencadangan.
Proses peningkatan membuat snapshot klaster DB dari klaster DB Anda selama peningkatan. Jika Anda juga ingin melakukan pencadangan manual sebelum proses peningkatan, lihat Membuat snapshot klaster DB untuk informasi selengkapnya.
-
Tingkatkan ekstensi tertentu ke versi terbaru yang tersedia sebelum melakukan peningkatan versi utama. Ekstensi yang akan diperbarui meliputi:
-
pgRouting
-
postgis_raster
-
postgis_tiger_geocoder
-
postgis_topology
-
address_standardizer
-
address_standardizer_data_us
Jalankan perintah berikut untuk setiap ekstensi yang baru diinstal.
ALTER EXTENSION
PostgreSQL-extension
UPDATE TO 'new-version
';Untuk informasi selengkapnya, lihat Memutakhirkan ekstensi Postgre SQL. Untuk mempelajari lebih lanjut tentang meningkatkan PostGIS, lihatLangkah 6: Tingkatkan GIS ekstensi Post.
-
-
Jika Anda meningkatkan ke versi 11.x, buang ekstensi yang tidak didukung sebelum melakukan peningkatan versi utama. Ekstensi yang perlu dibuang meliputi:
-
chkpass
-
tsearch2
-
-
Buang jenis data
unknown
, bergantung pada versi target Anda.Postgre SQL versi 10 tidak mendukung tipe
unknown
data. Jika basis data versi 9.6 menggunakan jenis dataunknown
, tingkatkan ke versi 10 akan menampilkan pesan kesalahan seperti berikut.Database instance is in a state that cannot be upgraded: PreUpgrade checks failed: The instance could not be upgraded because the 'unknown' data type is used in user tables. Please remove all usages of the 'unknown' data type and try again."
Untuk menemukan tipe
unknown
data dalam database Anda sehingga Anda dapat menghapus kolom tersebut atau mengubahnya menjadi tipe data yang didukung, gunakan SQL kode berikut untuk setiap database.SELECT n.nspname, c.relname, a.attname FROM pg_catalog.pg_class c, pg_catalog.pg_namespace n, pg_catalog.pg_attribute a WHERE c.oid = a.attrelid AND NOT a.attisdropped AND a.atttypid = 'pg_catalog.unknown'::pg_catalog.regtype AND c.relkind IN ('r','m','c') AND c.relnamespace = n.oid AND n.nspname !~ '^pg_temp_' AND n.nspname !~ '^pg_toast_temp_' AND n.nspname NOT IN ('pg_catalog', 'information_schema');
-
Lakukan peningkatan dry-run.
Sebaiknya Anda menguji peningkatan versi utama pada duplikat basis data produksi sebelum mencoba peningkatan pada basis data produksi Anda. Anda dapat memantau rencana eksekusi pada instans pengujian duplikat untuk setiap kemungkinan regresi rencana eksekusi dan untuk mengevaluasi performanya. Untuk membuat instans pengujian duplikat, Anda dapat memulihkan basis data Anda dari snapshot terakhir atau mengkloning basis data Anda. Untuk informasi selengkapnya, lihat Memulihkan dari snapshot atau Mengkloning volume untuk klaster DB Amazon Aurora.
Untuk informasi selengkapnya, lihat Upgrade mesin Aurora SQL Postgre ke versi mayor baru.
-
Tingkatkan instans produksi Anda.
Jika peningkatan versi utama operasi dry-run berhasil, Anda seharusnya dapat meningkatkan basis data produksi dengan percaya diri. Untuk informasi selengkapnya, lihat Upgrade mesin Aurora SQL Postgre ke versi mayor baru.
catatan
Selama proses upgrade, Aurora Postgre SQL mengambil snapshot cluster DB jika periode retensi cadangan cluster lebih besar dari 0. Anda tidak dapat melakukan point-in-time pemulihan klaster Anda selama proses ini. Kemudian, Anda dapat melakukan point-in-time pemulihan ke waktu sebelum pemutakhiran dimulai dan setelah snapshot otomatis instans Anda selesai. Namun, Anda tidak dapat melakukan point-in-time pemulihan ke versi minor sebelumnya.
Untuk informasi tentang peningkatan yang sedang berlangsung, Anda dapat menggunakan Amazon RDS untuk melihat dua log yang dihasilkan oleh utilitas pg_upgrade. Log tersebut adalah
pg_upgrade_internal.log
danpg_upgrade_server.log
. Amazon Aurora menambahkan stempel waktu ke nama file untuk log ini. Anda dapat melihat log ini sebagaimana Anda dapat melihat log lainnya. Untuk informasi selengkapnya, lihat Memantau log Amazon Aurora Amazon. -
Tingkatkan ekstensi PostgreSQL. Proses SQL upgrade Postgre tidak memutakhirkan ekstensi SQL Postgre apa pun. Untuk informasi selengkapnya, lihat Memutakhirkan ekstensi Postgre SQL.
Rekomendasi pasca-peningkatan
Setelah Anda menyelesaikan peningkatan versi utama, sebaiknya ikuti langkah berikut:
-
Jalankan operasi
ANALYZE
untuk menyegarkan tabelpg_statistic
. Anda harus melakukan ini untuk setiap database pada semua instance Postgre SQL DB Anda. Statistik pengoptimal tidak ditransfer selama peningkatan versi utama, jadi Anda perlu membuat ulang semua statistik untuk menghindari masalah performa. Jalankan perintah tanpa parameter apa pun untuk menghasilkan statistik untuk semua tabel reguler dalam basis data saat ini, sebagai berikut:ANALYZE VERBOSE;
Bendera
VERBOSE
bersifat opsional, tetapi kemajuannya akan ditampilkan jika digunakan. Untuk informasi lebih lanjut, lihat ANALYZEdi dokumentasi PostgreSQL. catatan
Jalankan ANALYZE di sistem Anda setelah upgrade untuk menghindari masalah kinerja.
-
Jika Anda memutakhirkan ke Postgre SQL versi 10, jalankan
REINDEX
pada indeks hash apa pun yang Anda miliki. Indeks hash diubah di versi 10 dan harus dibuat ulang. Untuk menemukan indeks hash yang tidak valid, jalankan berikut ini SQL untuk setiap database yang berisi indeks hash.SELECT idx.indrelid::regclass AS table_name, idx.indexrelid::regclass AS index_name FROM pg_catalog.pg_index idx JOIN pg_catalog.pg_class cls ON cls.oid = idx.indexrelid JOIN pg_catalog.pg_am am ON am.oid = cls.relam WHERE am.amname = 'hash' AND NOT idx.indisvalid;
-
Sebaiknya Anda menguji aplikasi di basis data yang ditingkatkan dengan beban kerja serupa untuk memverifikasi bahwa semuanya berfungsi sesuai harapan. Setelah peningkatan diverifikasi, Anda dapat menghapus instans pengujian ini.
Upgrade mesin Aurora SQL Postgre ke versi mayor baru
Saat Anda memulai proses pemutakhiran ke versi mayor baru, Aurora SQL Postgre mengambil snapshot dari cluster Aurora DB sebelum membuat perubahan apa pun pada cluster Anda. Snapshot ini dibuat hanya untuk peningkatan versi mayor, bukan peningkatan versi minor. Saat proses pemutakhiran selesai, Anda dapat menemukan snapshot ini di antara snapshot manual yang tercantum di bawah Snapshots di konsol. RDS Nama snapshot termasuk preupgrade
sebagai awalan, nama cluster Aurora Postgre SQL DB Anda, versi sumber, versi target, dan tanggal dan stempel waktu, seperti yang ditunjukkan pada contoh berikut.
preupgrade-docs-lab-apg-global-db-12-8-to-13-6-2022-05-19-00-19
Setelah peningkatan selesai, Anda dapat menggunakan snapshot yang dibuat dan disimpan Aurora dalam daftar snapshot manual untuk memulihkan klaster DB ke versi sebelumnya, jika perlu.
Tip
Secara umum, snapshot menyediakan banyak cara untuk memulihkan klaster DB Aurora ke berbagai titik waktu. Untuk mempelajari lebih lanjut, lihat Memulihkan dari snapshot klaster DB dan Memulihkan klaster DB ke waktu tertentu. Namun, Aurora Postgre SQL tidak mendukung penggunaan snapshot untuk mengembalikan ke versi minor sebelumnya.
Selama proses upgrade versi utama, Aurora mengalokasikan volume dan mengkloning sumber Aurora Postgre DB cluster. SQL Jika pemutakhiran gagal karena alasan apa pun, Aurora Postgre SQL menggunakan klon untuk memutar kembali pemutakhiran. Setelah lebih dari 15 klon dari volume sumber dialokasikan, klon berikutnya menjadi salinan lengkap dan memakan waktu lebih lama. Hal ini juga dapat menyebabkan proses peningkatan memakan waktu lebih lama. Jika Aurora Postgre SQL mengembalikan upgrade, perhatikan hal-hal berikut:
-
Anda dapat melihat entri dan metrik penagihan untuk volume awal dan volume kloning yang dialokasikan selama peningkatan. Aurora Postgre SQL membersihkan volume ekstra setelah jendela retensi cadangan cluster berada di luar waktu peningkatan.
-
Salinan snapshot lintas-wilayah berikutnya dari klaster ini akan menjadi salinan lengkap, bukan salinan tambahan.
Untuk meng-upgrade instans DB yang membentuk cluster Anda dengan aman, Aurora SQL Postgre menggunakan utilitas pg_upgrade. Setelah peningkatan penulis selesai, setiap instans pembaca mengalami pemadaman singkat saat ditingkatkan ke versi mayor baru. Untuk mempelajari selengkapnya tentang SQL utilitas Postgre ini, lihat pg_upgrade
Anda dapat memutakhirkan cluster Aurora Postgre SQL DB Anda ke versi baru dengan menggunakan AWS Management Console,, atau. AWS CLI RDS API
Untuk meningkatkan versi mesin klaster DB
-
Masuk ke AWS Management Console dan buka RDS konsol Amazon di https://console.aws.amazon.com/rds/
. -
Di panel navigasi, pilih Basis data, lalu pilih klaster DB yang ingin Anda tingkatkan.
-
Pilih Ubah. Halaman Ubah klaster DB akan muncul.
-
Untuk Versi mesin, pilih versi baru.
-
Pilih Lanjutkan dan periksa ringkasan perubahan.
-
Untuk segera menerapkan perubahan, pilih Terapkan segera. Dalam beberapa kasus, pemadaman dapat terjadi jika opsi ini dipilih. Untuk informasi selengkapnya, lihat Memodifikasi klaster DB Amazon Aurora.
-
Di halaman konfirmasi, tinjau perubahan Anda. Jika sudah benar, pilih Ubah Klaster untuk menyimpan perubahan.
Atau pilih Kembali untuk mengedit perubahan atau Batal untuk membatalkan perubahan.
Untuk memutakhirkan versi mesin cluster DB, gunakan modify-db-cluster AWS CLI perintah. Tentukan parameter berikut:
-
--db-cluster-identifier
– Nama klaster DB. -
--engine-version
– Nomor versi peningkatan mesin basis data. Untuk informasi tentang versi mesin yang valid, gunakan AWS CLI describe-db-engine-versionsperintah. -
--allow-major-version-upgrade
– Tanda yang diperlukan saat parameter--engine-version
merupakan versi utama yang berbeda dengan versi utama saat ini dari klaster DB. -
--no-apply-immediately
– Terapkan perubahan selama periode pemeliharaan berikutnya. Untuk segera menerapkan perubahan, gunakan--apply-immediately
.
contoh
Untuk Linux, macOS, atau Unix:
aws rds modify-db-cluster \ --db-cluster-identifier
mydbcluster
\ --engine-versionnew_version
\ --allow-major-version-upgrade \ --no-apply-immediately
Untuk Windows:
aws rds modify-db-cluster ^ --db-cluster-identifier
mydbcluster
^ --engine-versionnew_version
^ --allow-major-version-upgrade ^ --no-apply-immediately
Untuk meng-upgrade versi mesin dari cluster DB, gunakan odifyDBCluster operasi M. Tentukan parameter berikut:
-
DBClusterIdentifier
— Nama cluster DB, misalnya
.mydbcluster
-
EngineVersion
– Nomor versi peningkatan mesin basis data. Untuk informasi tentang versi mesin yang valid, gunakan operasi escribeDBEngineVersi D. -
AllowMajorVersionUpgrade
– Tanda yang diperlukan saat parameterEngineVersion
merupakan versi utama yang berbeda dengan versi utama saat ini dari klaster DB. -
ApplyImmediately
– Apakah akan menerapkan perubahan secara langsung atau selama periode pemeliharaan berikutnya. Untuk segera menerapkan perubahan, tetapkan nilai ketrue
. Untuk menerapkan perubahan selama periode pemeliharaan berikutnya, tetapkan nilai kefalse
.
Peningkatan mayor untuk basis data global
Untuk klaster basis data global Aurora, proses peningkatan akan meningkatkan semua klaster DB yang membentuk basis data global Aurora pada saat yang bersamaan. Itu dilakukan untuk memastikan bahwa masing-masing menjalankan versi Aurora SQL Postgre yang sama. Ini juga memastikan bahwa setiap perubahan pada tabel sistem, format file data, dan sebagainya secara otomatis direplikasi ke semua klaster sekunder.
Untuk meningkatkan kluster basis data global ke versi utama baru Aurora PostgreSQL, kami sarankan Anda menguji aplikasi Anda pada versi yang ditingkatkan, seperti yang dijelaskan dalam. Menguji peningkatan klaster DB produksi ke versi mayor baru Pastikan untuk menyiapkan grup parameter cluster DB dan pengaturan grup parameter DB Anda untuk masing-masing Wilayah AWS di database global Aurora Anda sebelum peningkatan sebagaimana dirinci. step 1. Menguji peningkatan klaster DB produksi ke versi mayor baru
Jika cluster database SQL global Aurora Postgre Anda memiliki target titik pemulihan (RPO) yang ditetapkan untuk rds.global_db_rpo
parameternya, pastikan untuk mengatur ulang parameter sebelum memutakhirkan. Proses pemutakhiran versi utama tidak berfungsi jika RPO dihidupkan. Secara default, parameter ini dinonaktifkan. Untuk informasi lebih lanjut tentang database SQL global Aurora Postgre dan, lihat. RPO Mengelola RPOs database global berbasis Aurora Postgre SQL
Jika Anda memverifikasi bahwa aplikasi Anda dapat berjalan sesuai harapan saat deployment uji coba versi baru, Anda dapat memulai proses peningkatan. Untuk melakukannya, lihat Upgrade mesin Aurora SQL Postgre ke versi mayor baru. Pastikan untuk memilih item tingkat atas dari daftar Database di RDS konsol, Global database, seperti yang ditunjukkan pada gambar berikut.
![Gambar konsol yang menampilkan database global Aurora, cluster Aurora Serverless DB, dan cluster Aurora Postgre DB lainnya SQL](images/aurora-global-database-plus-other.png)
Seperti halnya modifikasi apa pun, Anda dapat mengonfirmasi bahwa Anda ingin melanjutkan proses saat diminta.
![Gambar konsol menunjukkan prompt untuk mengonfirmasi proses peningkatan untuk cluster DB Aurora SQL Postgre](images/aurora-global-db-apg-upgrade-2.png)
Daripada menggunakan konsol, Anda dapat memulai proses peningkatan dengan menggunakan AWS CLI atau RDSAPI. Seperti halnya konsol, Anda beroperasi pada klaster basis data global Aurora, bukan konstituennya, sebagai berikut:
Gunakan modify-global-cluster AWS CLI perintah untuk memulai upgrade untuk database global Aurora Anda dengan menggunakan. AWS CLI
Gunakan ModifyGlobalClusterAPIuntuk memulai upgrade.
Sebelum melakukan upgrade versi minor
Kami menyarankan Anda melakukan tindakan berikut untuk mengurangi waktu henti selama upgrade versi minor:
Pemeliharaan cluster Aurora DB harus dilakukan selama periode lalu lintas rendah. Gunakan Performance Insights untuk mengidentifikasi periode waktu ini agar dapat mengonfigurasi jendela pemeliharaan dengan benar. Untuk informasi selengkapnya tentang Performance Insights, lihat Memantau pemuatan DB dengan Performance Insights di Amazon. RDS Untuk informasi lebih lanjut tentang jendela pemeliharaan cluster DB,Menyesuaikan periode pemeliharaan klaster DB yang dinginkan.
-
Gunakan dukungan AWS SDKs itu backoff eksponensial dan jitter sebagai praktik terbaik. Untuk informasi lebih lanjut, lihat Exponential Backoff
And Jitter.
Cara melakukan peningkatan versi minor dan menerapkan patch
Peningkatan dan tambalan versi minor Wilayah AWS hanya tersedia setelah pengujian yang ketat. Sebelum merilis upgrade dan patch, SQL tes Aurora Postgre untuk memastikan bahwa masalah keamanan yang diketahui, bug, dan masalah lain yang muncul setelah rilis versi komunitas minor tidak mengganggu stabilitas armada Aurora Postgre secara keseluruhan. SQL
Karena Aurora Postgre SQL membuat versi minor baru tersedia, instance yang membentuk cluster Aurora Postgre SQL DB Anda dapat ditingkatkan secara otomatis selama jendela pemeliharaan yang Anda tentukan. Agar hal ini terjadi, cluster Aurora Postgre SQL DB Anda harus mengaktifkan opsi Aktifkan peningkatan versi minor otomatis diaktifkan. Semua instans DB yang membentuk cluster Aurora SQL Postgre DB Anda harus mengaktifkan opsi pemutakhiran versi minor otomatis (AMvU) sehingga upgrade minor diterapkan di seluruh cluster.
Tip
Pastikan opsi Aktifkan peningkatan versi minor otomatis diaktifkan untuk semua instans Postgre SQL DB yang membentuk cluster Aurora Postgre DB Anda. SQL Opsi ini harus diaktifkan agar setiap instans di klaster DB berfungsi. Untuk informasi tentang cara mengatur Peningkatan versi minor otomatis, dan cara kerja pengaturan saat diterapkan di tingkat klaster dan instans, lihat Peningkatan versi minor otomatis untuk klaster DB Aurora.
Anda dapat memeriksa nilai opsi Enable auto minor version upgrade untuk semua cluster Aurora Postgre SQL DB Anda dengan menggunakan describe-db-instances AWS CLI perintah dengan kueri berikut.
aws rds describe-db-instances \ --query '*[].{DBClusterIdentifier:DBClusterIdentifier,DBInstanceIdentifier:DBInstanceIdentifier,AutoMinorVersionUpgrade:AutoMinorVersionUpgrade}'
Kueri ini menampilkan daftar semua klaster DB Aurora dan instans--nya dengan nilai false
atau true
untuk status pengaturan AutoMinorVersionUpgrade
. Perintah seperti yang ditunjukkan mengasumsikan bahwa Anda telah AWS CLI dikonfigurasi untuk menargetkan default Wilayah AWS Anda.
Untuk informasi selengkapnya tentang opsi AmVU dan cara memodifikasi klaster DB Aurora untuk menggunakannya, lihat Peningkatan versi minor otomatis untuk klaster DB Aurora.
Anda dapat memutakhirkan cluster Aurora Postgre SQL DB Anda ke versi minor baru baik dengan menanggapi tugas pemeliharaan, atau dengan memodifikasi cluster untuk menggunakan versi baru.
Anda dapat mengidentifikasi upgrade atau patch yang tersedia untuk cluster Aurora Postgre SQL DB Anda dengan menggunakan konsol dan membuka menu RDS Rekomendasi. Di sana, Anda dapat menemukan daftar berbagai masalah pemeliharaan seperti Versi minor lama. Bergantung pada lingkungan produksi Anda, Anda dapat memilih untuk Menjadwalkan peningkatan atau mengambil tindakan segera, dengan memilih Terapkan sekarang, seperti yang ditunjukkan di bawah.
![Gambar konsol yang menampilkan Rekomendasi untuk melakukan peningkatan ke versi minor yang lebih baru.](images/apg-maintenance-upgrade-minor.png)
Untuk mempelajari lebih lanjut tentang cara memelihara klaster DB Aurora, termasuk cara menerapkan patch dan peningkatan versi minor secara manual, lihat Memelihara klaster DB Amazon Aurora.
Peningkatan rilis minor dan patching nol-waktu henti
Memutakhirkan cluster Aurora SQL Postgre DB melibatkan kemungkinan pemadaman. Selama proses peningkatan, basis data dimatikan karena sedang ditingkatkan. Jika Anda memulai peningkatan saat basis data sibuk, Anda akan kehilangan semua koneksi dan transaksi yang sedang diproses oleh klaster DB. Jika Anda menunggu hingga basis data idle untuk melakukan peningkatan, Anda mungkin harus menunggu lama.
Fitur zero-downtime patching (ZDP) meningkatkan proses upgrade. DenganZDP, baik upgrade versi minor dan patch dapat diterapkan dengan dampak minimal ke cluster Aurora Postgre DB Anda. SQL ZDPdigunakan saat menerapkan tambalan atau peningkatan versi minor yang lebih baru ke versi Aurora Postgre dan rilis lain yang lebih tinggi dari SQL versi minor ini dan versi utama yang lebih baru. Yaitu, memutakhirkan ke versi minor baru dari salah satu rilis ini dan seterusnya digunakan. ZDP
Tabel berikut menunjukkan SQL versi Aurora Postgre dan kelas instans DB jika tersedia: ZDP
Versi | Kelas instans db.r* | Kelas instans db.t* | Kelas instans db.x* | Kelas instans db.serverless |
---|---|---|---|---|
Versi 10.21.0 dan versi 10.21 yang lebih tinggi | Ya | Ya | Ya | N/A |
Versi 11.16.0 dan versi 11.16 yang lebih tinggi | Ya | Ya | Ya | N/A |
Versi 11.17 dan versi yang lebih tinggi | Ya | Ya | Ya | N/A |
Versi 12.11.0 dan versi 12.11 yang lebih tinggi | Ya | Ya | Ya | N/A |
Versi 12.12 dan versi yang lebih tinggi | Ya | Ya | Ya | N/A |
Versi 13.7.0 dan versi 13.7 yang lebih tinggi | Ya | Ya | Ya | N/A |
Versi 13.8 dan versi yang lebih tinggi | Ya | Ya | Ya | Ya |
Versi 14.3.1 dan versi 14.3 yang lebih tinggi | Ya | Ya | Ya | N/A |
Versi 14.4.0 dan versi 14.4 yang lebih tinggi | Ya | Ya | Ya | N/A |
Versi 14.5 dan versi yang lebih tinggi | Ya | Ya | Ya | Ya |
Versi 15.3 dan versi yang lebih tinggi | Ya | Ya | Ya | Ya |
ZDPbekerja dengan mempertahankan koneksi klien saat ini ke cluster Aurora Postgre DB Anda selama proses upgrade Aurora SQL Postgre. SQL Namun, dalam kasus berikut, koneksi akan terputus ZDP untuk diselesaikan:
Kueri atau transaksi berjalan lama sedang berlangsung.
Pernyataan bahasa definisi data (DDL) sedang berjalan.
Tabel sementara atau kunci tabel sedang digunakan.
Semua sesi mendengarkan di saluran pemberitahuan.
Kursor dalam status WITH HOLD '' sedang digunakan.
TLSv1Koneksi .3 atau TLSv1 .1 sedang digunakan.
Selama proses upgrade menggunakanZDP, mesin database mencari titik tenang untuk menjeda semua transaksi baru. Tindakan ini melindungi basis data selama patch dan peningkatan. Untuk memastikan bahwa aplikasi Anda berjalan lancar dengan transaksi yang dijeda, sebaiknya Anda mengintegrasikan logika coba lagi ke dalam kode Anda. Pendekatan ini memastikan bahwa sistem dapat mengelola waktu henti singkat tanpa gagal dan dapat mencoba kembali transaksi baru setelah peningkatan.
Ketika ZDP selesai dengan sukses, sesi aplikasi dipertahankan kecuali untuk mereka yang memiliki koneksi terputus, dan mesin database restart saat upgrade masih berlangsung. Meskipun memulai ulang mesin basis data dapat menyebabkan penurunan throughput sementara, hal ini biasanya hanya berlangsung selama beberapa detik atau paling lama kira-kira satu menit.
Dalam beberapa kasus, zero-downtime patching () ZDP mungkin tidak berhasil. Misalnya, perubahan parameter yang berada dalam pending
status pada cluster SQL DB Aurora Postgre Anda atau instance-nya mengganggu. ZDP
Anda dapat menemukan metrik dan peristiwa untuk ZDP operasi di halaman Acara di konsol. Acara termasuk dimulainya ZDP peningkatan dan penyelesaian peningkatan. Dalam hal ini Anda dapat menemukan durasi pemrosesannya, dan jumlah koneksi yang dipertahankan dan hilang yang terjadi selama mulai ulang. Anda dapat menemukan detailnya di log kesalahan basis data Anda.
Meningkatkan mesin Aurora SQL Postgre ke versi minor baru
Anda dapat memutakhirkan cluster Aurora Postgre SQL DB Anda ke versi minor baru dengan menggunakan konsol, konsol, atau. AWS CLI RDS API Sebelum melakukan peningkatan, sebaiknya Anda mengikuti praktik terbaik yang sama yang kami sarankan untuk peningkatan versi mayor. Seperti halnya versi mayor baru, versi minor baru juga dapat memiliki peningkatan pengoptimal, seperti perbaikan, yang dapat menyebabkan regresi rencana kueri. Untuk memastikan stabilitas rencana, kami sarankan Anda menggunakan ekstensi Query Plan Management (QPM) seperti yang dijelaskan dalamMemastikan stabilitas rencana setelah upgrade versi mayor.
Untuk meningkatkan versi mesin cluster Aurora SQL Postgre DB Anda
-
Masuk ke AWS Management Console dan buka RDS konsol Amazon di https://console.aws.amazon.com/rds/
. -
Di panel navigasi, pilih Basis data, lalu pilih klaster DB yang ingin Anda tingkatkan.
-
Pilih Ubah. Halaman Ubah klaster DB akan muncul.
-
Untuk Versi mesin, pilih versi baru.
-
Pilih Lanjutkan dan periksa ringkasan perubahan.
-
Untuk segera menerapkan perubahan, pilih Terapkan segera. Dalam beberapa kasus, pemadaman dapat terjadi jika opsi ini dipilih. Untuk informasi selengkapnya, lihat Memodifikasi klaster DB Amazon Aurora.
-
Di halaman konfirmasi, tinjau perubahan Anda. Jika sudah benar, pilih Ubah Klaster untuk menyimpan perubahan.
Atau pilih Kembali untuk mengedit perubahan atau Batal untuk membatalkan perubahan.
Untuk memutakhirkan versi mesin cluster DB, gunakan modify-db-cluster AWS CLI perintah dengan parameter berikut:
-
--db-cluster-identifier
— Nama cluster Aurora SQL Postgre DB Anda. -
--engine-version
– Nomor versi peningkatan mesin basis data. Untuk informasi tentang versi mesin yang valid, gunakan AWS CLI describe-db-engine-versionsperintah. -
--no-apply-immediately
– Terapkan perubahan selama periode pemeliharaan berikutnya. Untuk menerapkan perubahan secara langsung, gunakan--apply-immediately
.
Untuk Linux, macOS, atau Unix:
aws rds modify-db-cluster \ --db-cluster-identifier
mydbcluster
\ --engine-versionnew_version
\ --no-apply-immediately
Untuk Windows:
aws rds modify-db-cluster ^ --db-cluster-identifier
mydbcluster
^ --engine-versionnew_version
^ --no-apply-immediately
Untuk meng-upgrade versi mesin dari cluster DB, gunakan odifyDBCluster operasi M. Tentukan parameter berikut:
-
DBClusterIdentifier
— Nama cluster DB, misalnya
.mydbcluster
-
EngineVersion
– Nomor versi peningkatan mesin basis data. Untuk informasi tentang versi mesin yang valid, gunakan operasi escribeDBEngineVersi D. -
ApplyImmediately
– Apakah akan menerapkan perubahan secara langsung atau selama periode pemeliharaan berikutnya. Untuk segera menerapkan perubahan, tetapkan nilai ketrue
. Untuk menerapkan perubahan selama periode pemeliharaan berikutnya, tetapkan nilai kefalse
.
Memutakhirkan ekstensi Postgre SQL
Memutakhirkan cluster Aurora SQL Postgre DB Anda ke versi mayor atau minor baru tidak meningkatkan ekstensi SQL Postgre secara bersamaan. Untuk sebagian besar ekstensi, Anda meningkatkan ekstensi setelah peningkatan versi mayor atau minor selesai. Namun, dalam beberapa kasus, Anda meningkatkan ekstensi sebelum memutakhirkan mesin Aurora SQL Postgre DB. Untuk informasi selengkapnya, lihat list of extensions to update di Menguji peningkatan klaster DB produksi ke versi mayor baru.
Menginstal SQL ekstensi Postgre membutuhkan rds_superuser
hak istimewa. Biasanya, rds_superuser
mendelegasikan izin atas ekstensi tertentu untuk pengguna yang relevan (peran), untuk memfasilitasi pengelolaan ekstensi yang ditentukan. Itu berarti bahwa tugas memutakhirkan semua ekstensi di cluster Aurora SQL Postgre DB Anda mungkin melibatkan banyak pengguna (peran) yang berbeda. Perhatikan hal ini terutama jika Anda ingin mengotomatiskan proses peningkatan dengan menggunakan skrip. Untuk informasi selengkapnya tentang SQL hak istimewa dan peran Postgre, lihat. Keamanan dengan Amazon Aurora Postgre SQL
catatan
Untuk informasi tentang memperbarui GIS ekstensi Post, lihat Mengelola data spasial dengan GIS ekstensi Post (Langkah 6: Tingkatkan GIS ekstensi Post).
Untuk memperbarui ekstensi pg_repack
, hapus ekstensi dan kemudian buat versi baru di instans DB yang ditingkatkan. Untuk informasi selengkapnya, lihat pg_repack installationpg_repack
.
Untuk memperbarui ekstensi setelah peningkatan mesin, gunakan perintah ALTER EXTENSION UPDATE
.
ALTER EXTENSION
extension_name
UPDATE TO 'new_version
';
Untuk membuat daftar ekstensi yang saat ini diinstal, gunakan katalog Postgre SQL pg_extension
SELECT * FROM pg_extension;
Untuk melihat daftar versi ekstensi tertentu yang tersedia untuk instalasi Anda, gunakan tampilan Postgre SQL pg_available_extension_versions
SELECT * FROM pg_available_extension_versions;
Teknik peningkatan blue/green alternatif
Dalam situasi tertentu, prioritas utama Anda adalah melakukan switchover langsung dari klaster lama ke klaster yang ditingkatkan. Dalam situasi seperti itu, Anda dapat menggunakan proses multistep yang menjalankan cluster side-by-side lama dan baru. Di sini, Anda mereplikasi data dari klaster lama ke klaster baru hingga Anda siap untuk mengambil alih klaster baru. Untuk detailnya, lihat Menggunakan Amazon RDS Blue/Green Deployment untuk pembaruan database.