一、两个数据库在不同的服务器上
[环境描述]
10.0.0.10:库名为 db_10
10.0.0.17:库名为 db_17
10.0.0.10:库名为 db_10
10.0.0.17:库名为 db_17
[需求描述]
在db_17库中,跨库查询db_10库的表
在db_17库中,跨库查询db_10库的表
[操作步骤]
1)在10.0.0.17数据库服务器,开启联邦支持
db2 "update dbm cfg using federated yes"
db2stop force
db2start
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
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 "connect to db_17"
db2 "create wrapper
drda library 'libdb2drda.a' options(add db2_fenced 'n')"
#注:不同的操作系统,使用不同的包(这里远端的系统是AIX,使用libdb2drda.a)
#db2 "create wrapper drda" 这是一般创建drda包装器的语句
#注:不同的操作系统,使用不同的包(这里远端的系统是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
#注: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')"
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 for db2svr10.remote_tabschema.remote_tabname"
db2 connect to db_17
db2 "create nickname local_tabschema_alias.local_tabname_alias for db2svr10.remote_tabschema.remote_tabname"
6)验证查询结果
db2 "select * from local_tabschema_alias.local_tabname_alias"
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. 部分参考互联网