test1:应用程序默认数据库 用户名:db2inst1
test2:需要远程访问的目标数据库 用户名:db2inst1
1.db2 get dbm cfg 查看当前实例的配置,如果federated为yes的话转到第4步,如果为no的话,继续第2步
2.db2 update dbm cfg using federated yes 启用联合数据库系统支持
3.db2stop force 关闭数据库,然后 db2start 重启数据库
4.db2 catalog tcpip node nt2(节点名称) remote 192.168.128.129(目标IP) server 50000(目标端口) 创建编目节点
5.db2 catalog db test2(目标数据库名称) as t2(本地别名,注意长度,不能超过8位) at node nt2(节点名称) 创建编目数据库
6.db2 create wrapper drda 创建DRDA包装器
7.db2 切换到命令行
8.连接到test1 connect to test1 user db2inst1 using *********
authid "db2inst1"(目标数据库用户名) password "******"(目标数据库密码)
options(node 'nt2', dbname 't2'(创建的数据库别名)) 创建server
10.create user mapping for db2inst1(默认数据库的用户名) server t2sys(服务名称)
options (remote_authid "db2inst1"(目标数据库用户名),
remote_password "******"(目标数据库密码)) 创建用户映射
11.create nickname db2inst1(默认数据库的用户名).test2_table1(昵称名)
for t2sys(服务名).db2inst1(目标数据库用户名).test2_table1(目标数据库表名) 创建昵称(表映射)
12.测试 select * from test2_table1
附录:
db2 force application all 切断数据库与应用程序的连接
db2 terminate 刷新目录缓存,使编目生效
db2 uncatalog node test2 (节点名称) 反编目节点
db2 uncatalog db t2 (别名) 反编目数据库
db2 drop nickname nickname (昵称名) 删除昵称(表映射)
db2 drop user mapping for authorization_name (映射用户名) server server_name (服务名) 删除用户映射
db2 drop server server_name (服务名) 删除服务名
db2 drop wrapper wrapper_name (包装器名) 删除包容器