分享
 
 
 

自主监控工具维护联邦数据

王朝厨房·作者佚名  2007-01-05
窄屏简体版  字體: |||超大  

获取健康的联邦数据库系统的处方

级别: 初级

Farnaz Erfan

专职软件工程师, IBM

2005 年 6 月 23 日

了解 IBM® WebSphere® Information Integrator 的自主健康监控功能如何帮助您解决在联邦数据库环境中维护语义一致性时面临的困难。本文首先介绍联邦概念,接下来描述了健康监控功能的工作原理。

简介

当今的应用程序需要频频与许多不同源和不同格式的信息相结合。因此,应用程序开发人员往往需要调用大量不同 API 和协议来检索每个源中的信息,然后将这些信息合并到应用程序中。

WebSphere Information Integrator 通过提供一个到异构数据源的实时的基于 SQL 的接口,加速了这类场景的应用程序部署,异构数据源包括关系系统(如 DB2® Universal Database™ (DB2 UDB)、Oracle 和 Sybase)和非关系数据源(如文本文档和非结构化数据),以及新兴技术(如通过 Web Services 访问的 XML 存储库和数据)。Information Integrator 通过透明地管理关系和非关系数据并将其一起引入单个虚拟位置,来满足快速访问完全不同的数据的市场需求。图 1 详细说明了 WebSphere Information Integrator 环境:

图 1. WebSphere Information Integrator 提供单个 SQL API 来访问不同的分布式数据

WebSphere Information Integrator 通过在其自身的编目中存储联邦数据源的元数据,从而在 DB2 UDB 数据库引擎的上下文中构建数据库联邦。因为联邦中的每个数据源一直在自主操作,所以维持联邦数据库与它所联邦的源之间的一致性是一个相当大的挑战。模式定义变更、服务器和网络故障,以及密码过期等事件随时可能发生。这些事件中的每一种都可能使数据源变得不可访问或使其做过的编目不再有效,通过联邦数据库访问这些数据源的应用程序可能因此而中断。

因此,检测此类不一致性和自我管理集成环境的自主功能可以降低数据管理的复杂性。与允许真正虚拟化的环境相结合,Information Integrator 的自动化可以交付能够利用人员、过程和信息之间的资源的随需应变解决方案。

本文首先说明了联邦数据库系统的基本原理,给出了展示该系统的多样性和可扩展性的场景。然后,我们来看一下联邦数据库和它所联邦的源之间出现的实时不一致性。最后我们来看一看联邦健康监控,即在 WebSphere Information Integrator V8.2 中提供的新的自主功能,它是在 DB2 UDB Health Monitoring 组件中实现的。该功能警告系统管理员联邦数据库编目和联邦数据源之间存在不一致性,提出采取纠错措施的建议,并定期发送故障排除通知。

联邦系统的基本原理

WebSphere Information Integrator 联邦系统包括以下组件:

DB2 UDB 引擎

无需移动到中心位置即可访问分布式数据的 Information Integrator 实例

一个或多个数据源

客户机(用户和应用程序)

联邦系统的创建方式是,在 DB2 UDB 引擎上安装 Information Integrator,然后对其进行配置以注册一个或多个异构数据源。联邦数据库系统的用户可以对存储在联邦系统中任意位置的数据进行分布式查询,不管自己的位置在哪里,也不管数据源使用的是哪种 SQL 方言。图 2 说明联邦系统的架构。

图 2. 联邦系统配置的架构

系统配置的架构" src="http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/dm-0505erfan/figure2.gif" width="461" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>

联邦系统与每个数据源通信是通过称作包装器 的软件模块进行的。包装器包含特定数据源的特征。它提供了远程数据的 DB2 关系模型,并通过向远程数据源发送子查询以帮助联邦引擎实现查询处理。

在联邦系统中,服务器 表示远程数据源上的一个数据集合。对于关系数据源来说,这个集合通常就是数据库。服务器是通过 CREATE SERVER DDL 语句在联邦系统中注册的。该 DDL 将与远程数据集合有关的信息存储在 Information Integrator 编目中。例如,创建服务器时,数据库的名称、类型和版本(如 Oracle 8、Sybase 11.9)都会在 Information Integrator 编目中注册。服务器定义用于通过所谓的别名 从远程数据源访问数据。

别名 是远程数据源上驻留的数据集的表、视图或任何其他形式的数据的表示。对于关系数据源来说,此数据通常存储在表中。对于非关系数据源来说,此数据结构基于数据源的特定格式。别名通过 CREATE NICKNAME DDL 语句在联邦系统中注册。创建别名时,远程表的名称、其列的名称、数据类型、索引或远程文件的位置等都要在 Information Integrator 编目中注册。

WebSphere Information Integrator 通过所谓的用户映射 提供一种安全级别。您可以将每个 WebSphere Information Integrator 用户 ID 映射为远程数据源上的 ID 和密码。用户映射通过 CREATE USER MAPPING DDL 语句在联邦系统中注册。创建用户映射时,远程用户 ID 和密码都要在 Information Integrator 编目中注册。

示例场景

为了更好地理解我们所讨论的联邦概念,下面来看一个示例。在此例中,Information Integrator 用于合并来自文件系统记录、Oracle 和 DB2 数据源的数据。

场景:X 公司将员工记录保存的 Oracle 表中。最近,这家公司已收购了在 DB2 表中保存其员工记录的 Y 公司。这样,脚本就根据 x 公司的指导原则生成了新员工的序列号,并将其存储在文本文件中。下面是这两个表和文本文件中的内容:

Oracle 表——包含 X 公司的所有员工信息

名字

姓氏

序列号

电话号码

办公室号码

SSN

Abby

Mac

123A456

408-222-2323

H345

243-30-6789

Bob

Smith

23H5611

408-222-4509

G129

223-45-6780

Jenny

Hazel

786H543

408-224-3319

H480

823-19-6781

Edward

James

788654Q

408-222-2965

A220

523-78-6782

...

...

...

...

...

...

DB2 表——包含 Y 公司除序列号外的所有员工信息

名字

姓氏

电话号码

办公室号码

SSN

Laura

Chen

650-245-2083

PR10

443-34-6389

Sara

Bradly

650-245-3407

CS33

646-49-6783

Barbara

Simons

650-245-2257

DE22

606-20-8789

...

...

...

...

...

...

纯文本文件——包含新员工(Y 公司)的序列号

SSN

序列号

443-34-6389

459610

646-49-6783

5T45A0

606-20-8789

2306F1

...

...

现在,在内部 Web 站点发布员工记录的应用程序必须能够将新员工的新信息合并到整个公司中。Information Integrator 可以为 DB2 和 Oracle 员工表及序列号文本文件注册别名。在此例中,注册 ORACLE_NN 别名是为了访问 Oracle 表,注册 B2_NN 别名是为了访问 DB2 表,注册 SERIAL_NN 别名是为了访问文本文件。应用程序使用这些别名来构建访问 DB2、Oracle 和文本文件的查询。请参见图 3。

图 3. 通过单个 SQL API 从 Oracle、DB2 和文件记录数据源访问数据的示例

文件记录数据源访问数据的示例" src="http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/dm-0505erfan/figure3.gif" width="311" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>

清单 1 显示用于在此例中从各种数据源提取数据的查询:

清单 1. 跨不同数据源选择

SELECT FIRSTNAME, LASTNAME, SERIALNUMBER, PHONENUMBER, OFFICENUMBER

FROM ORACLE_NN UNION

(SELECT D.FIRSTNAME, D.LASTNAME, S.SERIALNUMBER,

D.PHONENUMBER, D.OFFICENUMBER

FROM DB2_NN D, SERIAL_NN S

WHERE D.SSN=S.SSN)

FIRSTNAME LASTNAME SERIALNUMBER PHONENUMBER OFFICENUMBER

--------------------------------------------------------------------------------------------

Edward James 788654Q408-222-2965 A220

Sara Bradly 5T45A0650-245-3407 CS33

Barbara Simons 2306F1650-245-2257 DE22

Bob Smith 23H5611408-222-4509 G129

Abby Mac 123A456408-222-2323 H345

Jenny Hazel 786H543408-224-3319 H480

Laura Chen 459610650-245-2083 PR10

... ... ...... ...

在此例中,您可以看到单个集成平台提供一个框架,该框架透明地使应用程序可以与多个数据源交互,无需终端用户了解关于每个数据源的任何详细信息。

访问一个组织的所有在线信息并让这些信息对员工和业务合作伙伴可访问,这对于那些努力成为随需应变商家的企业来说是件非常有趣的事情。WebSphere Information Integrator 通过允许应用程序访问企业内部和外部源的方法解决了这些难题。用户不会意识到信息来自于不同的源,如关系表、XML 存储库和业务应用程序,这些源往往是跨广泛的地理位置和多种操作系统平台分布的。有了使信息容易访问的能力,终端用户的生产力和工作效率就会得到提高。

维护数据一致性

尽管 WebSphere Information Integrator 能够集成和统一多种数据,无需考虑数据结构、所在位置或所用平台,但是在维护这一集成的健壮性方面仍然不可避免地存在一些挑战:

数据源有规律地启动和休眠(come up and go down)。

数据填充可能因为硬件或网络故障而中断。

远程表可能被操纵或重构。

在随需应变的企业,业务用户不希望在其应用程序访问此数据时遇到缺乏可用性或发生故障的情况。相反,他们更希望在发生此类问题之前得到通知,以便他们能够及早主动采取更正措施。在这一部分中,我们来研究联邦系统中语义不一致的可能性,以便设计和实现一种能够预测这些问题并进行自我调整以防止发生问题的解决方案。

早在 基本原理部分,我们就已经讨论了几个联邦概念,如服务器、别名和用户映射等。服务器表示远程数据集合。联邦系统使用其编目中存储的关于服务器的信息(如远程数据库名),将数据拉回应用程序。但这种情况可能引起应用程序故障:

数据源和应用程序之间的网络问题

数据源不可用,如服务器停机时

在应用程序中,别名可以从远程表、视图或数据集中取回数据。但是,下列情况会引起这种应用程序发生故障:

远程表被删除。

远程列被删除。

远程列的类型被更改。

文本文件的位置被更改。

需要用户映射,以便联邦数据库用户可以使用其 DB2 用户 ID 和密码访问远程数据源。下列情况会引起访问此数据的应用程序发生故障:

远程密码已更改。

远程用户 ID 被取消。

自主功能能够根据业务目标的要求进行自我管理并动态地适应变更。在随需应变的企业中,为了防止应用程序在关键时候发生故障,识别潜在问题并及早采取更正措施是至关重要的。自主解决方案还可以减轻数据库管理员管理复杂数据架构的负担。因此,这会降低总体拥有成本 (TCO)。

使用 Health Monitor 管理联邦数据

DB2 Health Monitor 是一种工具,它可以协助数据库管理员 (DBA) 管理其数据库资源的有效性,识别并解决问题。Health Monitor 主要用于监控潜在的系统健康问题。它帮助数据库管理员诊断数据库性能问题(如缓冲区和堆大小不理想)的原因、监控在应用程序中使用的表格和别名之类的数据库对象的状态。DB2 Health Monitor 以预定义的刷新间隔来评估数据库对象,以确定是否存在不健康的条件。它能够警告数据库管理员在数据库对象或系统的总体健康状况方面存在的潜在健康问题。然后给数据库管理员提供预配置的措施以响应这些警告。健康状况监控器还可以记录管理通知日志中的警告,并通过电子邮件或纸质信函发送通知。因此,它可以通过自动化数据库管理员的健康监控任务来释放宝贵的 DBA 资源。

换句话说,DB2 Health Monitor 有两个主要目标:

监控——提供这样一些机制,即使用易于访问、组织良好的结构来收集、管理和报告关于数据库环境中的问题和受影响区域的详细信息

推荐——提供这样一些机制,即推荐和构建将系统返回到健康状态所需的操作。

Health Monitor 使用健康指示器评估特定数据库方面(如性能)的状态。

健康指示器

健康指示器可以测定某些特定数据库对象类的状态。例如,健康指示器可以用来跟踪数据库堆内存的消耗量。将某策略应用于这一测量来确定健康级别。在不健康状态出现时,健康状况监控器可以根据每个健康指示器的策略为该健康指示器生成警告。在 DB2 Information Integrator V8.2 版中添加了两个新的健康指示器,用于对联邦系统的健康状况进行监控:

服务器健康指示器

别名健康指示器

健康指示器有三个种类:基于状态的、基于集合状态的和基于阈值的。由于两个联邦健康指示器都是基于集合状态的指示器,本文将只讨论基于集合状态的指示器的特征。

基于集合状态的指示器

这些指示器对于 DB2 V8.2 和 Information Integrator V8.2 来说,还是新生事物,当集合中一个或多个对象的健康中出现非正常状态时,它们就会生成注意警报。在我们的例子中,这些指示器表示数据库对象(如别名或服务器)集的聚合状态。因此,健康指示器为每个集合生成一个警报,并单独存储该警报下的对象,而不是为所有受影响的对象生成警报。

评诂联邦系统的健康

健康状况监控器以非可配置的预定义的时间间隔收集与健康有关的信息。图 4 说明评诂联邦系统健康的健康状况监控器架构:

图 4. 评诂联邦系统健康的健康状况监控器架构

系统健康的健康状况监控器架构" src="http://www-128.ibm.com/developerworks/cn/db2/library/techarticles/dm-0505erfan/figure4.gif" width="345" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>

如果一个或多个别名不可用,则别名健康指示器将发出警报。出现下列某种情况时,别名被指示为无效:

无效列——远程列或其数据类型已改变

无效表——远程表、视图或数据集被删除

无效用户映射——本地或远程用户 ID 或密码已改变

查询错误——上面没有提到的任何其他情况

如果一个或多个服务器无效,则服务器健康指示器将转变为警报状态。当服务器不可用时,健康指示器状态如下所示:

不可用——远程数据源被删除或停用,或者数据源与联邦服务器之间存在网络故障

健康状况监控器在健康快照 中记录与健康相关的指示器信息。此数据通常包括:

名称——集合中的对象名称(如不健康的服务器和别名)

详细信息——提供描述关于对象如何不健康的原因的字符串

警报状态——警报、警告或注意状态

时间戳——评诂时间戳

历史——以前生成的警报的历史记录

一旦间隔级别过期,健康状况监控器就会处于休眠状态,并在下一个间隔到来时苏醒。

访问健康信息

健康状况监控器数据可以通过健康快照来使用。每个健康快照可根据其最近刷新间隔来报告每个健康状况监控器的状态。快照用于检测现有的数据库健康问题,包括服务器和别名的不良健康状况。

联邦别名和服务器的健康快照可以通过 Health Center(图形用户界面)、命令行处理器或 C 应用程序中的 API 获取。API 不是本文要讨论的内容,所以这里只描述前两种方法。

通过 Health Center 监控

Health Center 是一个图形化界面,它为 DB2 健康状况监控器提供了管理工具。它提供:

查看所有实例及其数据库的警报状态的中心位置

查看实例和数据库及其子对象(包括联邦对象,如服务器和别名)上的当前警报的图形化界面

访问当前警报的详细信息和推荐的解决措施的图形化界面

通过命令行监控

健康快照还可以通过命令行处理器 (CLP) 获取。快照可以为数据库管理器及其对象检索健康状态信息。如果发出“GET HEALTH SNAPSHOT”命令时联邦服务器和别名处于不健康状态,这些对象上的健康信息(包括不健康对象的名称、问题的详细信息、最后的评诂时间等)就会被检索出来。返回的信息表示发出该命令时服务器和别名的健康状态的快照。

推荐引擎

推荐引擎可帮助解决健康状况监控器生成的健康警报问题。在一个或多个数据库对象上出现健康警报后,推荐引擎就会以适合数据库需求的方式提供一些建议来解决这些警报问题。

对于联邦对象,此顾问推荐了可以解决不健康服务器和别名问题的措施。每个建议都包含一个详细描述,并且包括对此建议的解释,它的确定方式和结果状态。

您可以通过命令行或图形化用户界面 (Health Center) 为每个健康指示器检索建议。一旦客户机通过检查健康快照的输出检测到健康指示器已经进入警报状态,它就可以使用“GET RECOMMENDATIONS”命令从命令行处理器查询推荐引擎,指定处于警报状态的健康指示器。推荐引擎将确定适当的建议,并将此建议返回到客户机。

使用图形用户界面,您可以检索到同样的结果。在此例中,Recommendation Advisor 将从任一在 Health Center 的警报视图中显示的警报健康指示器启动。Recommendation Advisor 是一个向导,指导用户采取措施来解决警报的问题。

使用 WebSphere Information Integrator 工具的端到端解决方案

Health Center 和 DB2 UDB Control Center(Information Integrator 管理工具所在的位置)通过 Health Beacons 集成。Control Center 中的 Health Beacons 提供关于 Health Center 中新警报的可视化指示。信标(beacon)可以在所有 Control Center 窗口和笔记本电脑中实现。未打开 Health Center 时,信标显示当前警报,提示用户打开 Health Center 以获取更加详细的信息。

结束语

在 WebSphere Information Integrator V8.2 发行以前,毫无疑问 Information Integrator 与 IBM 的随需应变的特征是一致的,原因是:

集成:Information Integrator 集成并统一来自异构源的数据,允许客户机应用程序方便而高效地利用完全不同的数据。

开放:Information Integrator 提供了单个基于 SQL 的 API,从而提供一个开放的、语言和平台独立的界面,供所有用户使用。

虚拟化:Information Integrator 提供了一个联邦系统来担当虚拟数据库,它能够透明地访问任何数据,不管自身的位置在哪里,也不管使用的是哪种 SQL 方言。

健康监控的自动化通过使 Information Integrator 具有以下特性,将此集成、开放、虚拟化的解决方案向前推进了一步,并完善了随需应变环境的基本特征集合:

自主:Information Integrator 中的健康状况监控器提供了优化和保护应用程序的自我管理能力,并且因此降低了数据库管理的复杂性和总体拥有成本。

事实上,在联邦环境中维护语义的一致性对于任何一位数据库管理员来说都是挑战性的任务,因此,使用像联邦健康监控之类的自主功能可以给任何数据库管理员带来好处,而不管企业级别如何。

致谢

我在此对 WebSphere Information Integrator 的 Tooling Architect Mary Roth 表示由衷的感谢,是在她的不断指导和鼓励下,我才完成了这篇文章。我同时还要对 Robin-Noble Thomas 表示感谢,这篇文章中所阐述的就是她的技术观点,她经过艰苦卓绝的努力工作后,终于把 Information Integrator's 8.2 发行版中的功能交付使用。

关于作者

Farnaz Erfan 是 Information Integration Tools 的一名专职软件工程师(Staff Software Engineer),负责设计和实现诸如 Nickname Statistics Update 和 Federated Health Monitoring 之类的实用工具。她毕业于普渡大学,取得计算机科学学士学位,于 2000 年 6 月加入 IBM。最初从事 Data Warehouse Center 和 DB2 UDB Control Center 对联邦的支持。后来成了 Information Integration Tools 团队的成员,目前致力于元数据工具的开发。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有