Memecahkan masalah upgrade versi utama di tempat

Dokumen ini menjelaskan cara memecahkan masalah yang mungkin Anda alami saat mengupgrade database AlloyDB untuk PostgreSQL ke versi utama di tempat. Untuk informasi selengkapnya, lihat Mengupgrade versi utama database yang sudah diterapkan. Untuk mempelajari error upgrade versi utama langsung, lihat Error upgrade versi utama langsung database.

Untuk menganalisis kegagalan upgrade, identifikasi tahap upgrade yang gagal dari respons dan gunakan informasi dalam dokumen ini untuk mengidentifikasi kemungkinan resolusi.

AlloyDB memvalidasi permintaan Anda secara sinkron dan menampilkan pesan error jika salah satu hal berikut terjadi:

  • Permintaan tidak valid. Misalnya, jika versi utama target yang diberikan tidak didukung atau kurang dari atau sama dengan versi utama saat ini.
  • Resource cluster berada dalam status yang tidak memungkinkan upgrade versi utama dipicu. Misalnya, jika cluster atau instance terkait tidak dalam status READY.

Jika permintaan valid, upgrade mungkin gagal karena alasan berikut:

  • Pemeriksaan pra-upgrade yang dilakukan pada berbagai tahap dapat gagal, yang menunjukkan bahwa pelanggaran terdeteksi. Anda harus mengatasi pelanggaran ini sebelum memulai ulang upgrade.
  • Error internal berarti Anda perlu mencoba lagi upgrade. Jika percobaan ulang gagal, hubungi Dukungan Google Cloud.

Kegagalan pemeriksaan pra-upgrade AlloyDB

Kegagalan pemeriksaan pra-upgrade dapat terjadi selama salah satu tahap berikut:

  • Pemeriksaan pra-upgrade AlloyDB (ALLOYDB_PRECHECK)
  • Pemeriksaan pg_upgrade (PG_UPGRADE_CHECK)
  • Upgrade cluster utama (PRIMARY_INSTANCE_UPGRADE)

Kegagalan pemeriksaan pra-upgrade adalah masalah yang dideteksi AlloyDB selama fase validasi pra-upgrade, yang dapat menyebabkan upgrade versi utama di tempat gagal. Misalnya, AlloyDB memeriksa inkompatibilitas ekstensi antara versi utama saat ini dan target.

Pesan error diisi di logs_url dalam respons operasi upgrade. Anda dapat melihat log ini dengan membuka Logs Explorer di konsol Google Cloud . Untuk mengetahui informasi selengkapnya, lihat Melihat log upgrade.

Untuk melihat kegagalan dan pesan error terkait yang mungkin Anda lihat di log, lihat Error upgrade versi utama database yang diterapkan.

Berikut adalah contoh ringkasan yang dihasilkan di log oleh pemeriksaan pra-upgrade AlloyDB:

Total number of databases checked for custom checks: 3
Total number of databases containing pg_largeobject: 0
Total number of databases containing event triggers permissions issue: 0
Total number of databases containing extensions compatibility violation: 1
Total number of databases containing search path violations: 0

Kegagalan pemeriksaan pg_upgrade

PG_UPGRADE_CHECK memeriksa pelanggaran menggunakan utilitas pg_upgrade standar. Pemeriksaan upgrade ini mencakup inkonsistensi data yang muncul dari berbagai faktor, termasuk perbedaan dalam struktur data khusus versi, perubahan dalam encoding dan kolasi, modifikasi pada jenis data, dan penyesuaian pada katalog sistem.

Beberapa file, seperti tables_with_oids.txt dan tables_using_reg.txt, yang dibuat selama pg_upgrade, diekspor ke file log postgres_upgrade. Anda dapat memfilter file ini menggunakan label labels.FILE_NAME.

Nama file yang mungkin berisi error yang perlu diselesaikan meliputi:

Nama file Deskripsi

tables_with_oids.txt

File ini berisi tabel yang dicantumkan dengan ID objek (OID). Hapus atau ubah tabel agar tidak menggunakan OID.

tables_using_composite.txt

File ini berisi tabel yang dicantumkan menggunakan jenis komposit yang ditentukan sistem. Hapus atau ubah tabel agar tidak menggunakan jenis komposit ini.

tables_using_unknown.txt

File ini berisi tabel yang dicantumkan menggunakan jenis data UNKNOWN. Hapus atau ubah tabel agar tidak menggunakan jenis data ini.

tables_using_sql_identifier.txt

File ini berisi tabel yang dicantumkan menggunakan jenis data SQL_IDENTIFIER. Hapus atau ubah tabel agar tidak menggunakan jenis data ini.

tables_using_reg.txt

File ini berisi tabel yang dicantumkan menggunakan jenis data REG*, misalnya, REGCOLLATION atau REGNAMESPACE. Hapus atau ubah tabel agar tidak menggunakan jenis data ini.

postfix_ops.txt

File ini berisi tabel yang dicantumkan menggunakan operator postfix (unary kanan). Hapus atau ubah tabel agar tidak menggunakan operator ini.

Kegagalan pg_upgrade

Struktur log PG_UPGRADE mirip dengan struktur log PG_UPGRADE_CHECK.

Berikut adalah contoh log dengan label labels.FILE_NAME=pg_upgrade_dump*.log:

pg_upgrade_dump: error: query failed: ERROR: out of shared memory
HINT: You might need to increase max_locks_per_transaction.

Langkah berikutnya