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_upgrade
komutunu 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.old
dosyasınıpg_control
olarak 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_upgrade
komutunu 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.conf
olup 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/pgdata
konumuna 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 trust
Mülkün şurada ayarlandığından emin olmak için
apigee-postgresql
hizmetini yeniden başlatın: Yukarıdaki 4. adım,pg_hba.conf
yapılandırma dosyasında güncellenir:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
Aşağıdaki komutu kullanarak
pg_hba.conf
yapı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_upgrade
komutunu yeniden çalıştırın:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
pg_hba.conf
yapı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
apigee
rolünü geçici bir kullanıcı olarak değiştirin (örneğin:apigee2
):update pg_authid set rolname ='apigee2' where rolname = 'apigee';
srcapige
adlı başka bir yükleme kullanıcısı olduğunu varsayalım.srcapige
rolünüapigee
olarak yeniden adlandırın:update pg_authid set rolname ='apigee' where rolname = 'srcapigee';
apigee2
kullanıcısınısrcapige
olarak 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/pgdata
klasö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_upgrade
komutunu yeniden çalıştırın:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
Tüm
apigee-qpidd
veedge-qpid-server
hizmetlerini 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_upgrade
dosyasının ikinci satırınaset -x
ekleyin.Sık karşılaşılan teşhis adımlarını uygulayın ve
db_upgrade
komutunun 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.log
Alternatiflerin
auto
olarak 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 pgsql
update-alternatives --list psql
VEYA
update-alternatives --list pgsql
Alternatifler
manual
olarak ayarlanmışsa aşağıdaki komutu kullanarakauto
olarak ayarlayabilirsiniz:update-alternatives --auto psql
Alternatifler
auto
olarak ayarlandığındapsql
vepostgres
ikili programları yükseltmeye çalışıyor. Aksi takdirde, ikili dosyalar eski sürümü işaret eder ve bu da sorunlara neden olabilir.