Oracle dblink的底层是通过ODBC连接PostgreSQL执行SQL的,需安装unixODBC和PostgreSQL ODBC驱动(它们的配置文件是:odbcinst.ini和odbc.ini),还需配置Oracle网络使用这个驱动。以下操作都是在Oracle服务器上进行:

以root用户安装unixODBC:
yum install unixODBC unixODBC-devel.x86_64
unixODBC相当于Linux中管理所有数据库ODBC驱动的管理器。

以root用户安装PostgreSQL ODBC驱动
编译安装,以root执行:
yum install libpq5-devel.x86_64
wget https://ftp.postgresql.org/pub/odbc/versions/src/psqlodbc-12.02.0000.tar.gz
tar xf psqlodbc-12.02.0000.tar.gz
cd psqlodbc-12.02.0000
./configure
make
make install
默认安装到/user/local/lib

配置odbcinst.ini和odbc.ini,以root用户执行:
vim /etc/odbcinst.ini(不区分大小写)

/usr/local/lib/psqlodbcw.so 是PostgreSQL ODBC驱动的库。
/usr/lib64/libodbcpsqlS.so 是unixODBC的库。
vim /etc/odbc.ini

这里Driver应与odbcinst.ini中的[PostgreSQL]对应,可以取任何名字,但两者需要相同。其它参数视具体PostgreSQL服务器而定。[PG]是一个连接PostgreSQL的配置名称,其它应用程序(如Oracle)就是引用这个名称访问PostgreSQL。
测试一下这个ODBC连接能否工作:

配置Oracle网络,以oracle用户执行,涉及3个Oracle配置文件的修改:
$ORACLEHOME/network/admin/listener.ora
$ORACLEHOME/hs/admin/init<SID_NAME>.ora
$ORACLEHOME/network/admin/tnsnames.ora
1)在listener.ora中,增加一项配置(红圈部分),它代表PostgreSQL提供的数据库服务,Oracle将PostgreSQL也看成一个Oracle实例,SID_NAME = PGINSTANCE是给它定义一个实例名,这个名称任意,但是这个名称决定了第二个配置文件$ORACLEHOME/hs/admin/init<SID_NAME>.ora的文件名,例如initPGINSTANCE.ora。

2)$ORACLEHOME/hs/admin/init<SID_NAME>.ora
实例PGINSTANCE连接PostgreSQL数据库时,Oracle会到$ORACLEHOME/hs/admin/下找名为initPGINSTANCE.ora的配置文件,里面是关于ODBC连接的信息,Oracle使用这些信息连接PostgreSQL,例如,在我的环境中,这个文件内容如下:

HS_FDS_CONNECT_INFO = PG 这个参数指向odbc.ini文件中的ODBC连接名称[PG],参考前面。HS_FDS_SHAREABLE_NAME =/usr/local/lib/psqlodbcw.so 这个参数设置PostgreSQL ODBC驱动的路径,与odbcinst.ini中Driver64相同。
如果PostgreSQL的字符编码是UTF8,那么下面两个参数应该这样设置:
HS_NLS_NCHAR=UCS2
HS_LANGUAGE=AMERICAN_AMERICA.AL32UTF8

3)在tnsnames.ora中,增加一项(红圈):

pglink是客户端到PostgreSQL实例的连接配置,只要注意一点:“SID = PGINSTANCE”中,SID应设置为listener.ora中PostgreSQL的实例名,例如这里就是PGINSTANCE。pglink这个名称,将在创建dblink时使用。

创建dblink
在sqlplus或其它终端执行
create database link dl_pgsql connect to "postgres" identified by "post123" using 'pglink';
其中'pglink'是tnsnames.ora文件里定义的,这里把Oracle数据库作为客户端,去连接pglink所指的实例。
"postgres" identified by "post123" 是指PostgreSQL中的用户。
这各名称为dl_pgsql的dblink所连接的PostgreSQL数据库名由odbc.ini的Database参数指定。postgres用户应该对Database所指的数据库,有足够访问权限。

通过dblink访问PostgreSQL
假设emp表在名为postgres的数据库中的名为public的schema下,Oracle完成上面的配置后,可以这样访问:
select * from "public"."emp"@dl_pgsql;
创建和使用别名
CREATE SYNONYM emp_table FOR "public"."emp"@dl_pgsql;
select * from emp_table;

Oracle配置dblink访问PostgreSQL相关推荐

  1. oracle 连接greenplum,Oracle通过DBLINK访问GreenPlum

    为多个数据库之间的整合和迁移做POC,尝试使用Oracle Gateway和Heterogeneous Service来中转访问,测试过好多次,最终发现只有在32位的Oracle当中才能成功配置. 配 ...

  2. Oracle通过DBLINK访问达梦数据库

    环境需求 需要安装配置以下相关软件: 1.Oracle Gateways 2.ODBC数据源(gateway机器) 3.达梦数据库软件(gateway机器) 安装配置 Windows环境 安装达梦数据 ...

  3. 配置RODBC访问PostgreSQL数据库

    走了不少弯路,总算把这个问题搞定,贴到这里分享给大家. 1:下载安装PostgreSQL的ODBC驱动 http://www.postgresql.org/ftp/odbc/versions/msi/ ...

  4. oracle数据库dblink创建语句_「运维实验」——达梦数据库DBlink连接Oracle配置

    经过昨天达梦数据库间DBlink配置(具体操作可回看上一篇文章),今天做延伸实验. 实验环境说明 Oracle数据库1:192.168.80.40 ora11g RHEL 6.5 64位 达梦数据库1 ...

  5. oracle数据库dblink创建语句_「运维实验」——达梦数据库间DBlink配置

    作为一名运维工程师一定会专注于日常运维实验分享,即时分享即时阅读,希望能帮助同行在运维路上一路前(tuo)行(fa). 下面是详细实验: 实验环境说明 达梦数据库1:192.168.80.40 DMS ...

  6. oracle通过dblink连接mysql配置详解(全Windows下)

    oracle通过dblink连接mysql配置详解(全Windows下) 关于oracle通过dblink连接mysql,经过了两周的空闲时间研究学习,终于配置好了,真是不容易啊,仔细想想的话,其实也 ...

  7. 达梦数据库通过DBLINK访问ORACLE (从DM到ORACLE)

    一.环境 ORACLE: IP 100.111.8.9 操作系统版本 Linux CentOS 7.0 数据库版本 oracle 11g SELINUX DISABLED 防火墙 关闭 达梦: IP ...

  8. PostgreSQL数据库配置网络访问

    PostgreSQL数据库配置网络访问 安装PostgreSQL数据库之后,默认是只接受本地访问连接.若想在其他网段访问,这必须修改配置文件. 配置远 程连接PostgreSQL数据库的步骤很简单,只 ...

  9. oracle创建DBLink连接

    1.创建dblink的第一种方式,是在本地数据库tnsnames.ora文件中配置了要远程访问的数据库.tnsnames.ora文件在你安装oracle客户端安装文件里 如:(E:\oracle\pr ...

最新文章

  1. 事关人类生存?为什么要探寻AI系统的可解释性?
  2. express 使用 redirect 对 ajax 无效 页面不跳转
  3. 迄今为止把同步/异步/阻塞/非阻塞/BIO/NIO/AIO讲的这么清楚的好文章
  4. 北京信息科技大学第十一届程序设计竞赛
  5. 动态规划简单应用:斐波那契数列
  6. 中班机器人歌曲_机器人幼儿园大班音乐教案
  7. linux sudo命令全称,linux sudo命令的概念与使用
  8. 作者:谢华美(1976-),男,中国人民银行征信中心数据部副总经理,主要研究方向为数据挖掘。...
  9. Codeforces Beta Round #97 (Div. 1) C. Zero-One 数学
  10. Qt4_在Qt设计师中集成自定义窗口部件
  11. webfigure显示到网页上所踩过的坑--自写servlet
  12. 小学三年级计算机认识键盘教案,第8课 认识键盘大家庭 教案
  13. FOI2019算法冬令营D1
  14. android指南针卡死,android指南针
  15. 【STM32标准库】【基础知识】时钟系统
  16. OpenCv打开摄像头失败问题处理cap_msmf.cpp (677) MFVideoFormat_RGB24(codec not found)
  17. python教学计划与教学大纲,Python基础教程-教学大纲
  18. 2018ICPC北京赛总结
  19. js截取,拼接,字符串方法
  20. NVIDIA APX 能直接运行QUAKE 3,真正的手机3D游戏时代不远了!

热门文章

  1. Java学习笔记之键盘输入数组
  2. 徐州计算机考试成绩查询,徐州高考成绩查询系统入口
  3. ubuntu16.0.4 离线部署nginx
  4. 感情危机,朋友的网恋女友要和他闹分手,问我怎么办
  5. 【Vue】method间互相调用
  6. 转载:grib文件说明
  7. 还是一篇来自Java14th的学习、面试经验分享
  8. scala函数式编程笔记: 纯函数式状态
  9. 健身耳机哪个牌子好,分享几款健身好用的耳机品牌
  10. 实验10-9 十进制转换二进制