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 secara langsung. Untuk mengetahui informasi selengkapnya, lihat Mengupgrade versi utama database yang sudah diterapkan. Untuk mempelajari error upgrade versi utama yang diterapkan, lihat Error upgrade versi utama database yang diterapkan.

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 terpenuhi:

  • 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 terdeteksi 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 yang sesuai yang mungkin Anda lihat di log, lihat Error upgrade versi utama database yang diterapkan.

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

Total number of databases checked for custom checks: 
Total number of databases containing pg_largeobject: 
Total number of databases containing extensions compatibility violation: 

Kegagalan pemeriksaan pg_upgrade

PG_UPGRADE_CHECK memeriksa pelanggaran menggunakan utilitas pg_upgrade standar. Pemeriksaan upgrade ini mencakup inkonsistensi data yang timbul dari berbagai faktor, termasuk perbedaan dalam struktur data khusus versi, perubahan dalam encoding dan pengurutan, 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 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 tabel atau ubah agar tidak menggunakan OID.

tables_using_composite.txt

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

tables_using_unknown.txt

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

tables_using_sql_identifier.txt

File ini berisi tabel yang dicantumkan menggunakan jenis data SQL_IDENTIFIER. Hapus tabel atau ubah 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 tabel atau ubah agar tidak menggunakan jenis data ini.

postfix_ops.txt

File ini berisi tabel yang dicantumkan menggunakan operator postfix (unary kanan). Hapus tabel atau ubah 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 selanjutnya