Topik ini menjelaskan laporan pemeriksaan peningkatan versi mesin utama untuk instans ApsaraDB RDS for PostgreSQL, termasuk kesalahan umum dalam laporan dan solusi yang disarankan.
Dokumen terkait peningkatan
Item pemeriksaan
Di halaman Major Version Upgrade pada konsol, klik tab Upgrade Check, lalu klik View Information untuk melihat detail laporan pemeriksaan target.
Modul pemeriksaan dan kemungkinan kesalahan dalam laporan pemeriksaan adalah sebagai berikut:
Peringatan
Konten pemeriksaan
Selama peningkatan versi mesin utama dari instans RDS, waktu baca-saja serta sumber daya memori dan disk dari instans dipengaruhi oleh jumlah objek basis datanya. Jika jumlah objek terlalu besar dan sumber daya tidak mencukupi, peningkatan mungkin gagal. Sistem menyediakan kapasitas memori yang direkomendasikan, kapasitas memori minimum yang direkomendasikan, dan ukuran disk yang direkomendasikan di tab Pemeriksaan Peningkatan.
Dalam mode tanpa downtime, sistem juga memeriksa jumlah tabel Sequence.
Kapasitas Memori yang Direkomendasikan: Selama peningkatan versi mesin utama, sistem dapat memberikan kemampuan peningkatan bersamaan untuk instans yang berisi beberapa basis data. Jika kapasitas memori dari instans RDS lebih besar atau sama dengan kapasitas memori yang direkomendasikan, instans akan langsung ditingkatkan untuk mengurangi waktu baca-saja.
Kapasitas Memori Minimum yang Direkomendasikan: Jika kapasitas memori dari instans RDS lebih besar atau sama dengan kapasitas memori minimum yang direkomendasikan, peningkatan tidak akan gagal karena kekurangan sumber daya memori. Namun, waktu baca-saja mungkin bertambah karena sistem meningkatkan setiap basis data secara berurutan.
Ukuran Disk yang Direkomendasikan: Selama peningkatan versi mesin utama, sistem sementara menyalin semua definisi objek, yang menggandakan konsumsi inodes. Jika ukuran disk kurang dari ukuran disk yang direkomendasikan, peningkatan mungkin gagal.
Pemeriksaan Jumlah Tabel Sequence (hanya untuk mode tanpa downtime): Replikasi logis tidak mendukung sinkronisasi tabel Sequence. Oleh karena itu, waktu alih bencana singkat diperlukan untuk menyelesaikan sinkronisasi tabel Sequence. Waktu alih bencana ditentukan oleh jumlah tabel Sequence.
Peringatan dan solusi
Peringatan disk
Format Peringatan:
Total ruang disk: {*} GB; Disk terpakai: {*} GB; Inodes terpakai: {*}; bytes-per-nodes: {*}; Ruang disk minimum yang diperlukan untuk peningkatan: {*} GB.Penyebab Potensial: Terlalu banyak objek membutuhkan ruang disk yang cukup.
Solusi:
Dalam mode penyebaran biru-hijau, tentukan kapasitas penyimpanan untuk instans RDS baru yang lebih besar atau sama dengan ukuran disk minimum yang diperlukan untuk peningkatan.
Dalam mode peningkatan lokal, perluas kapasitas penyimpanan sebelum peningkatan. Kapasitas baru harus lebih besar atau sama dengan ukuran disk minimum yang diperlukan. Untuk informasi lebih lanjut, lihat Ubah Konfigurasi.
Peringatan memori
Format Peringatan:
Memori saat ini: {*} GB; Memori yang direkomendasikan: {*} GB; Memori minimum: {*} GB.Penyebab Potensial: Terlalu banyak objek membutuhkan memori yang cukup untuk meminimalkan waktu baca-saja selama peningkatan.
Solusi:
Untuk penyebaran biru-hijau, memori dalam spesifikasi instans baru harus lebih besar atau sama dengan persyaratan memori minimum.
Dalam mode peningkatan lokal, tingkatkan spesifikasi instans jika kapasitas memori kurang dari kapasitas yang direkomendasikan. Untuk informasi lebih lanjut, lihat Ubah Konfigurasi.
Peringatan langganan
Format Peringatan:
Instans memiliki slot replikasi subscriber. Untuk mencegah inkonsistensi data langganan, lihat dokumentasi Alibaba Cloud.Penyebab Potensial: Instans memiliki slot replikasi subscriber. Anda dapat memeriksa dengan mengeksekusi
select * from pg_subscription;.Solusi: Lihat Tingkatkan Versi Utama Basis Data untuk penanganan.
Peringatan Urutan
Format Peringatan:
Total tabel Sequence: {0}. Terlalu banyak tabel Sequence akan memperpanjang waktu alih bencana untuk peningkatan versi mesin utama replikasi logis.Penyebab Potensial: Instans berisi tabel Sequence. Anda dapat melihat semua tabel Sequence di basis data dengan mengeksekusi
select * from pg_sequences;.Solusi: Jika ada terlalu banyak tabel Sequence, kami sarankan Anda mengkloning instans untuk menguji waktu alih bencana agar sesuai dengan kebutuhan Anda.
Kesalahan
Konten pemeriksaan
Sistem memeriksa apakah akun superuser yang tidak perlu dibuat di latar belakang atau metode enkripsi yang tidak valid dikonfigurasikan untuk akun standar.
Sistem memeriksa apakah pemeriksaan peningkatan gagal. Jika gagal, pesan kesalahan "pg_upgrade error log" termasuk dalam laporan pemeriksaan.
Sistem memeriksa apakah ekstensi pgcrypto diinstal di skema pg_catalog.
(Hanya untuk mode tanpa downtime) Sistem memeriksa apakah versi mesin minor dari instans adalah 20250228 atau lebih baru.
(Hanya untuk mode tanpa downtime) Sistem memeriksa ketidaksesuaian replikasi logis. Replikasi logis tidak dapat menyinkronkan beberapa objek basis data, sehingga instans dengan objek ini tidak akan mendukung peningkatan versi mesin utama tanpa downtime. Jika ada ketidaksesuaian, laporan pemeriksaan akan menampilkan item "Ketidaksesuaian Replikasi Logis".
Kesalahan dan solusi
Kesalahan akun
Format Kesalahan:
Akun superuser tidak valid: {*}; Akun tidak valid: {*}; Silakan lihat dokumentasi Alibaba Cloud.Penyebab Potensial: Ada akun superuser berlebih atau akun standar abnormal.
Solusi:
Untuk akun superuser berlebih, ajukan tiket untuk menghubungi layanan purna jual untuk penghapusan.
Reset kata sandi dari akun standar yang abnormal.
Kesalahan pra-pemeriksaan
Format Kesalahan:
Tugas pra-pemeriksaan pg_upgrade gagal, perlu memeriksa [pg_upgrade error log] dan [file dan kesalahan terkait pg_upgrade].Penyebab Potensial: Pra-pemeriksaan gagal.
Solusi: Silakan merujuk ke log kesalahan pg_upgrade untuk menyelesaikan masalah log.
Kesalahan ekstensi Pgcrypto
Format Kesalahan:
Ekstensi pg_crypto diinstal di skema: pg_catalog di basis data: {*}, silakan lihat dokumentasi Alibaba Cloud.Penyebab Potensial: Karena pgcrypto membuat fungsi di pg_catalog yang hanya ada di versi yang lebih tinggi, hal ini menyebabkan peningkatan versi utama gagal.
Solusi: Hapus ekstensi pgcrypto di setiap basis data, lalu buat ekstensi di skema non-pg_catalog.
Kesalahan versi minor
Format Kesalahan:
Peningkatan versi utama tanpa downtime memerlukan versi minor minimum 20250228.Penyebab Potensial: Versi mesin minor instans terlalu rendah.
Solusi: Tingkatkan Versi Mesin Minor.
Log kesalahan pg_upgrade
Konten pemeriksaan
Sistem memeriksa apakah ekstensi dan kata kunci yang tidak kompatibel dengan versi mesin utama baru ada.
Kesalahan umum
File dan kesalahan terkait pg_upgrade
loadable_libraries.txt
File ini berisi pustaka yang tidak kompatibel dengan versi mesin utama baru. Anda dapat mengidentifikasi ekstensi yang tidak kompatibel berdasarkan pustaka ini.
Informasi berikut menjelaskan ekstensi yang tidak kompatibel umum dan solusi untuk masalah ketidaksesuaian:
tables_with_oids.txt
File ini menampilkan daftar tabel yang dideklarasikan dengan WITH OIDS.
Ketidaksesuaian replikasi logis
Konten pemeriksaan
Sistem memeriksa apakah tabel asing ada.
Sistem memeriksa apakah tabel tanpa kunci primer atau kunci unik ada.
Sistem memeriksa apakah tampilan materialisasi ada.
Sistem memeriksa apakah objek besar ada.
Sistem memeriksa apakah ekstensi yang dilarang untuk replikasi logis ada.
Sistem memeriksa apakah nilai parameter yang terkait dengan replikasi logis memenuhi persyaratan.
Ketidaksesuaian dan solusi
Ketidaksesuaian tabel asing
Format Kesalahan:
Tabel asing di basis data: {0}. Total basis data: {1}.Penyebab Potensial: Tabel asing ada.
Solusi: Hapus tabel asing.
Jalankan pernyataan SQL berikut di setiap basis data dari instans untuk mendapatkan informasi tentang tabel asing.
SELECT COUNT(*) AS count, relkind FROM pg_class WHERE relkind IN ('f') GROUP BY relkind;Jalankan pernyataan SQL berikut untuk menghapus tabel asing.
DROP FOREIGN TABLE [ IF EXISTS ] name [ CASCADE | RESTRICT ];
Untuk informasi lebih lanjut, lihat Dokumentasi Komunitas.
Ketidaksesuaian tabel tanpa kunci unik
Format Kesalahan:
Tabel tanpa kunci primer atau kunci unik di basis data: {0}. Total basis data: {1}.Penyebab Potensial: Tabel tanpa kunci primer atau kunci unik ada.
Solusi: Tambahkan kunci primer atau kunci unik ke tabel.
Jalankan pernyataan SQL berikut di setiap basis data dari instans untuk mendapatkan informasi tentang tabel tanpa kunci primer atau kunci unik.
SELECT COUNT(*) AS count FROM information_schema.tables t LEFT JOIN information_schema.table_constraints tc ON t.table_name = tc.table_name AND t.table_schema = tc.table_schema AND (tc.constraint_type = 'PRIMARY KEY' OR tc.constraint_type = 'UNIQUE') JOIN pg_class c ON t.table_name = c.relname JOIN pg_namespace ns ON c.relnamespace = ns.oid AND ns.nspname = t.table_schema WHERE t.table_type = 'BASE TABLE' AND tc.constraint_type IS NULL AND t.table_schema NOT IN ('pg_catalog', 'information_schema') AND c.relreplident != 'f';Jalankan pernyataan SQL berikut untuk mengatur
REPLICA IDENTITYdari tabel target menjadiFULL.ALTER TABLE name REPLICA IDENTITY FULL;Jalankan pernyataan SQL berikut untuk menambahkan kunci primer atau kunci unik ke tabel target.
--Kendala kunci primer ALTER TABLE name ADD CONSTRAINT constrain_name PRIMARY KEY (column_name); --Kendala kunci unik ALTER TABLE name ADD CONSTRAINT constrain_name UNIQUE (column_name);
Untuk informasi lebih lanjut, lihat Dokumentasi Komunitas.
Inkompatibilitas Materialized View
Format Kesalahan:
Tampilan materialisasi di basis data: {0}. Total basis data: {1}.Penyebab Potensial: Tampilan materialisasi ada.
Solusi: Hapus tampilan materialisasi.
Jalankan pernyataan SQL berikut di setiap basis data dari instans untuk mendapatkan tampilan materialisasi.
SELECT COUNT(*) AS count, relkind FROM pg_class WHERE relkind IN ('m') GROUP BY relkind;Jalankan pernyataan SQL berikut untuk menghapus tampilan materialisasi.
DROP MATERIALIZED VIEW IF EXISTS name;
Ketidaksesuaian objek besar
Format Kesalahan:
Objek besar di basis data: {0}. Total basis data: {1}.Penyebab Potensial: Objek besar ada.
Solusi: Hapus objek besar.
Jalankan pernyataan SQL berikut di setiap basis data dari instans untuk mendapatkan objek besar.
SELECT COUNT(*) AS count FROM pg_largeobject_metadata;Jalankan pernyataan SQL berikut untuk menghapus objek besar.
SELECT lo_unlink(largeobject_oid);
Ketidaksesuaian ekstensi
Format Kesalahan:
Ekstensi yang dilarang untuk replikasi logis di basis data: {0}. Total basis data: {1}.Penyebab Potensial: Empat ekstensi terlarang berikut digunakan: 'pg_partman', 'pg_cron', 'pg_active', dan 'pg_logical'.
Solusi: Sementara hapus ekstensi yang tidak kompatibel.
Jalankan pernyataan SQL berikut di setiap basis data dari instans untuk memeriksa apakah ekstensi yang tidak kompatibel terinstal.
SELECT COUNT(*) AS count FROM pg_extension WHERE extname IN ('pg_partman', 'pg_cron', 'pg_active', 'pglogical');Sementara hapus ekstensi yang tidak kompatibel.
DROP EXTENSION extension_name;
Ketidaksesuaian parameter
Format Kesalahan:
Replikasi logis memerlukan wal_level menjadi logis, max_wal_sender dan max_replication_slots minimal {0}, instance wal_level adalah: {1}, max_wal_sender adalah: {2}, max_replication_slots adalah: {3}.Penyebab Potensial: Nilai dari ketiga parameter tersebut tidak memenuhi persyaratan.
Solusi: Ubah nilai parameter. Perhatikan bahwa Anda mungkin perlu me-restart instans agar perubahan berlaku. Untuk informasi lebih lanjut, lihat Atur Parameter Instans.
Deskripsi format laporan pemeriksaan
Laporan pemeriksaan disediakan dalam bahasa Mandarin dan Inggris.