postgresql安装oracle_fdw扩展

Oracle_fdw是PG的一个外部数据接口,可以使PostgreSQL轻松跨库操作Oracle。Oracle_fdw的作用有以下两点:

  • PG可以跨库增删改查Oracle中的表,可以查询Oracle的视图,可以使PG中的表和Oracle中表/视图作Join查询,类似dblink的功能。
  • 快速将Oralce表迁移进入PostgreSQL。
    本文简单介绍下Oracle_fdw的安装和使用。

一、环境

centos6.8 64位,postgresql9.6.8 x86_64

二、oracle_fdw安装

官方地址:http://pgxn.org/dist/oracle_fdw/ ,选择一个版本下载。

2.1 安装Oracle Instant Client

具体安装参照centos安装oracle客户端

此安装不包括sdk文件,因此从oralce官网下载  sdk-10.2.0.5.0-linux-x64.zip文件,放到/opt/soft/目录下

解压sdk-10.2.0.5.0-linux-x64.zip文件

进入解压出来的instantclient_10_2文件,拷贝sdk文件到$ORACLE_HOME目录

进入以下目录

创建软连接

设置/etc/profile环境变量

保存退出,执行source /etc/profile命令,使配置生效。

2.2 编译oracle_fdw

启用postgres用户环境变量

解压oracle_fdw-2.0.0.zip

编译安装oracle_fdw

没报错,代表安装成功。

三、创建oracle_fdw扩展

四、使用oracle_fdw

4.1 创建server

打开$ORACLE_HOME/network/admin/tnsnames.ora,内容如下:

 

先用oracle的客户端如pl/sql登陆下,登陆正常进行下一步。

 

oradb_12是server的名称,'12'指向tnsnames.ora中配置的实例名。

 

4.2 授予用户权限

将刚创建的服务oradb_12授予权限于postgresql用户postgres。

 

4.3 数据库同步

postgres为postgres数据库用户 swdn_new为被访问的oracle数据库用户名,123456为密码

4.4 创建foreign table

create foreign table t_record_change_foreign
(
    table_name varchar(32),
    last_update_time timestamp(6),
    trans_id varchar(64),
    commited numeric(1)
)server oradb_12 options(schema 'SWDN_NEW',table 'T_RECORD_CHANGE');
SWDN_NEW为oracle数据库用户名,T_RECORD_CHANGE为需要访问的Oracle数据库的表,两者均要大写

4.5 查询t_record_change_foreign表记录

 

五、参考链接

1

2

3

posted @ 2018-07-10 11:37  Luis Yang  阅读(2293)  评论(0编辑  收藏  举报