注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

PostgreSQL 中文网

 
 
 

日志

 
 

PostgreSQL:pldebugger 模块安装:支持函数调试  

2015-04-02 10:17:46|  分类: Postgres基础 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

         习惯了 Oracle 的朋友,非常熟悉使 plsql developer 工具的存储过程调试功能,目前 PostgreSQL 本身不支持函数调试,但可以通过安装外部模块实现这一重要功能,本文以 PostgreSQL 9.4beta3 为例子,演示  pldebugger  模块的安装和使用。
    
一 安装 pldebugger
--下载 pldebugger

cd /opt/pgsql_9.4beta3/share/contrib/
git clone git://git.postgresql.org/git/pldebugger.git


--安装 pldebugger

[root@db1 pldebugger]# source /home/pg94/.bash_profile
root@db1-> USE_PGXS=1 make
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fpic -I/opt/pgsql_9.4beta3/lib/pgxs/src/makefiles/../../src/pl/plpgsql/src -I. -I./ -I/opt/pgsql_9.4beta3/include/server -I/opt/pgsql_9.4beta3/include/internal -D_GNU_SOURCE   -c -o plpgsql_debugger.o plpgsql_debugger.c
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fpic -I. -I./ -I/opt/pgsql_9.4beta3/include/server -I/opt/pgsql_9.4beta3/include/internal -D_GNU_SOURCE   -c -o plugin_debugger.o plugin_debugger.c
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fpic -I. -I./ -I/opt/pgsql_9.4beta3/include/server -I/opt/pgsql_9.4beta3/include/internal -D_GNU_SOURCE   -c -o dbgcomm.o dbgcomm.c
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fpic -I. -I./ -I/opt/pgsql_9.4beta3/include/server -I/opt/pgsql_9.4beta3/include/internal -D_GNU_SOURCE   -c -o pldbgapi.o pldbgapi.c
gcc -O2 -Wall -Wmissing-prototypes -Wpointer-arith -Wdeclaration-after-statement -Wendif-labels -Wmissing-format-attribute -Wformat-security -fno-strict-aliasing -fwrapv -fpic -shared -o plugin_debugger.so plpgsql_debugger.o plugin_debugger.o dbgcomm.o pldbgapi.o -L/opt/pgsql_9.4beta3/lib -Wl,--as-needed -Wl,-rpath,'/opt/pgsql_9.4beta3/lib',--enable-new-dtags  

root@db1-> USE_PGXS=1 make install
/bin/mkdir -p '/opt/pgsql_9.4beta3/lib'
/bin/mkdir -p '/opt/pgsql_9.4beta3/share/extension'
/bin/mkdir -p '/opt/pgsql_9.4beta3/share/extension'
/bin/mkdir -p '/opt/pgsql_9.4beta3/share/doc/extension'
/usr/bin/install -c -m 755  plugin_debugger.so '/opt/pgsql_9.4beta3/lib/plugin_debugger.so'
/usr/bin/install -c -m 644 pldbgapi.control '/opt/pgsql_9.4beta3/share/extension/'
/usr/bin/install -c -m 644 pldbgapi--1.0.sql pldbgapi--unpackaged--1.0.sql '/opt/pgsql_9.4beta3/share/extension/'
/usr/bin/install -c -m 644 README.pldebugger '/opt/pgsql_9.4beta3/share/doc/extension/'


--修改 postgresql.conf

shared_preload_libraries = '$libdir/plugin_debugger'

备注:此参数修改后需要重启数据库生效。

--重启数据库

pg94@db1-> pg_ctl restart -m fast


--创建 pldbgapi 模块

pg94@db1-> psql francs
psql (9.4beta3)
Type "help" for help.

francs=# create extension pldbgapi ;
CREATE EXTENSION



二 函数调试测试
--create function

CREATE OR REPLACE FUNCTION func_add(i_a int4, i_b int4  ) RETURNS int4  AS $$
DECLARE
   v_add int4 ;
begin
  RAISE NOTICE '% + %', i_a, i_b;
  v_add:=i_a+i_b;
  return  v_add;
end;
$$ LANGUAGE 'plpgsql';

备注:接下来打开本地 pgAdmin 工具,连接到相应库,找到对应函数,单击右键,出现如图:

PostgreSQL:pldebugger 模块安装:支持函数调试 - francs - PostgreSQL DBA
 
之后出现调试界面,如下图:

PostgreSQL:pldebugger 模块安装:支持函数调试 - francs - PostgreSQL DBA
 备注: 太棒了!

三 参考
  评论这张
 
阅读(1240)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016