Programing

pgAdmin을 사용하여 PostgreSQL 함수 디버그

lottogame 2020. 11. 19. 07:43
반응형

pgAdmin을 사용하여 PostgreSQL 함수 디버그


pgadmin을 사용하여 코드를 단계별로 실행하여 plpgsql 함수를 디버깅하기 위해 PostgreSQL 서버에서 디버거를 활성화 하기 위해 이것을 참조 합니다 .

이미에서 설정 shared_preload_libraries = '$libdir/plugins/plugin_debugger.dll'하고 postgresql.conf실행 pldbgapi.sql하고 서버를 다시 시작했습니다.

이러한 단계는 성공적으로 실행 plugin_debugger.dll되어야하며 명령을 사용하여 확인할 수있는 것처럼 성공적으로로드되어야하며 show shared_preload_librariespgAdmin에서 함수를 마우스 오른쪽 버튼으로 클릭하면 컨텍스트 메뉴에서 디버깅 옵션을 볼 수 있습니다.

여기에 이미지 설명 입력

"디버깅"-> 디버그를 선택하면 입력 매개 변수에 대한 값을 입력 할 수있는 창이 팝업됩니다. 하지만 그 후를 누르면 OK전혀 반응이 없습니다.

여기에 이미지 설명 입력

서버의 디버거 설정에서 어떤 아이디어 나 내가 놓친 것이 있습니까 ??

PostgreSQL 8.3 및 pgAdmin 1.14를 사용하고 있습니다.


두 곳에서 디버깅을 활성화해야합니다. PGAdmin 및 데이터베이스 자체에서. 당신이 참조한 그 기사는 그것을 설명하는 훌륭한 직업이지만 약간의 뉘앙스가있었습니다.

PGAdmin

postgresql.conf디버깅 라이브러리를로드 하기 위해 파일을 업데이트 할 때 Windows에서 PGAdmin을 실행하고 있었 으므로 파일은 다음과 같습니다.

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

그리고의 경로 plugin_debugger.dll는 실제로

$libdir/plugin_debugger.dll

아니

$libdir/plugins/plugin_debugger.dll

기사에 명시된대로. 따라서 다음 postgresql.conf과 같은 라인이 필요합니다.

shared_preload_libraries = '$libdir/plugin_debugger.dll'

확실하지 않은 경우 실제 .dll을 검색하십시오. Linux를 사용하는 경우 찾고있는 파일은 plugin_debugger.so. postgresql.conf파일 을 변경 하면 변경 사항을 적용하려면 다시 시작해야 한다는 점을 잊지 마십시오 .

PostgreSQL 데이터베이스

Linux 서버에서 PostgreSQL 데이터베이스를 실행한다고 가정하면 이 요지 는 디버깅을 활성화하기 위해 종속성을 다운로드하는 방법을 설명하는 데 탁월한 역할을합니다. 설치할 때 루트로 실행 중인지 확인하십시오.

놓치기 쉬운 부분은 디버그하려는 실제 데이터베이스에 대해 명령을 실행하는 것입니다. PostgreSQL의 최신 버전의 경우 다음과 같이하면됩니다.

CREATE EXTENSION IF NOT EXISTS pldbgapi;

그래도 오류가 반환되지 않으면 가셔도 좋습니다.

몇 가지 추가 참고 사항 :

  • 위에서 언급했듯이 슈퍼 사용자 계정으로 실행할 때만 디버그 할 수 있습니다.
  • 에서 다음 작업을 자신의 문서 만 디버그 PL / pgSQL의 기능을 할 수 있습니다. 따라서 함수에 LANGUAGE cPGAdmin 과 같은 내용이 표시되면 함수를 선택할 때 오른쪽 클릭 디버그 메뉴 옵션도 표시되지 않습니다. 있는 것을 LANGUAGE plpgsql찾으면 디버그 메뉴가 표시됩니다.

시야,

PgAdmin 1.14 / PostgreSQL 8.3 상호 작용 문제를 배제하기 위해 pgAdmin 1.8을 사용해 보셨습니까? 8.3을 사용한 지 오래되었고 내가 작성한 기사에 대해 언급 한 것은 1.14 / PostgreSQL 9.1로 테스트하고 있었으므로 이전 버전과의 상호 작용에 문제가 될 수 있습니다. 불행히도 더 이상 테스트 할 8.3이 없습니다.

한 번 문제가 있었던 것을 막연하게 기억하지만 pldebugger 외에도 postgresql.conf에 다른 공유 라이브러리가있을 때였습니다. 어느 것이인지 기억할 수 없지만 다른 공유 라이브러리를 제거하면 문제가 해결되었습니다.

이 제안 중 일부가 도움이되기를 바랍니다, Regina


나는 같은 문제가 있었다. postgres.conf에서로드 하는 유일한 공유 라이브러리가 디버거 인지 확인하십시오 . 다른 건 없습니다. 프로파일 러도 아닙니다. 함수를 디버그하려고 할 때 SSL 오류가 발생하면 서버에 다시 연결하십시오.

참고 URL : https://stackoverflow.com/questions/7865615/debug-postgresql-function-using-pgadmin

반응형