SQLSERVER、ORACLE等数据库都能进行对远程数据库的跨库查询,一样DB2也提供了数据库联邦功能实现跨库查询,为数据的迁移带来很大的方便。实现DB2数据库的跨库查询主要有如下几个步骤:css
1 打开数据库联邦功能
db2 update dbm cfg using FEDERATED YESnode
2 建立数据库编目
若是建立联邦的两个数据库不在同一个机上,那么须要在一个数据库上编目另外一个数据库
db2 catalog tcpip node sgsnode remote 10.76.3.80 server 50000;
db2 catalog database icssif as sgsicsif at node sgsnode;sql
3 建立包装器wrappers
CREATE WRAPPER "DRDA"
LIBRARY 'libdb2drda.so'
OPTIONS (DB2_FENCED 'N'
);数据库
4 建立 服务器SERVER
CREATE SERVER SGSICSIF
TYPE DB2/UDB
VERSION '9.7'
WRAPPER DRDA
AUTHORIZATION "db2inst1"
PASSWORD " db2inst1 "
OPTIONS
(DBNAME 'SGSICSIF'
);
5 用户映射
CREATE USER MAPPING FOR IBSS SERVER SGSICSIF OPTIONS ( ADD REMOTE_AUTHID 'db2inst1', ADD REMOTE_PASSWORD 'db2inst1') ;
6 创建昵称
CREATE NICKNAME "DB2INST1"."N_B_I_CIG"
FOR "SGSICSIF"."DB2INST1"."T_B_I_CIG";服务器
此时,咱们能够在DB2数据库的对象中看到这个N_B_I_CIG,咱们能够想查询本地数据库的表同样,查询此表了!app
7 同一台机上的数据库联邦tcp
若是须要查询的两个数据库在同一台机上,那么就不须要进行对远程数据库编目了,以下实例:
CREATE SERVER PPPY
TYPE DB2/NT
VERSION '10'
WRAPPER DRDA AUTHID "db2towas"
PASSWORD "db2towas"
OPTIONS (
DB2_CONCAT_NULL_NULL 'Y',
DB2_VARCHAR_BLANKPADDED_COMPARISON 'Y',
DBNAME 'pppy',
NO_EMPTY_STRING 'N'
);
CREATE USER MAPPING FOR DB2TOWAS
SERVER PPPY
OPTIONS (
REMOTE_AUTHID 'db2towas',
REMOTE_PASSWORD 'db2towas'
);
ide