DB2联邦数据库及配置方法(及联邦密码修改)
admin
2023-05-21 12:42:43
0次

如果您需要使用所有不同的数据库,包括选择、插入、更新和删除,就象所有的表都位于单个数据库中那样,那么将获得非常高的工作效率。数据库联邦就是要做到这一点:使所有表看起来象是在同一个数据库中

 

那么,数据库联邦是怎么工作的?

DB2联邦数据库及配置方法(及联邦密码修改)

“联邦者(federator)”系统对远程系统“被联邦者(federatee)”中的表进行操作。远程表在“Federator”数据库中作为虚拟表出现。客户机应用程序可以对“Federator”数据库中的虚拟表执行操作,但是真正的持久性存储位于远程数据库中。

每个“被联邦者”都将“联邦者”看成是另一个数据库客户机连接。“Federatee”只是处理数据库操作的客户机请求。“联邦者”需要用客户机软件来访问每个远程数据库。要访问每种被联邦者,则需要安装 IBM Informix®、Sybase、Oracle 等等的客户机软件。

数据库联邦的应用程序接口是 SQL。与必须学习新接口相比,这大大地提高了工作效率。使用与对本地表进行选择、插入、更新和删除相同的语法来访问远程表。当然也并不是可以进行所有表操作。

 

 

下面我们通过实际操作来看看如何配置联邦数据库:

 

我们先准备好前期工作,创建一个本地数据库和远程数据库来做实验——

本地数据库 :

数据库:LOCALDB

IP地址:192.168.20.138

端口号:60000

用户名:db2inst1

密码:db2inst1

DB2联邦数据库及配置方法(及联邦密码修改)


远程数据库 :

数据库:REMOTEDB

IP地址:192.168.20.145

端口号:70000

用户名:db2inst2

密码:db2inst2

DB2联邦数据库及配置方法(及联邦密码修改)

 

另外确保远程数据库的全局设置如下——

DB2联邦数据库及配置方法(及联邦密码修改)

 

现在,我们首先是添加编目节点——

DB2联邦数据库及配置方法(及联邦密码修改)


然后编目数据库——

db2 catalog database REMOTEDB as REMOTEDB at node NODE1


查看编目节点及编目数据库结果——

db2 list node directory



db2 list db directory

DB2联邦数据库及配置方法(及联邦密码修改)

显示编目已成功

 


接下来执行创建数据库联邦的步骤,首先创建WRAPPER——

备注:如果自定义了wrapper的名字,那么 library 就要加上,不同的系统lib的后缀不同,

AIX 是 .a

Linux 是 .so 

注意:db2 "create wrapper db2_wrapper library 'libdb2drda.a'" 双引号!

可以通过 uname -a 去查看当前是什么操作系统



(注意创建wrapper之前必须先连接本地数据库:

db2 connect to dbname)

DB2联邦数据库及配置方法(及联邦密码修改)

从上面可以看到报错了,说的是未对指定的操作启用数据库的实例

 

我们查看Federated(联邦)的功能是否打开,只需要开启本地的联邦功能即可,看到显示是NO

DB2联邦数据库及配置方法(及联邦密码修改)


我们将Federated打开,并重启数据库使其生效——

DB2联邦数据库及配置方法(及联邦密码修改)

DB2联邦数据库及配置方法(及联邦密码修改)


现在可以看到创建成功了——

DB2联邦数据库及配置方法(及联邦密码修改)

 

现在开始连接远程数据库,记得连接前确保远程的系统已关闭防火墙——

DB2联邦数据库及配置方法(及联邦密码修改)

 

创建连接对方数据的SERVER——

$ db2 "create server remotedb1svr type DB2/UDB version 10.5 wrapper "DRDA" authorization \"db2inst2\" password \"db2inst2\" options( NODE 'NODE01', DBNAME 'REMOTEDB')"

DB2联邦数据库及配置方法(及联邦密码修改)

如果报错SQL1101N  Remote database "dbname" on node "" could not be accessed
with the specified authorization id and password.  SQLSTATE=08004

尝试修改db2 get dbm cfg|grep AUTHENTICATION

 Database manager authentication        (AUTHENTICATION) = SERVER

重启数据库生效


创建MAPPING——

$ db2 "create user mapping for \"db2inst1\" server remotedb1svr options (remote_authid 'db2inst2',remote_password 'db2inst2')"

DB2联邦数据库及配置方法(及联邦密码修改)


创建联邦关系表(首先需要确认远程的库有对应的表已存在于数据库中)——

$ db2 "create nickname db2inst1.testtable for remotedb1svr.db2inst2.testtable"

DB2联邦数据库及配置方法(及联邦密码修改)


通过在本地查看联邦数据库的表

DB2联邦数据库及配置方法(及联邦密码修改)

可以看到可以正常显示

 

我们再测试一下插入操作是否可行——

DB2联邦数据库及配置方法(及联邦密码修改)

执行成功,并且成功插入数据。

 

 

数据库联邦可以使我们不再需要构建数据集市了!还有个前提,就是如果要查询的量不是很大,并且如果汇总表通常就可以满足查询的要求,那么就不需要数据集市、不需要相应地创建新服务器和移动大量的数据等,这样可以大大地提高工作效率。当然,对于需要访问最低级别的详细信息的忙碌繁重的查询而言,数据集市或数据仓库是首选的解决方案。


注:如果数据库实例用户密码(联邦中定义的用户及密码,也可以不是实例用户,只要是远端存在的用户即可)需要进行修改的话,需要对联邦中的密码一并修改,否则联邦会失效。特别要注意的一点,实例用户密码修改之后,最好执行一次重启,否则你会发现不修改联邦中的用户密码也不影响,但是一旦数据库重启后密码就会使用最新的用户密码。

修改联邦中的用户或密码的方法如下:

(修改表联邦用户):

db2 "ALTER USER MAPPING FOR \"db2inst1\" SERVER remotedb1svr OPTIONS (SET remote_authid 'db2inst2')"

(修改表联邦密码):

db2 "ALTER USER MAPPING FOR \"db2inst1\" SERVER remotedb1svr OPTIONS (SET remote_password 'db2inst2')"


相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...