联邦数据库的一个例子(转)
转自: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