pg库以oracle库格式导出,postgres外部表(oracle)

DBA通常会碰到这样的情况:在两个不同的数据库间进行数据交互。就象我现在经常会把一个ORACLE库转成PG库。如果把数据先导出成文件,再导入目标库,当然也可以。但这样操作有个难点,就是文件格式!

PG有一个非常实用的功能可以实现不同数据库间的数据交互--外部表--我的O转P操作就是这么干的。

1,在同一台服务器上安装POSTGRES(9.1.3)和ORACLE(10.2.0.4),具体步骤相信大家都会。

2,更改postgres的环境变量,加入ORACLE的部分,如下:

export

PATH=$PATH:$HOME/bin

export PGPORT=1921

export PGDATA=/pgdata

export LANG=en_US.utf8

export PGHOME=/opt/pgsql

export

ORACLE_BASE=/opt/oracle

export

ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1

export

LD_LIBRARY_PATH=$ORACLE_HOME/lib:$PGHOME/lib:/lib64:/usr/lib64:/usr/local/lib64:/lib:/usr/lib:/usr/local/lib

export

PATH=$PGHOME/bin:$PATH:.

export

MANPATH=$PGHOME/man:$MANPATH

export

PATH=$ORACLE_HOME/bin:$PGHOME/bin:$PATH:.

oracle@linux-> chown -R

postgres:postgres $ORACLE_BASE

4,安装oracle_fdw,可到pgfoundry上下载,这里的版本是0.9.3。

注:必须以root用户安装

su – root

.

/home/postgres/.bash_profile

cd oracle_fdw-0.9.3

make install

5,创建extension,要以superuser来操作

test# create extension

oracle_fdw;

6,创建server

test#

create server svr_test_ora foreign data wrapper oracle_fdw options

(dbserver '//172.16.1.1:1521/test_ora');

这里在server里指定要访问的oracle库的信息,ip+port+sid

7,创建user mapping

test# create user mapping

for user_pg server svr_test_ora options (user

'user_ora',password '*****');

这里指定要访问的oracle库的用户名(user_ora)和密码。user_pg是PG库里的用户名。

8,创建foreign

table

test# create FOREIGN table ft_tbl_t1

(c1 bigint ,

c2 numeric(10,0) ,

c3 character

varying(2) , c4 timestamp without time zone ,

c5 numeric(12,0))

server svr_test_ora options (table 'TBL_T1',schema

'USER_ORA',plan_costs

'true');

8,赋权及访问

test# grant select on ft_tbl_t1 to

test;

test# \c test

test

test=> select * from

public.ft_tbl_t1;

注:不能对外部表进行DML操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值