Apigee Edge belgelerini görüntülüyorsunuz.
Apigee X belgelerine gidin. bilgi
Belirti
PostgreSQL veritabanını güncellerken 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 hatalı çoğaltma ayarları | Yükseltme sırasında yanlış çoğaltma ayarları nedeniyle PostgreSQL yükseltmesi başarısız olur. | Edge Özel Bulut 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 başka bir kullanıcı ile bir yükleme kullanıcısı olarak yüklendi ve bu durum yükseltme hatasına yol açıyor. | Edge Özel Bulut Kullanıcıları |
Genel Teşhis Adımları
PostgreSQL veritabanını yükseltirken hata alırsanız önce aşağıdaki teşhis adımlarını uygulayın:
PostgreSQL veri klasörünü yeniden adlandırın:
mv /opt/apigee/data/apigee-postgresql/pgdata /opt/apigee/data/apigee-postgresql/pgdata-bkp
Orijinal yedekleme 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/
cihazındaki yedekleme verilerini/opt/apigee/data/apigee-postgresql/pgdata
ürününe 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 tekrar çalıştırın:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql db_upgrade
Aşağıdaki hatayı alırsanız...
pg_resetxlog: could not open file "global/pg_control" for reading: No such file or directory
...ve 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 tekrar ç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
istediğiniz çoğaltma ayarlarına sahip olup olmadığını kontrol edin. - Bu dosya beklenen çoğaltma ayarlarına sahipse "Apigee" kullanıcısı dışındaki başka bir yükleme kullanıcısı tarafından gerçekleştirilen PostgreSQL yüklemesi bölümüne gidin.
- Görmüyorsanız Çözüm'e gidin.
Çözüm
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
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 yedekleme verilerini
/opt/apigee/data/apigee-postgresql/pgdata-version.old/
konumundan/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
Yardımcı ana makineyi daha önce değiştirdiyseniz
pg_hba.conf
yapılandırma dosyasını güncellemek için/opt/apigee/customer/application/postgresql.properties
içinde aşağıdaki özelliği güncellemeniz gerekir:conf_pg_hba_replication.connection=host replication apigee existing_slave_ip/32 trust\ \nhost replication apigee new_slave_ip/32 trust
Yukarıdaki 4. adımda ayarlanan mülkün
pg_hba.conf
yapılandırma dosyasına güncellendiğinden emin olmak içinapigee-postgresql
hizmetini yeniden başlatın:/opt/apigee/apigee-service/bin/apigee-service apigee-postgresql restart
PostgreSQL yükseltmesi sırasında yanlış ayarlarla güncellenmediğinden emin olmak için aşağıdaki komutu kullanarak
pg_hba.conf
yapılandırma dosyasını sabit hale getirin:chattr +i /opt/apigee/apigee-postgresql/conf/pg_hba.conf
db_upgrade
komutunu tekrar ç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ışındaki başka bir yükleme kullanıcısı tarafından gerçekleştirildi
Teşhis
Aşağıdaki adımları uygulayarak, rolesuper olan bir kullanıcının true olarak ayarlanıp ayarlanmadığı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 değerini true olarak ayarlanmış birden fazla kullanıcı olup olmadığını kontrol edin. Varsa PostgreSQL yükseltmesi, başka bir kullanıcı Apigee kullanıcısı yerine install user olarak ayarlandığı için başarısız olur. Rolsuper rolüne ve daha düşük bir OID'ye sahip olan tüm kullanıcılar, yükleme kullanıcısı olarak kabul edilir.
Bu tür bir rol sorunlarını 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'e giriş yapın:
psql -h $(hostname -i) -U apigee
Eski veritabanındaki mevcut
apigee
rolünü geçici bir kullanıcı olarak yeniden adlandırın (örneğin:apigee2
):update pg_authid set rolname ='apigee2' where rolname = 'apigee';
Başka bir yükleme kullanıcısının (
srcapige
) olduğunu varsayalım.srcapige
rolünüapigee
olarak yeniden adlandırın:update pg_authid set rolname ='apigee' where rolname = 'srcapigee';
apigee2
öğesinin adınısrcapige
kullanıcısı olarak değiştirin:update pg_authid set rolname ='secapigee' where rolname = 'apigee2';
Yeniden adlandırılan tüm kullanıcılar için şifreyi 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
/opt/apigee/data/apigee-postgresql/pgdata-version.old/
adlı bir klasörde orijinal yedekleme verilerinin 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/
klasöründeki verileri/opt/apigee/data/apigee-postgresql/pgdata
klasörüne 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 tekrar ç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ı bölümüne gidin.
Teşhis bilgileri toplanmalıdır
Yukarıdaki sorun giderme talimatlarını uyguladıktan sonra sorun devam ederse aşağıdaki teşhis bilgilerini toplayın. Apigee Destek Ekibi ile iletişime geçin ve bu bilgileri destek ekibiyle paylaşın:
/opt/apigee/apigee-postgresql/lib/actions/db_upgrade
dosyasının ikinci satırınaset -x
kodunu ekleyin.Yaygın 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 çıkışı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 ayarlandıysa aşağıdaki komutu kullanarak bunlarıauto
olarak ayarlayabilirsiniz:update-alternatives --auto psql
Alternatifleri
auto
olarak ayarlamak,psql
vepostgres
ikililerini yükseltilmiş sürümlere yönlendirir. Aksi takdirde, ikili programlar eski sürüme işaret eder ve bu da sorunlara neden olabilir.