DB2数据库联邦(跨库查询)

xiaoxiao2025-09-05  289

实验目的

在本地数据库 sample 中直接查询远程数据库remoteDb的表:tab_test

1、查看数据库版本配置

– 本地数据库:sample

db2licm -l 产品名: “DB2 Express-C” 许可证类型: “无担保” 到期日期: “永久” 产品标识: “db2expc” 版本信息: “10.5” 最大 CPU 数目: “2” 最大内存量 (GB): “16” 强制策略: “软停止”

– 远程数据库:remoteDb@192.168.1.102

db2licm -l 产品名: “DB2 Express-C” 许可证类型: “无担保” 到期日期: “永久” 产品标识: “db2expc” 版本信息: “9.7” 最大 CPU 数目: “2” 最大内存量(GB): “2”

2、数据库编目

db2 catalog TCPIP node n_102 remote 192.168.1.102 server 50000 db2 catalog db remoteDb as remoteDb200 at node n_102

db2 list node directory db2 list db directory

3、确认本地dbm的配置项 federated 开启

db2 get dbm cfg | find /i “fed” db2 update dbm cfg using federated yes – 设置完成后,需要重启实例

4、登录DB2数据库后,查询当前用户的用户模式

select current schema from sysibm.dual ;

5、创建DRDA包装器(WRAPPER)

CREATE WRAPPER DRDA OPTIONS (DB2_FENCED ‘N’) ;

6、创建服务器(SERVER)

– 语法:

create server <server_name> type DB2/UDB version 9.7 wrapper “DRDA” authorization <对方用户> password <对方密码> options (NODE ‘<node_name>’,dbname ‘<对方数据库>’)

– 示例:

CREATE SERVER tempserver TYPE DB2/UDB VERSION 9.7 WRAPPER DRDA AUTHORIZATION “remote_user_name” PASSWORD “remote_user_pwd” OPTIONS (node ‘n_102’, DBNAME ‘remoteDb200’);

7、创建用户映射Mapping

– 语法:

create user mapping for <本地用户> server <server_name> options (remote_authid ‘<对方用户>’, remote_password ‘对方密码’)

– 示例:

CREATE USER MAPPING FOR admin SERVER tempserver OPTIONS (REMOTE_AUTHID ‘remote_user_name’ ,REMOTE_PASSWORD ‘remote_user_pwd’ );

8、创建联邦关系表

– 语法:

create nickname <schema.table_alias_name> for <server_name.对方用户名.table>

– 示例:

CREATE NICKNAME tab_test FOR tempserver.remote_user_name.tab_test;

9、数据查询

– 语法:

select * from <schema.table_alias_name> ;

– 示例:

SELECT * FROM tab_test

10、测试结果清理:

– 语法:

DROP NICKNAME nickname; DROP USER MAPPING FOR authorization_name SERVER server_name; DROP SERVER server_name[@more@]; DROP WRAPPER wrapper_name;

– 示例:

DROP nickname tab_test; DROP USER mapping FOR admin SERVER tempserver; DROP SERVER tempserver; DROP wrapper drda;

参考:

https://blog.csdn.net/liufuwu1/article/details/70761475 https://www.cnblogs.com/OliverQin/p/6068411.html

转载请注明原文地址: https://www.6miu.com/read-5035818.html

最新回复(0)