DB2编目、联邦数据库

一、两个数据库在不同的服务器上

[环境描述]
10.0.0.10:库名为 db_10
10.0.0.17:库名为 db_17

 

[需求描述]
在db_17库中,跨库查询db_10库的表

 

[操作步骤]
1)在10.0.0.17数据库服务器,开启联邦支持
db2 "update dbm cfg using federated yes"
db2stop force
db2start

 

2)在10.0.0.17数据库服务器,编目Node、DB
db2 "catalog tcpip node node_10 remote 10.0.0.10 server 50001"
db2 "catalog db db1 as db_10 at node node_10"
db2 terminate

 

3)连接到db_17数据库,并创建DRDA包装器(WRAPPER),创建服务器(SERVER)
db2 "connect to db_17"

db2 "create wrapper drda library 'libdb2drda.a' options(add db2_fenced 'n')"
#注:不同的操作系统,使用不同的包(这里远端的系统是AIX,使用libdb2drda.a)
#db2 "create wrapper drda" 这是一般创建drda包装器的语句

 

db2 "create server db2svr10 type db2/aix version '9.7' wrapper drda authid \"remote_db_user\" password \"remote_db_password\" options(add dbname 'db_10',node 'node_10')"
#注:db2svr10是Server别名,dbname 'db_10'是编目的DB_Alias别名,node 'node_10'是编目的Node名
#db2/aix 或 db2/udb

#这里的remote_db_user可以不是下面要映射的user,可以是管理用户

 

4) 创建用户映射
db2 "create user mapping for local_db_user server db2svr10 options(add remote_authid 'remote_db_user', add remote_password 'remote_db_password')"

#这里的remote_db_user必须在本地、远端都存在,同名、同密码,也有访问各自数据库的权限。

 

5) 创建nickname

(这里必须以user mapping的用户登录数据库,进行创建nickname,否则会报SQL1101N错误)
db2 connect to db_17 user local_db_user  using remote_db_password
db2 "create nickname local_tabschema_alias.local_tabname_alias for db2svr10.remote_tabschema.remote_tabname"

注意:如果希望其他用户也能使用该nickname,必须增加相应的user mapping定义,同时保证这个user有查询远程表(source table)的权限。

 

6)验证查询结果
db2 "select * from local_tabschema_alias.local_tabname_alias"


[其他操作]
1)、删除nickname、user mapping、server操作如下:
db2 "drop nickname Your_Nickname"
db2 "drop user mapping for Local_DB_User server Server_Name"
db2 "drop server Server_Name"
db2 "drop wrapper Wrapper_Name"

 

2)、解编目操作:

db2 "uncatalog node Node_Name"

db2 "uncatalog db DB_Name"

 

 

二、两个数据库在同一服务器上(相同实例、不同实例)

同上类似。

 

 

p.s. 部分参考互联网

 

 

转载于:https://my.oschina.net/goopand/blog/343703

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值