Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Melakukan upgrade versi utama
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 Wilayah AWS untuk versi Anda saat ini dengan menggunakan AWS CLI. Untuk detailnya, lihatMendapatkan 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 Wilayah AWS menggunakan describe-db-engine-versions AWS CLI perintah, sebagai berikut.
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 Meningkatkan 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 Meningkatkan 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 meningkatkan cluster Aurora Postgre SQL DB Anda ke versi baru dengan menggunakan AWS Management Console, AWS CLI, atau RDSAPI.
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 meng-upgrade versi mesin dari 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 Anda dan pengaturan grup parameter DB untuk masing-masing Wilayah AWS di database global Aurora Anda sebelum peningkatan seperti yang dijelaskan dalamstep 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.
Seperti halnya modifikasi apa pun, Anda dapat mengonfirmasi bahwa Anda ingin melanjutkan proses saat diminta.
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.