最新版本debugger开源社区没有更新到PostgreSQL9.6,需要从EDB社区取最新debugger包,该包也只支持pg9.2,因此需要取源码编译安装,步骤如下:
一、环境
Linux:CentOS Linux release 7.2.1511 (Core)
Linux kernel:Linux version 3.10.0-327.el7.x86_64
Postgresql:PostgreSQL9.6.1-1
二、安装postgresql96 devel包
如果已经安装略过此步。
yum安装,如果不行rpm安装
rpm -aq| grep postgres
yum list postgresql96*
yum install postgresql96-devel.x86_64
rpm安装
路径如下:
https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/
sudo rpm -ivh https://yum.postgresql.org/9.6/redhat/rhel-7-x86_64/postgresql96-devel-9.6.1-1PGDG.rhel7.x86_64.rpm
三、安装pldebugger
1、下载pldebugger
Git下载并移动到PG软件目录下,本案例PG目录/usr/pgsql-9.6/share/contrib/
mkdir /opt/download
cd /opt/download/
git clone git://git.postgresql.org/git/pldebugger.git
mv pldebugger /usr/pgsql-9.6/share/contrib/
2、编译安装pldebugger
cd /usr/pgsql-9.6/share/contrib/pldebugger/
export PGHOME=/usr/pgsql-9.6
export PATH=$PATH:$PGHOME/bin
echo $PATH
make
如果报错,加USE_PGXS=1,原因可以自行搜索。make: *** 没有规则可以创建目标“/contrib/contrib-global.mk”。 停止
make USE_PGXS=1 install
报错,/usr/pgsql-9.6/include/server/libpq/libpq-be.h:25:25: 致命错误:openssl/ssl.h:没有那个文件或目录
安装openssl
yum install openssl-devel
make USE_PGXS=1 install
安装完后在postgresql目录的Lib文件夹可以看到plugin_debugger.so文件
cd /usr/pgsql-9.6/lib
ls
四、postgresql配置文件配置
vi /var/lib/pgsql/9.6/data/postgresql.conf
修改配置文件参数如下,如果多个参数逗号分开
shared_preload_libraries = '/usr/pgsql-9.6/lib/plugin_debugger.so'
重启数据库
systemctl enable postgresql-9.6.service
五、创建扩展模块
su postgresql
psql
\ c budw
create extension pldbgapi;
查看插件是否安装成功
SELECT * from pg_extension;
六、测试
在pgAdmin4中找到函数右击出现debug菜单,如下图:
最后感谢,MtrS,亭亭小次郎在编译pldebugger包时给予的帮助,和pg社区各位大牛给予的问题解决思路指导。