实验目的
在本地数据库 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