我的编程空间,编程开发者的网络收藏夹
学习永远不晚

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

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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

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

 

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

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 "<unknown>" 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')"


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

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

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

阿里云数据库无法修改密码?原因及解决办法

在使用阿里云数据库的过程中,我们可能会遇到无法修改密码的问题。这篇文章将详细说明这个问题的原因,并提供相应的解决办法。正文:在使用阿里云数据库的过程中,我们可能会遇到无法修改密码的问题。这种情况下,我们可能会感到非常困惑和沮丧。但是,只要我们了解了问题的原因,就可以找到相应的解决办法。首先,我们需要知道,阿里云数
阿里云数据库无法修改密码?原因及解决办法
2023-11-01

编程热搜

目录