联邦数据库的一个例子(转)

转自:http://bbs.51cto.com/archiver/tid-496967.html

 

联邦数据库的一个例子!

联邦数据库的理解就不说了哈!
下边就一个例子来配置:
在3.40上创建基于4.5的联邦数据库的过程:

1.设置联邦数据库开关
db2 update dbm cfg using federated yes
db2stop
db2start
db2
2.为远程数据库创建“包装器”:
create wrapper drda
  --drda为名称
3.
定义联邦服务器
create server tstsvr
type DB2/AIX --数据库类型
version 8.1  --版本
wrapper drda authorization "db2admin" password "...." options(NODE 'SERVER',dbname 'DW');
--
authorization 为远程数据库用户
-- password 为密码
--NODE 为远程实例映射到本地的node
--dbname为远程实例下的数据库名
commit;
4.为联邦者认证创建用户映射
-- create user mapping for "DB2ADMIN" server tstsvr options(remote_authid 'DB2ADMIN',remote_password '....');
-- commit;
CREATE USER MAPPING FOR "DB2ADMIN" --db2admin为本地用户
SERVER TSTSVR
  OPTIONS
   (REMOTE_AUTHID 'db2admin',--远程用户名和3一致
    REMOTE_PASSWORD 777400419419456990610222 --远程秘密和3一致,不过这边有一个加密的过程
   );
   
5. 表别名 - 访问远程表的“门票”
create nickname CUST_TYPE_C1_Z for tstsvr.db2admin.CUST_GROUP_C1_Z;
commit;
6.测试如下:
select * from CUST_TYPE_C1_Z;
--auther:z.x.t
--前提:用quest center在3.40上配置了关于4.5的catalog,如果没有quest center也可以用以下命令来配置
--如下:
1。创建节点实例
CATALOG TCPIP NODE server
    REMOTE 192.168.4.5
    SERVER 50000
    REMOTE_INSTANCE db2
    OSTYPE NT;
2。创建实例下的数据库
CATALOG DATABASE dw
    AS dw
    AT NODE SERVER
     AUTHENTICATION SERVER;

另一篇:

联邦数据库访问远程DB2
假定两个环境host1和host2

host1,本机
IP: 192.168.1.192
DB2 instance: db2inst1 
DB2 db: local_db

 

host2,远程被访问机器
IP: 192.168.1.195 
DB2 instance: db2inst1(port=50000,pwd=db2inst1) 
DB2 db: remote_db 
table: t_usertable

 

现在需要在host1的local_db数据库中访问远程host2上的表t_usertable

 

首先需要在host1上把host2节点和remote_db库编目进来 
db2 catalog tcpip node node_195 remote 192.168.1.195 server 50000 
db2 catalog db remote_db as remote_db_195 at node node_195 
db2 TERMINATE (必须使用该命令否则可能导致catalog更新不能生效)

 

然后在host1上测试到host2的连通性 
db2 connect to remote_db_195 user db2inst1 using db2inst1 
db2 connect reset

 

修改host1和host2的实例配置参数,需要重起实例 
db2 update dbm cfg using FED_NOAUTH yes
db2stop 
db2start

 

然后连接到host1机器上的local_db数据库中 
db2 connect to local_db

 

(本地为unix环境)create wrapper DRDA;
(本地为windows环境) create wrapper "DRDA" LIBRARY 'db2drda.dll' OPTIONS( ADD DB2_FENCED 'N');

 

create server remoteserver_195 TYPE DB2/UDB VERSION '8.2' WRAPPER DRDA AUTHORIZATION "db2inst1" PASSWORD "db2inst1" OPTIONS( DBNAME 'remote_db_195', PASSWORD 'Y'); 
CREATE USER MAPPING FOR "db2inst1" SERVER remoteserver_195 OPTIONS ( ADD REMOTE_AUTHID 'db2inst1', ADD REMOTE_PASSWORD 'db2inst1'); 
CREATE NICKNAME remote_t_usertable FOR remoteserver_195.db2inst1.t_usertable; 
(其中,wrapper使用DB2数据源的缺省名称DRDA server名称是remoteserver_195,t_usertable表在local_db数据库中的nickname是remote_t_usertable)

 

在缺省的db2inst1模式下 然后可以在host1机器上,登陆进local_db,对remote_t_usertable表进行查询等操作了
db2 'select * from db2inst1.remote_t_usertable' 
db2 connect reset

 

posted @ 2011-12-27 09:16  catch22  阅读(691)  评论(0编辑  收藏  举报