Greenplum数据库的dblink功能之搭建
文档参考:http://blog.2ndquadrant.com/using_dblink_in_greenplum/
关键字: greenplum,dblink
1、什么是dblink
dblink是一个PostgreSQL contrib模块,允许对另一个数据库执行查询。
当前PostgreSQL的模型需要用户连接到一个特定的数据库服务器上。因此,它本身是不可能对另一个数据库执行SQL查询。
通常我们不鼓励使用dblink查询远程数据库。
我们总是建议用户使用模式。但有时,这也许还不够。
不管怎样,这篇文章向您展示如何PostgreSQL和Greenplum是相关的。
2、准备:
greenplum数据库:
检查环境:看是否已经安装了,如果已经安装了,直接跳到第4步。
gpadmin@linux-hd1:~> pg_config --pkglibdir
/usr/local/greenplum-db/lib/postgresql/
然后在上边这个目录里检查一下各个节点主机的是否安装。(all_host:包含你所有主备用控制节点和数据节点)
gpadmin@linux-hd1:~> gpssh -f all_host 'll /usr/local/greenplum-db/lib/postgresql/dblink.so'
1、主节点上没有,其他节点上有的,建议重新安装DBLINK组件
2、主节点上有,其他节点上没有的,将主节点上的文件复制到其他节点上。
3、安装dblink组件
postgressql8.2版本的源代码:(建议使用8.2的版本,9.2版本在编码的时候报错,提示少文件)
下载地址:
上传到GREENPLUM数据库主节点上,如:上传至/home/gpadmin
*解压缩
gpadmin@linux-hd1:~> tar vxf postgresql-8.2.23.tar.gz
*进入dblink目录:
gpadmin@linux-hd1:~> cd /home/gpadmin/postgresql-8.2.23/contrib/dblink/
*编辑 Makefile,在第PG_CPPFLAGS语句后面加上-w(通常是在第4行,作用是忽略警告),修改后如下:
PG_CPPFLAGS = -I$(libpq_srcdir) -w
*编译代码
gpadmin@linux-hd1:~/postgresql-8.2.23/contrib/dblink> make USE_PGXS=1 install
sed 's,MODULE_PATHNAME,$libdir/dblink,g' dblink.sql.in >dblink.sql
gcc -m64 -O3 -funroll-loops