oracle访问远程db2,通过DB2联邦访问Oracle

1.查看OS和DB的版本 OS版本: C:\Users\Administratorver Microsoft Windows [版本 6.1.7601] Oracle版本: SQL select * from v$version where rownum=1; BANNER -------------------------------------------------------------------------------- Oracle

1.查看OS和DB的版本

OS版本:

C:\Users\Administrator>ver

Microsoft Windows [版本 6.1.7601]

Oracle版本:

SQL> select * from v$version where rownum=1;

BANNER

--------------------------------------------------------------------------------

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

DB2版本:

C:\Users\Administrator>db2level

DB21085I  实例 "DB2" 使用 "32" 位和 DB2 代码发行版 "SQL09076",级别标识为

"08070107"。

参考标记为 "DB2 v9.7.600.413"、"s120516" 和 "IP23322",修订包为 "6"。

产品使用 DB2 副本名 "DB2COPY1" 安装在 "C:\PROGRA~2\IBM\SQLLIB" 中。

2.配置DB2安装目录下的sqllib/cfg/db2dj.ini文件,增加如下ORACLE环境变量:

ORACLE_HOME=D:\app\Administrator\product\11.2.0\dbhome_1

ORACLE_BASE=E:\app\Administrator

ORA_NLS33=D:\app\Administrator\product\11.2.0\dbhome_1\nls\data

TNS_ADMIN=D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN

NLS_LANG=american_CHINA.ZHS16GBK

3.修改 DBM参数FEDERATED为YES支持联邦

C:\>db2 update dbm cfg using FEDERATED YES

DB20000I  UPDATE DATABASE MANAGER CONFIGURATION 命令成功完成。

SQL1362W  未动态更改为立即修改而提交的一个或多个参数。直到下次启动应用程序或发出

TERMINATE 命令之后,客户机更改才会生效。直到下一条 DB2START

命令之后,服务器更改才会生效。

C:\>db2 terminate

DB20000I  TERMINATE 命令成功完成。

4.创建测试DB,我就不建了

5.注册oracle包装器

C:\>db2 disconnect all

DB20000I  SQL DISCONNECT 命令成功完成。

C:\>db2stop

SQL1064N  DB2STOP 处理成功。

C:\>db2admin stop

SQL4407W  已成功停止“DB2 管理服务器”。

C:\>db2admin start

SQL4406W  已成功启动 DB2 管理服务器。

C:\>db2start

SQL1063N  DB2START 处理成功。

C:\>db2 create wrapper net8

DB20000I  SQL 命令成功完成。

或者如下创建也是可以的。

C:\>db2 create wrapper net8 LIBRARY 'C:\Program Files (x86)\IBM\SQLLIB\BIN\db2net8.dll'

DB20000I  SQL 命令成功完成。

DB2官方文档有明确说明,联邦访问oracle必须使用net8,因为有对应的db2net8.dll文件支持,db2drda.ddl也是如此。

官方解释如下:

Register the NET8 wrapper on a federated server to access Oracle data sources. NET8 is the predefined name for the wrapper that you can use to access Oracle data sources.

6.为oracle数据源注册服务器定义

C:\>db2 create server f_oracle type oracle version 11.2.0.3 wrapper net8 options(node 'orcl')

DB21034E  该命令被当作 SQL 语句来处理,因为它是无效的“命令行处理器”命令。在

SQL 处理期间,它返回:

SQL0103N  数字文字 "11.2.0.3" 无效。  SQLSTATE=42604

C:\>db2 create server f_oracle type oracle version 11.2.0 wrapper net8 options(node 'orcl')

DB20000I  SQL 命令成功完成。

7.为oracle数据源创建用户映射:

C:\>db2 create user mapping for db2admin Server f_oracle options(remote_authid 'lyn',remote_password 'lyn')

DB20000I  SQL 命令成功完成。

8.创建用户昵称并测试

C:\>db2 create nickname nk_orcl for f_oracle.sys.all_users

DB20000I  SQL 命令成功完成。

C:\>db2 select count(*) from nk_orcl

1

-----------

31

1 条记录已选择。

C:\>db2 select count(*) from sys.all_users

COUNT(*)

------------------------

+3.10000000000000E+001

1 条记录已选择。

疑问:是不是每访问Oracle用户lyn下的一个表就得建立一个nickname?

更多Oracle相关信息见Oracle专题页面http://www.68idc.cn/topicnews.aspx?tid=12

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值