PostgreSQL 也有类似 Oracle dblink 的功能,可以远程访问 PostgreSQL 数据库,但需要手工安装dblink, 下面是dblink的安装过程和简单使用。
dblink的安装 
编译
1 2  
# cd  postgres源码安装目录/contrib/dblink  #  make  
 
 
安装dblink
1 2 3 4 5 6  
[root@pg1 dblink] /bin/mkdir  -p '/opt/pgsql/lib '  /bin/mkdir  -p '/opt/pgsql/share/contrib '  /bin/sh  ../../config/install-sh  -c -m 755 dblink.so '/opt/pgsql/lib/dblink.so '  /bin/sh  ../../config/install-sh  -c -m 644 ./uninstall_dblink.sql  '/opt/pgsql/share/contrib '  /bin/sh  ../../config/install-sh  -c -m 644 dblink.sql '/opt/pgsql/share/contrib ' 
 
 
安装完成之后,会在目录 /opt/pgsql/lib/ 产生一个lib文件 dblink.so; 同时在目录 $PGHOME/share/contrib下产生一个 dblink.sql文件,这个文件用来创建 dblink 各类函数。
导入 dblink.sql 到目标库
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48  
# chown -R postgres:postgres /opt/pgsql   su - postgres   [postgres@pg1 contrib]$ psql -d mydb -f dblink.sql   SET   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   REVOKE   REVOKE   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  TYPE   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION   CREATE  FUNCTION  
 
 
dblink的简单使用 
dblink主要函数简介
1 2 3 4 5  
dblink_connect ― opens a persistent connection  to  a remote database   dblink_send_query ― sends an async query to  a remote database   dblink_get_result ― gets an async query result   dblink ― executes a query in  a remote database   dblink_disconnect ― closes a persistent connection  to  a remote database  
 
 
dblink的使用 目标库: IP=192.168.1.27 port=1921 database=testdb
1 2 3 4 5  
mydb=> select dblink_connect ('dblink_testdb','host =192.168.1.27 port =1921 dbname =testdb user =test_user password =test_user' ) ;   dblink_connect    ----------------   OK   (1 row)  
 
 
发送异步查询请求
1 2 3 4 5  
mydb=> select  dblink_send_query('dblink_testdb ',' select  * from test_id');   dblink_send_query    1    (1  row)  
 
 
获取异步查询结果
1 2 3 4 5 6  
mydb=>  select * from dblink_get_result('dblink_testdb' ) as t1  (id  integer) id   -----   100   101   (2 rows)  
 
 
Insert
1 2 3 4  
mydb=>  select dblink_exec('dblink_testdb' ,'insert into test_id values (103 )') dblink_exec   -------------   INSERT 0 1  
 
 
或者直接查询
1 2 3 4 5 6 7  
mydb=>  select * from dblink('dblink_testdb' ,'select * from test_id') as t1  (id  integer) id   -----   100   101   103   (3 rows)  
 
 
断开dblink连接  
mydb=> select dblink_disconnect('dblink_testdb');  
dblink_disconnect  
-------------------  
OK  
(1 row)
以上就是PostgreSQL dblink的简单使用过程,感觉没有Oracle的dblink使用方便,有关 dblink 的详细但要可以查看PostgreSQL官网文档详细介绍。
                                                        原创文章,作者:6024010,如若转载,请注明出处:https://blog.ytso.com/tech/bigdata/236327.html