全部产品
Search
文档中心

ApsaraDB RDS:Pengenalan Laporan Pemeriksaan Peningkatan Versi Mesin Utama untuk Instans ApsaraDB RDS for PostgreSQL

更新时间:Nov 11, 2025

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

Daftar pustaka masalah ada di file: loadable_libraries.txt

Penyebab potensial

Ekstensi yang tidak kompatibel dengan versi mesin utama baru ada, dan ekstensi terkait dicatat di file loadable_libraries.txt.

Solusi

Periksa ekstensi yang tercantum dalam item laporan loadable_libraries.txt. Tentukan apakah akan menghapus ekstensi berdasarkan kebutuhan bisnis Anda. Jika ingin menghapus ekstensi, kami sarankan Anda menghapus ekstensi sebelum peningkatan. Sebelum menghapus ekstensi, pastikan bahwa instans RDS Anda dapat berjalan seperti yang diharapkan tanpa ekstensi. Untuk daftar ekstensi yang didukung untuk setiap versi, lihat: Ekstensi yang Didukung.

Daftar tabel dengan masalah ada di file: tables_with_oids.txt

Penyebab potensial

Tabel dibuat dengan deklarasi WITH OIDS, yang tidak didukung di PostgreSQL 12 atau versi yang lebih baru. Tabel terkait dicatat di file tables_with_oids.txt.

Solusi

  • Metode 1 (disarankan): Tingkatkan ke PostgreSQL 11, yang mendukung deklarasi WITH OIDS.

  • Metode 2: Periksa tabel yang tercantum dalam item laporan loadable_libraries.txt. Evaluasi apakah kode bisnis Anda bergantung pada OID. Setelah mengonfirmasi bahwa itu tidak akan memengaruhi bisnis Anda, jalankan pernyataan berikut:

    ALTER TABLE {table_name} SET WITHOUT OIDS;

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:

Ekstensi pgrouting

Penyebab potensial

Ekstensi pgrouting tidak kompatibel dengan versi mesin utama baru.

Solusi

Tentukan apakah akan menghapus ekstensi berdasarkan kebutuhan bisnis Anda. Jika ingin menghapus ekstensi, kami sarankan Anda menghapus ekstensi sebelum peningkatan. Sebelum menghapus ekstensi, pastikan bahwa instans RDS Anda dapat berjalan seperti yang diharapkan tanpa ekstensi. Untuk daftar ekstensi yang didukung untuk setiap versi, lihat: Ekstensi yang Didukung.

Ekstensi jsonbx

Penyebab potensial

Beberapa tipe data JSON tidak didukung di PostgreSQL 9.4. Untuk mendukung semua tipe data JSON, Anda harus mengaktifkan ekstensi jsonbx. PostgreSQL 10 dan versi yang lebih baru mendukung semua tipe data JSON. Jika instans RDS Anda menjalankan PostgreSQL 10 atau versi yang lebih baru, Anda tidak perlu mengaktifkan ekstensi jsonbx.

Solusi

Periksa fungsi yang digunakan oleh ekstensi jsonbx di versi mesin utama baru dan tentukan apakah akan menghapus ekstensi berdasarkan kebutuhan bisnis Anda. Jika ingin menghapus ekstensi, kami sarankan Anda menghapus ekstensi sebelum peningkatan. Sebelum menghapus ekstensi, pastikan bahwa instans RDS Anda dapat berjalan seperti yang diharapkan tanpa ekstensi.

Penggunaan fungsi plugin jsonbx berbeda dalam cara berikut:

Penggunaan fungsi

Hasil eksekusi PostgreSQL 9.4

Hasil eksekusi PostgreSQL 10 atau versi yang lebih baru

select '{"a":1, "b":2, "c":3}'::jsonb - 2;

{"a": 1, "b": 2}

ERROR: cannot delete from object using integer index

select jsonb_delete('{"a":1, "b":2, "c":3}'::jsonb, '{b}'::text[]);

{"a": 1, "c": 3}

ERROR: function jsonb_delete(jsonb, text[]) does not exist

select '{"a":{"c":1, "d":2}, "b":3}'::jsonb - '{a, c}'::text[];

{"a": {"d": 2}, "b": 3}

{"b": 3}

Ekstensi PostGIS dan postgis_topology

Penyebab potensial

Versi ekstensi PostGIS yang digunakan sudah usang dan tidak kompatibel dengan pustaka yang ditentukan di versi mesin utama baru. Akibatnya, instans RDS Anda gagal dalam pemeriksaan peningkatan.

Solusi

Penting

Ekstensi PostGIS bervariasi di versi mesin utama yang berbeda. Misalnya, ekstensi ini melaporkan berbagai kesalahan penguraian yang terkait dengan format teks terkenal (WKT) di versi mesin utama yang berbeda. Sebelum Anda memperbarui ekstensi ini, kami sarankan Anda mengkloning instans RDS Anda. Anda dapat menggunakan instans RDS yang dikloning untuk menguji kompatibilitas ekstensi ini dengan versi mesin utama baru. Setelah Anda memverifikasi bahwa ekstensi ini kompatibel dengan versi mesin baru, Anda dapat memperbarui ekstensi ini di instans RDS asli Anda. Untuk operasi kloning spesifik, lihat Cadangkan Data PostgreSQL dan Pulihkan Data PostgreSQL.

  1. Tingkatkan versi mesin minor. Untuk informasi lebih lanjut, lihat Tingkatkan Versi Mesin Minor.

  2. Perbarui ekstensi PostGIS yang melaporkan kesalahan. Untuk informasi lebih lanjut, lihat Peningkatan Ekstensi PostGIS.

  3. Jalankan perintah \dx untuk menanyakan versi ekstensi, dan pastikan bahwa versi ekstensi PostGIS minimal 3.3.2.

  4. Lakukan pemeriksaan peningkatan lagi.

    Penting

    Jika ekstensi PostGIS, ekstensi postgis_topology, atau ekstensi pgrouting diinstal di instans RDS Anda, perhatikan batasan berikut:

    • Jika instans RDS Anda menjalankan PostgreSQL 9.4, Anda hanya dapat meningkatkan versi mesin utama instans RDS Anda ke PostgreSQL 10 atau PostgreSQL 11.

    • Jika instans RDS Anda menjalankan PostgreSQL 10, Anda hanya dapat meningkatkan versi mesin utama instans RDS Anda ke PostgreSQL 11.

    • Jika instans RDS Anda menjalankan PostgreSQL 11, PostgreSQL 12, atau PostgreSQL 13, Anda tidak dapat meningkatkan versi mesin utama instans RDS Anda.

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.

    1. 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;
    2. 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.

    1. 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';
    2. Jalankan pernyataan SQL berikut untuk mengatur REPLICA IDENTITY dari tabel target menjadi FULL.

      ALTER TABLE name REPLICA IDENTITY FULL;
    3. 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.

    1. 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;
    2. 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.

    1. Jalankan pernyataan SQL berikut di setiap basis data dari instans untuk mendapatkan objek besar.

      SELECT COUNT(*) AS count
      FROM pg_largeobject_metadata;
    2. 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.

    1. 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');
    2. 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.