DB2联邦(DB2使用联邦功能链接DB2)
一、使用可视窗口创建联邦
1、打开控制中心,然后打开数据库,在其“联合数据库对象”文件右击单击“创建包装器”选项,打开创建包装器窗口,数据源选中DB2,添加包装器名称(名称只有不重复即可)。
切换到设置标签页,选中DB2_FENCED,使用其默认值“N”,“DB2_FENCED”属性用来指定包装器是以受保护方式还是可信方式运行,默认值“N”表示包装器以可信方式方式运行。
点击显示SQL可以查看创建包装器的SQL语句:
CREATE WRAPPER DRDA2 LIBRARY 'db2drda.dll' OPTIONS ( ADD DB2_FENCED 'N') ;
注:在创建包装器可能出现“对指定的操作启用数据库实例”,原因码:”1”。设置配置FEDERATED为yes即可解决该问题,详见三需注意的问题第一点。
2、选择刚才创建的包装包DRDA2,右击“服务器定义”,单击创建到“创建服务器定义“。
单击发现,可以查看数据库列表,选择要联邦的数据库,选择类型和版本,
单击属性设置服务器器定义,填写用户标识和密码:
点击显示SQL可以查看创建服务器的SQL语句:
CREATE SERVER APPDB TYPE DB2/UDB VERSION '9.7' WRAPPER DRDA2 AUTHID "db2admin" PASSWORD "*****" OPTIONS( ADD DBNAME 'APPDB');
3、创建用户映射:点击用户映射,右击“创建“,选择本地用户标识
切换到设置标签页,设置远程数据库的用户标识和密码:
查看SQL语句:
CREATE USER MAPPING FOR ADMINISTRATOR SERVER FILEDB OPTIONS ( ADD REMOTE_AUTHID 'db2admin', ADD REMOTE_PASSWORD '*****') ;
4、创建昵称,点击昵称,右击“创建”到创建昵称对话框:
点击“添加”到添加昵称对话框,填写昵称(昵称不可重名),添加远程模式和远程表名:
也可以点发现通过模式或表面查找远程表
创建昵称的SQL语句:
CREATE NICKNAME DB2ADMIN.USERTBL FOR APPDB.DB2ADMIN.USERTBL;
二、通过SQL创建联邦
上面通过窗口创建都有对应的SQL语句:
1、创建安装包:
CREATE SERVER APPDB TYPE DB2/UDB VERSION '9.7' WRAPPER DRDA2 AUTHID "db2admin" PASSWORD "*****" OPTIONS( ADD DBNAME 'APPDB');
2、创建服务器定义
CREATE SERVER APPDB TYPE DB2/UDB VERSION '9.7' WRAPPER DRDA2 AUTHID "db2admin" PASSWORD "*****" OPTIONS( ADD DBNAME 'APPDB');
3、创建用户映射
CREATE USER MAPPING FOR ADMINISTRATOR SERVER FILEDB OPTIONS ( ADD REMOTE_AUTHID 'db2admin', ADD REMOTE_PASSWORD '*****') ;
4、创建昵称
CREATE NICKNAME DB2ADMIN.USERTBL FOR APPDB.DB2ADMIN.USERTBL;
三、需注意的问题:
1、提示为对指定的操作启用数据库实例,原因:为设置配置项的FEDERATED为yes。解决方法:update dbm cfg using FEDERATED yes,设置后停止服务器,再启动服务器。
2、DB2联邦的权限:具有DB2管理员的权限才可以创建数据库联邦。
3、用户映射:本地用户和远程远程的权限问题。