DB2联邦

来源:互联网 发布:淘宝美版三星s7能买吗 编辑:程序博客网 时间:2024/04/29 02:54

一、两个数据库在不同的服务器上
[环境描述]
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' wrapperdrda 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
 
4) 创建用户映射
db2 "create user mapping for local_db_user server db2svr10 options(add remote_authid 'remote_db_user', add remote_password 'remote_db_password')"
 
5) 创建nickname
db2 connect to db_17
db2 "create nickname local_tabschema_alias.local_tabname_alias fordb2svr10.remote_tabschema.remote_tabname"
 
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. 部分参考互联网
0 0
原创粉丝点击