DB2跨库查询

    SQLSERVER、ORACLE等数据库都能进行对远程数据库的跨库查询,同样DB2也提供了数据库联邦功能实现跨库查询,为数据的迁移带来很大的方便。实现DB2数据库的跨库查询主要有以下几个步骤:


1 打开数据库联邦功能
db2 update dbm cfg using FEDERATED YES


2 创建数据库编目
如果创建联邦的两个数据库不在同一个机上,那么需要在一个数据库上编目另一个数据库
db2 catalog tcpip node sgsnode remote 10.76.3.80 server 50000;
db2 catalog database icssif as sgsicsif at node sgsnode;


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,我们可以想查询本地数据库的表一样,查询此表了!


7 同一台机上的数据库联邦

如果需要查询的两个数据库在同一台机上,那么就不需要进行对远程数据库编目了,如下实例:
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'
    );



你可能感兴趣的:(db2,跨库查询, ,数据库联邦)