Anda sedang melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Gejala
Anda mendapatkan error saat memperbarui database PostgreSQL.
Pesan Error
ERROR: PostgreSQL Upgrade FAILED
Kemungkinan Penyebab
| Penyebab | Deskripsi | Petunjuk pemecahan masalah berlaku untuk |
|---|---|---|
| Setelan replikasi yang salah dalam file konfigurasi PostgreSQL | Upgrade PostgreSQL gagal karena setelan replikasi yang salah selama upgrade. | Pengguna Edge Private Cloud |
| Penginstalan PostgreSQL dilakukan oleh pengguna penginstalan lain selain pengguna Apigee | PostgreSQL awalnya diinstal dengan pengguna lain sebagai pengguna penginstal, yang menyebabkan kegagalan upgrade. | Pengguna Edge Private Cloud |
Langkah-Langkah Diagnosis Umum
Jika Anda mendapatkan error saat mengupgrade database PostgreSQL, lakukan langkah-langkah diagnostik berikut terlebih dahulu:
Ganti nama folder data PostgreSQL:
mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
Pastikan data cadangan asli Anda berada di folder bernama
/opt/apigee/data/apigee-postgresql/pgdata-version.old/Contoh:
/opt/apigee/data/apigee-postgresql/pgdata-9.6.old/Pulihkan data cadangan di
/opt/apigee/data/apigee-postgresql/pgdata-version.old/ke/opt/apigee/data/apigee-postgresql/pgdatamenggunakan perintah berikut:mv /opt/apigee/data/apigee-postgresql/pgdata-version.old/ /opt/apigee/data/apigee-postgresql/pgdata
Contoh:
mv /opt/apigee/data/apigee-postgresql/pgdata-9.6.old/ /opt/apigee/data/apigee-postgresql/pgdata
Jalankan kembali perintah
db_upgrade:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
Jika Anda mendapatkan error berikut...
pg_resetxlog: could not open file "global/pg_control" for reading: No such file or directory...lalu ganti nama file
pg_control.oldmenjadipg_controlmenggunakan perintah berikut:mv /apigee/apigeeinst/data/apigee-postgresql/pgdata/global/pg_control.old /apigee/apigeeinst/data/apigee-postgresql/pgdata/global/pg_control
Jalankan kembali perintah
db_upgrade:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
Jika masalah berlanjut, buka Penyebab: Setelan replikasi yang salah dalam file konfigurasi PostgreSQL.
Penyebab: Setelan replikasi yang salah dalam file konfigurasi PostgreSQL
Diagnosis
- Periksa apakah file konfigurasi PostgreSQL
/opt/apigee/apigee-postgresql/conf/pg_hba.confmemiliki setelan replikasi yang Anda inginkan. - Jika file ini memiliki setelan replikasi yang diharapkan, buka Penginstalan PostgreSQL yang dilakukan oleh pengguna penginstalan lain selain pengguna "apigee".
- Jika tidak, buka Resolusi.
Resolusi
Ganti nama folder data PostgreSQL menggunakan perintah berikut:
mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
Pastikan data cadangan asli berada di folder bernama:
/opt/apigee/data/apigee-postgresql/pgdata-version.old/Contoh:
/opt/apigee/data/apigee-postgresql/pgdata-9.6.old/Pulihkan data cadangan dari
/opt/apigee/data/apigee-postgresql/pgdata-version.old/ke/opt/apigee/data/apigee-postgresql/pgdatamenggunakan perintah berikut:mv /opt/apigee/data/apigee-postgresql/pgdata-version.old/ /opt/apigee/data/apigee-postgresql/pgdata
Contoh:
mv /opt/apigee/data/apigee-postgresql/pgdata-9.6.old/ /opt/apigee/data/apigee-postgresql/pgdata
Jika Anda pernah mengubah host slave, Anda harus memperbarui properti berikut di
/opt/apigee/customer/application/postgresql.propertiesuntuk memperbarui file konfigurasipg_hba.conf:conf_pg_hba_replication.connection=host replication apigee existing_slave_ip/32 trust\ \nhost replication apigee new_slave_ip/32 trustMulai ulang layanan
apigee-postgresqluntuk memastikan bahwa properti yang ditetapkan di Langkah 4 di atas diperbarui ke dalam file konfigurasipg_hba.conf:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
Jadikan file konfigurasi
pg_hba.conftidak dapat diubah menggunakan perintah berikut untuk memastikan file tersebut tidak diperbarui dengan setelan yang salah selama upgrade PostgreSQL:chattr +i /opt/apigee/apigee-postgresql/conf/pg_hba.conf
Jalankan kembali perintah
db_upgrade:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
Hapus setelan tidak dapat diubah pada file konfigurasi
pg_hba.conf:chattr -i /opt/apigee/apigee-postgresql/conf/pg_hba.conf
Penyebab: Penginstalan PostgreSQL dilakukan oleh pengguna penginstalan lain selain pengguna apigee
Diagnosis
Periksa apakah ada pengguna lain yang memiliki rolesuper yang ditetapkan ke true dengan mengikuti langkah-langkah berikut:
Di node PostgreSQL, login ke PostgreSQL menggunakan perintah berikut:
psql -h $(hostname -i) -U apigee
Jalankan kueri SQL berikut:
select * from pg_authid;
Periksa apakah ada beberapa pengguna yang memiliki rolesuper yang ditetapkan ke true. Jika ada, upgrade PostgreSQL gagal karena pengguna lain telah ditetapkan sebagai pengguna penginstalan, bukan pengguna apigee. Pengguna dengan peran rolesuper dan OID yang lebih rendah dianggap sebagai pengguna yang menginstal.
Untuk memeriksa masalah peran semacam ini, jalankan kueri SQL berikut:
select oid,rolname,rolsuper from pg_roles; select * from pg_user;
Resolusi
Login ke PostgreSQL menggunakan perintah berikut:
psql -h $(hostname -i) -U apigee
Ganti nama peran
apigeeyang ada di DB lama menjadi pengguna sementara (misalnya:apigee2):update pg_authid set rolname ='apigee2' where rolname = 'apigee';
Misalnya, ada pengguna penginstalan lain
srcapige. Ganti nama peransrcapigemenjadiapigee:update pg_authid set rolname ='apigee' where rolname = 'srcapigee';
Ganti nama pengguna
apigee2menjadisrcapige:update pg_authid set rolname ='secapigee' where rolname = 'apigee2';
Perbarui sandi untuk semua pengguna yang namanya diubah:
ALTER ROLE apigee WITH PASSWORD '<secret>'; ALTER ROLE srcapige WITH PASSWORD '<secret>';Ganti nama folder data PostgreSQL menggunakan perintah berikut:
mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
Pastikan ada data cadangan asli di dalam folder bernama
/opt/apigee/data/apigee-postgresql/pgdata-version.old/Contoh:
/opt/apigee/data/apigee-postgresql/pgdata-9.6.old/Pulihkan data di folder
/opt/apigee/data/apigee-postgresql/pgdata-version.old/ke/opt/apigee/data/apigee-postgresql/pgdatamenggunakan perintah berikut:mv /opt/apigee/data/apigee-postgresql/pgdata-version.old/ /opt/apigee/data/apigee-postgresql/pgdata
Contoh:
mv /opt/apigee/data/apigee-postgresql/pgdata-9.6.old/ /opt/apigee/data/apigee-postgresql/pgdata
Jalankan kembali perintah
db_upgrade:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
Mulai ulang semua layanan
apigee-qpidddanedge-qpid-server:/opt/apigee/apigee-service/bin/apigee-service apigee-qpidd restart/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
Jika masalah masih berlanjut, buka Informasi diagnostik yang harus dikumpulkan.
Harus mengumpulkan informasi diagnostik
Jika masalah berlanjut setelah mengikuti petunjuk pemecahan masalah di atas, kumpulkan informasi diagnostik berikut. Hubungi Dukungan Apigee dan bagikan informasi ini kepada tim dukungan:
- Tambahkan
set -xdi baris kedua file/opt/apigee/apigee-postgresql/lib/actions/db_upgrade. Ikuti Langkah-langkah diagnosis umum dan berikan output konsol perintah
db_upgradekepada tim dukungan:opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
Berikan file log berikut kepada tim dukungan:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log /opt/apigee/var/log/apigee-postgresql/update.logBerikan output perintah sistem operasi berikut untuk memeriksa apakah alternatif ditetapkan ke
auto.update-alternatives --display psql
ATAU
update-alternatives --display pgsqlupdate-alternatives --listJika alternatif disetel ke
manual, Anda dapat menyetelnya keautomenggunakan perintah berikut:update-alternatives --auto psql
Menetapkan alternatif ke
autoakan mengarahkan binerpsqldanpostgreske versi yang diupgrade. Jika tidak, biner akan mengarah ke versi yang lebih lama, yang dapat menyebabkan masalah.