Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. info
Belirti
PostgreSQL veritabanını güncellerken bir hata alıyorsunuz.
Hata Mesajı
ERROR: PostgreSQL Upgrade FAILED
Olası Nedenler
| Neden | Açıklama | Sorun giderme talimatları şunlar için geçerlidir: |
|---|---|---|
| PostgreSQL yapılandırma dosyasında yanlış çoğaltma ayarları | PostgreSQL yükseltmesi, yükseltme sırasında yanlış çoğaltma ayarları nedeniyle başarısız olur. | Edge Private Cloud Kullanıcıları |
| Apigee kullanıcısı dışındaki başka bir yükleme kullanıcısı tarafından gerçekleştirilen PostgreSQL yüklemesi | PostgreSQL başlangıçta yükleme kullanıcısı olarak başka bir kullanıcıyla yüklendi Bu da yükseltmenin başarısız olmasına yol açar. | Edge Private Cloud Kullanıcıları |
Sık Kullanılan Teşhis Adımları
PostgreSQL veritabanını yükseltirken hata ile karşılaşırsanız aşağıdaki adımları uygulayın: ilk teşhis adımları:
PostgreSQL veri klasörünü yeniden adlandırın:
mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
Orijinal yedek verilerinizin
/opt/apigee/data/apigee-postgresql/pgdata-version.old/adlı bir klasörde bulunduğundan emin olun.Örneğin:
/opt/apigee/data/apigee-postgresql/pgdata-9.6.old/Aşağıdaki komutu kullanarak
/opt/apigee/data/apigee-postgresql/pgdata-version.old/'teki yedek verileri/opt/apigee/data/apigee-postgresql/pgdata'e geri yükleyin:mv /opt/apigee/data/apigee-postgresql/pgdata-version.old/ /opt/apigee/data/apigee-postgresql/pgdata
Örneğin:
mv /opt/apigee/data/apigee-postgresql/pgdata-9.6.old/ /opt/apigee/data/apigee-postgresql/pgdata
db_upgradekomutunu yeniden çalıştırın:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
Aşağıdaki hatayı alıyorsanız...
pg_resetxlog: could not open file "global/pg_control" for reading: No such file or directory...ardından aşağıdaki komutu kullanarak
pg_control.olddosyasınıpg_contrololarak yeniden adlandırın:mv /apigee/apigeeinst/data/apigee-postgresql/pgdata/global/pg_control.old /apigee/apigeeinst/data/apigee-postgresql/pgdata/global/pg_control
db_upgradekomutunu yeniden çalıştırın:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
Sorun devam ederse Neden: PostgreSQL yapılandırma dosyasında yanlış çoğaltma ayarları bölümüne gidin.
Neden: PostgreSQL yapılandırma dosyasında yanlış çoğaltma ayarları
Teşhis
- PostgreSQL yapılandırma dosyasının
/opt/apigee/apigee-postgresql/conf/pg_hba.confolup olmadığını kontrol edin istediğiniz çoğaltma ayarlarına sahip. - Bu dosyada beklenen çoğaltma ayarları varsa "apigee" kullanıcısı dışında başka bir yükleme kullanıcısı tarafından gerçekleştirilen PostgreSQL yüklemesi bölümüne gidin.
- Görmezseniz Çözüm bölümüne gidin.
Çözüm
PostgreSQL veri klasörünü aşağıdaki komutu kullanarak yeniden adlandırın:
mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
Orijinal yedekleme verilerinin
/opt/apigee/data/apigee-postgresql/pgdata-version.old/adlı bir klasörde bulunduğundan emin olun.Örneğin:
/opt/apigee/data/apigee-postgresql/pgdata-9.6.old/Aşağıdaki komutu kullanarak
/opt/apigee/data/apigee-postgresql/pgdata-version.old/konumundaki yedek verileri/opt/apigee/data/apigee-postgresql/pgdatakonumuna geri yükleyin:mv /opt/apigee/data/apigee-postgresql/pgdata-version.old/ /opt/apigee/data/apigee-postgresql/pgdata
Örneğin:
mv /opt/apigee/data/apigee-postgresql/pgdata-9.6.old/ /opt/apigee/data/apigee-postgresql/pgdata
Köle ana makineyi değiştirdiyseniz yapılandırma dosyasını güncellemek için
/opt/apigee/customer/application/postgresql.properties'te aşağıdaki mülkü güncellemeniz gerekirpg_hba.conf:conf_pg_hba_replication.connection=host replication apigee existing_slave_ip/32 trust\ \nhost replication apigee new_slave_ip/32 trustMülkün şurada ayarlandığından emin olmak için
apigee-postgresqlhizmetini yeniden başlatın: Yukarıdaki 4. adım,pg_hba.confyapılandırma dosyasında güncellenir:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
Aşağıdaki komutu kullanarak
pg_hba.confyapılandırma dosyasını sabit hale getirin: PostgreSQL yükseltmesi sırasında yanlış ayarlarla güncellenmediğinden emin olun:chattr +i /opt/apigee/apigee-postgresql/conf/pg_hba.conf
db_upgradekomutunu yeniden çalıştırın:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
pg_hba.confyapılandırma dosyasındaki sabit ayarı kaldırın:chattr -i /opt/apigee/apigee-postgresql/conf/pg_hba.conf
Neden: PostgreSQL yüklemesi, apigee kullanıcısı dışında başka bir yükleme kullanıcısı tarafından gerçekleştirildi
Teşhis
Aşağıdaki adımları uygulayarak rolesuper özelliği true olarak ayarlanmış başka bir kullanıcı olup olmadığını kontrol edin:
PostgreSQL düğümünde aşağıdaki komutu kullanarak PostgreSQL'e giriş yapın:
psql -h $(hostname -i) -U apigee
Aşağıdaki SQL sorgusunu çalıştırın:
select * from pg_authid;
rolesuper özelliği true olarak ayarlanmış birden fazla kullanıcı olup olmadığını kontrol edin. Varsa PostgreSQL yükseltmesi, apigee kullanıcısı yerine başka bir kullanıcı yükleme kullanıcısı olarak ayarlandığı için başarısız oluyordur. rolesuper rolü ve daha düşük bir OID, yükleme kullanıcısı olarak kabul edilir.
Bu tür bir rol sorununu kontrol etmek için aşağıdaki SQL sorgularını çalıştırın:
select oid,rolname,rolsuper from pg_roles; select * from pg_user;
Çözüm
Aşağıdaki komutu kullanarak PostgreSQL'a giriş yapın:
psql -h $(hostname -i) -U apigee
Eski VT'deki mevcut
apigeerolünü geçici bir kullanıcı olarak değiştirin (örneğin:apigee2):update pg_authid set rolname ='apigee2' where rolname = 'apigee';
srcapigeadlı başka bir yükleme kullanıcısı olduğunu varsayalım.srcapigerolünüapigeeolarak yeniden adlandırın:update pg_authid set rolname ='apigee' where rolname = 'srcapigee';
apigee2kullanıcısınısrcapigeolarak yeniden adlandırın:update pg_authid set rolname ='secapigee' where rolname = 'apigee2';
Yeniden adlandırılan tüm kullanıcıların şifresini güncelleyin:
ALTER ROLE apigee WITH PASSWORD '<secret>'; ALTER ROLE srcapige WITH PASSWORD '<secret>';Aşağıdaki komutu kullanarak PostgreSQL veri klasörünü yeniden adlandırın:
mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
Şu ada sahip bir klasör içinde orijinal yedek verilerin bulunduğundan emin olun:
/opt/apigee/data/apigee-postgresql/pgdata-version.old/.Örneğin:
/opt/apigee/data/apigee-postgresql/pgdata-9.6.old//opt/apigee/data/apigee-postgresql/pgdata-version.old/içindeki verileri geri yükleyin klasörünü/opt/apigee/data/apigee-postgresql/pgdataklasörüne taşımak için şu komutu kullanın:mv /opt/apigee/data/apigee-postgresql/pgdata-version.old/ /opt/apigee/data/apigee-postgresql/pgdata
Örneğin:
mv /opt/apigee/data/apigee-postgresql/pgdata-9.6.old/ /opt/apigee/data/apigee-postgresql/pgdata
db_upgradekomutunu yeniden çalıştırın:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
Tüm
apigee-qpiddveedge-qpid-serverhizmetlerini yeniden başlatın:/opt/apigee/apigee-service/bin/apigee-service apigee-qpidd restart/opt/apigee/apigee-service/bin/apigee-service edge-qpid-server restart
Sorun devam ederse Teşhis bilgileri toplanmalıdır bölümüne gidin.
Teşhis bilgilerini toplamalı
Yukarıdaki sorun giderme talimatlarını uyguladıktan sonra sorun devam ederse aşağıdaki teşhis bilgilerini toplayabilir. Apigee Destek Ekibi ile iletişime geçip aşağıdaki bilgileri destek ekibiyle paylaşın:
/opt/apigee/apigee-postgresql/lib/actions/db_upgradedosyasının ikinci satırınaset -xekleyin.Sık karşılaşılan teşhis adımlarını uygulayın ve
db_upgradekomutunun konsol çıkışını destek ekibine iletin:opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
Destek ekibine aşağıdaki günlük dosyalarını sağlayın:
/opt/apigee/var/log/apigee-postgresql/apigee-postgresql.log /opt/apigee/var/log/apigee-postgresql/update.logAlternatiflerin
autoolarak ayarlanıp ayarlanmadığını kontrol etmek için aşağıdaki işletim sistemi komutlarının çıktısını sağlayın.update-alternatives --display psql
VEYA
update-alternatives --display pgsqlupdate-alternatives --list psqlVEYA
update-alternatives --list pgsql
Alternatifler
manualolarak ayarlanmışsa aşağıdaki komutu kullanarakautoolarak ayarlayabilirsiniz:update-alternatives --auto psql
Alternatifler
autoolarak ayarlandığındapsqlvepostgresikili programları yükseltmeye çalışıyor. Aksi takdirde, ikili dosyalar eski sürümü işaret eder ve bu da sorunlara neden olabilir.