2011-10-23 19 views
64

kullanarak Debug PostgreSQL işlevi Ben pgpmin kullanarak kodlar arasında dolaşarak plpgsql işlevini hata ayıklamak için PostgreSQL sunucusunda hata ayıklayıcısını etkinleştirmek için this bakın. pgAdmin

Zaten, postgresql.conf içinde shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll' set pldbgapi.sql çalıştırın ve sunucu yeniden başlattınız.

Bu adımlar başarıyla çalıştırmak olmalıdır ve plugin_debugger.dll başarıyla komutunu show shared_preload_libraries kullanılarak doğrulanabilir olarak yüklenmelidir ve ben pgAdmin bir fonksiyonu üzerine bir sağ tıklama ile içerik menüsünde ayıklama seçeneğini görebilirsiniz. "Hata Ayıklama" seçerken

enter image description here

-> ayıklama, bir pencere bana girdi parametrelerinin değerlerini girmesi için açılır. Ama bundan sonra, OK'a bastığımda, hiç cevap vermiyor.

enter image description here

herhangi bir fikir veya sunucuda ayıklayıcı kurulumunda şey mi kaçırdım ??

PostgreSQL 8.3 ve pgAdmin 1.14

+9

+1 iyi soru. Yine de neden başarısız olduğunu bilmiyorum. Hiçbir şey ortaya çıkmazsa, sorunuzu her zaman pgAdmin destek listesine gönderebilirsiniz: [email protected] (burada sorunuza bir bağlantı ekleyin). [Buradaki arşivi buradan indirin] (http://archives.postgresql.org/pgadmin-support/2011-10/threads.php). –

+0

Bağlantı için teşekkürler Erwin, soruları zaten pgAdmin desteğine gönderdim –

+5

Cevap !!! http://archives.postgresql.org/pgadmin-support/2011-10/msg00052.php –

cevap

2

Ken

Eğer pgAdmin 1.14/PostgreSQL 8.3 etkileşimi konuyu ekarte etmek pgAdmin 1.8 denediniz kullanıyorum. 8.3 kullanmamdan ve yazdığım makaleden beri bir süre geçiyordu - ki bunlardan bahsediyorsunuz, 1.14/PostgreSQL 9.1 ile test ediyordum, bu yüzden çok eski sürümle etkileşimde bulunabiliyor. Ne yazık ki test etmek için artık 8.3 tane yok.

Bir keresinde yaşadığınız sorunu hatırlıyorum hatırlıyorum, ama pldebugger ek olarak postgresql.conf içinde başka bir paylaşılan kitaplık vardı. Hangisi olduğunu hatırlayamıyorum, ancak diğer paylaşılan kütüphaneyi kaldırmam sorunu çözdü. Bu önerilerden bazıları yardımcı

Umut, Regina

+0

Teşekkürler Regina. PostgreSQL sunucusu 8.13.16 ile pgAdmin 1.14, 1.12 ve 1.8 kullanmayı denedim ve sorun hala var. Ama ofisimin PC'sinde, PostgreSQL sunucusu 8.13.5 ile pgAdmin 1.12 kullanmayı denedim ve çok iyi çalışıyor. Eğer PostgreSQL 9.1'in en son sürümünü kullanmaya çalışacağım eğer ben ücretsiz –

+0

ise, eğer bunu engelleyen bir çeşit antivirüs olayı olup olmadığını merak ediyorum. – LR1234567

+0

Öneri için teşekkürler Regina. Ama antivirüsünü (Avira AntiVir olan) ve pencere güvenlik duvarını devre dışı bıraktım, ancak hala çalışmıyor. –

1

ben aynı problem vardı. Yalnızca, postgres.conf dosyasında yüklediğiniz paylaşılan libonun 'un paylaşılan lib'in hata ayıklayıcı olduğundan emin olun. Başka hiçbir şey. Profiler bile değil. Bir işlevi hata ayıklamaya çalışırken bir SSL hatası alırsanız, sunucuya yeniden bağlanın.

5

İki yerde hata ayıklamayı etkinleştirmeniz gerekir. PGAdmin ve veritabanı üzerinde. Başvuruda bulunduğunuz makalede bunu açıklayan harika bir iş var ama bazı nüanslar vardı.

pgAdmin

ayıklama kitaplığı yüklemek için postgresql.conf dosyasını güncellerken, çok dosya buradaydı running PGAdmin on Windows oldu

:

C:\Program Files\PostgreSQL\9.4\data\postgresql.conf 

Ve plugin_debugger.dll oldu aslında

$libdir/plugin_debugger.dll 
yolu

Makalede belirtildiği üzere

. Eğer şüphe iseniz Yani postgresql.conf gerçek .dll için bu

shared_preload_libraries = '$libdir/plugin_debugger.dll' 

Arama gibi bir hatta ihtiyacı olacaktır. Eğer Linux'unuz varsa, aradığınız dosya plugin_debugger.so'dur. postgresql.conf dosyasını değiştirmenin, değişikliğin etkili olması için yeniden başlatılmasını gerektirdiğini unutmayın.

PostgreSQL Veritabanı

Bir Linux sunucuya this gist üzerinde PostgreSQL veritabanı çalıştırıyorsanız varsayarsak hata ayıklama etkinleştirme bağımlılıkları indirmek için nasıl açıklayan mükemmel bir iş yok. Yüklediğinizde root olarak çalıştığınızdan emin olun.

Kaçırılması kolay olan bölüm, hata ayıklamak istediğiniz gerçek veritabanına karşı komut vermektir. PostgreSQL üzerinde yeni sürümler için yapmanız gerekir tüm şudur: bir hata dönmezse

CREATE EXTENSION IF NOT EXISTS pldbgapi; 

, gitmek iyi olmalıdır. Notun

Bazı ek şeyler: Yukarıda belirtildiği gibi

  • , bir süper kullanıcı hesabı their docs yapabilirsiniz yalnızca hata ayıklama pl/pgsql fonksiyonları itibaren
  • olarak sadece hata ayıklama çalıştıran zaman. Yani işleviniz LANGUAGE c gibi bir şey söylüyorsa, PGAdmin işlevi seçtiğinizde bir sağ tıklatma Hata Ayıklama menüsü seçeneği göstermez. LANGUAGE plpgsql olan bir şey arayın ve Hata Ayıklama menüsü göstermelidir.
İlgili konular