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表记录
五、参考链接