IMS数据库管理系统的体系结构及可恢复性分析
2009-08-03
作者:申红芳,王璐璐
摘 要: IMS(Information Management System)是一种层次型的数据库管理系统,其数据以一种树型的逻辑拓扑结构进行存储,非常适合支持高可用性、高性能、高容量、低成本的关键性联机应用程序。对IMS系统进行了抽象地分析,介绍了IMS系统的优势,建立了IMS系统的模型结构,并深入分析了IMS的可恢复性以及系统恢复机制。
关键词: IMS;树型逻辑拓扑结构;模型结构;可恢复性;恢复机制
1 IMS的诞生及其优势
空航天局)的阿波罗登月计划专门开发的,帮助NASA管理宏大的阿波罗计划中的繁琐资料。在1969年,NASA成功发射了阿波罗11号,实现了人类首次登月。之后NASA继续在其航天计划中使用着该产品,与此同时IMS被广泛地应用在金融、保险、制造等多个行业。时至今日,IMS又在互联网应用连接、商务智能等应用中找到了全新的角色。
层次型数据库以树型逻辑拓扑结构进行数据的存储和查询,适合存储银行、保险等总帐户、子帐户和明细记录的多层次结构的数据,因此适合支持高可用性、高性能、高容量、高完整性和低成本的关键性联机应用程序,正在被国内外许多大型的银行、保险、制造等企业使用。据2008年初的统计数据,全世界范围内的IMS客户已经超过400万MIPS。
随着关系型数据库的不断发展,DB2、ORACLE等大型关系型数据库系统逐渐被应用于各行业,但是作为层次型数据库系统代表的IMS,凭借其高可用性和高效率的特点,仍然稳固地保持着市场占有率,从1968年的IMS V1版本发展到目前的V11版本。相对于关系型数据库管理系统,IMS数据库的优点主要有以下几个方面:
(1)树型结构有效地减少数据冗余,节省磁盘空间;
(2)存取数据快速高效,系统响应时间快,吞吐量大;
(3)能够更有效、充分地利用主机资源,节约经济投入成本;
(4)与XML结构一致,能更好地满足电子商务的需求。
2 IMS的系统架构
2.1 系统总架构
数据库管理系统是一种按照某种数据结构组织、操作和管理数据的大型计算机软件。它对数据进行统一地管理和控制,使用户能方便地定义和操作数据。另外有一套系统机制来保证数据的安全性和完整性,保证多用户下的并发控制和发生灾难时的数据库恢复。
IMS作为一种数据库管理系统,为了保证系统的安全性、一致性和可恢复性,必须有一套相应的组件来完成对应的管理任务。IMS是一个庞大复杂的软件系统,它的系统组件TM(Transaction Manager)可以管理联机交易,本文只针对IMS作为一个数据库管理软件即IMS的DBCTL(Database Control)环境进行分析,深入分析了它的系统功能及各个关键的系统部件,建立的IMS的系统模型结构如图1所示。
IMS系统可以划分为用户访问层、系统管理层和数据存储层3个层次。
用户访问层是指用户访问IMS数据库的方式。目前主要有3种方式:IMS Batch Region、IMS BMP程序以及通过CICS(Custom Information Control System)中间件发来的联机交易来访问数据库。用户要存取和操作IMS数据库中的数据必须通过上述3种接口来实现访问和存取。
系统管理层主要对系统和数据进行统一管理和控制,以保证数据的完整性、一致性和安全性,以及实现系统的可恢复性。系统管理层由DBCTL(Database Control)、DLSAS(DL/I Separate Address Space)、DBRC(Database Recovery Control)、IRLM (Internal Resource Lock Manager)4个系统地址空间以及IMS LOG和RECON(Recovery Control Data Set)2个系统数据集构成,它们共同合作完成数据库管理系统的核心功能。
数据存储层主要是指IMS管理的数据库。目前IMS主要有DL/I数据库和Fast Path数据库两种类型。
2.2 系统管理层
系统管理层是IMS数据库管理系统的核心,实现对系统的集中管理和控制,以保证数据和系统的完整性、一致性、安全性和可恢复性。系统管理层由4个重要的地址空间和2个重要的系统数据集构成,下面对这些组件进行详细地分析。
2.2.1 IMS LOG
系统日志对于一个数据库管理系统来说是非常重要的,它记录了IMS整个生命周期中所有的系统行为和数据库行为,使系统重新启动和恢复成为可能。IMS系统日志主要记录了以下系统信息和数据库信息:
(1)IMS启动和停止的时间点;
(2)应用程序启动和停止的时间点;
(3)数据库记录被更新之前的内容(before image)和更新之后的内容(after image);
(4)定期通过系统checkpoint记录的系统状态信息;
(5)记录应用程序的状态;
(6)记录一个交易UOW(Unit Of Work)的开始和结束状态。
正是因为IMS LOG记录了这些系统行为,IMS才能成为一个可恢复性的系统软件。在下列情形,读取IMS LOG来保证系统的完整性和可恢复性:
(1)失败交易的动态回滚(dynamic backout);
(2)IMS系统的热重启(warm restart)和紧急重启(emergency restart);
(3)IMS数据库的故障恢复;
(4)系统性能分析、审计以及故障诊断。
IMS记录LOG采用双写的方法,每个LOG都有主次两个LOG数据集,每次写LOG都同时更新主次LOG。在系统重启或者恢复时优先读取主LOG里的数据,在主LOG发生损坏时系统会自动读取次LOG。另外IMS还提供了恢复LOG的功能,帮助恢复发生损坏的LOG数据集,以保证IMS系统的高可用性和可恢复性。
2.2.2 RECON
RECON是IMS非常重要的系统数据集,它保存着关键的系统信息和数据库信息,在系统重启或者数据库恢复时都要使用到这些信息。
(1)IMS LOG的状态信息,LOG的开始时间和结束时间;
(2)IMS系统里所有数据库的信息;
(3)IMS系统里所有数据库的IC备份(Image Copy)、重组、恢复的时间点等信息;
(4)IMS系统里所有数据库发生的事件,如被访问和被更新等信息。
因为RECON里的信息对系统的运行和恢复非常重要,所以RECON数据集也采取双写的策略,每次对RECON的更新都同时写到RECON1和RECON2中。此外IMS还有一个备用的RECON3,当RECON1和RECON2任意一个发生损坏,系统会自动切换到RECON3,从而保证系统的高可用性和可恢复性。
2.2.3 DBCTL
DBCTL组件是IMS系统的核心组件,协调控制其他组件对数据库系统进行统一管理,控制用户对数据的访问、管理和记录IMS系统日志,完成IMS系统的启动和停止功能,负责正常结束的交易的数据库处理以及失败交易的数据回滚等系统工作。在IMS异常宕掉时,DBCTL读取系统日志来恢复发生故障时的系统环境,从而保证系统的一致性和可恢复性。另外DBCTL还管理着Fast Path数据库。
2.2.4 DLSAS
DLSAS组件管理DL/I类型的数据库。另外DLSAS是IMS数据库和应用程序的接口,负责解析和处理用户程序中的DL/I CALL命令以满足用户程序对数据库的访问。
2.2.5 DBRC
DBRC是IMS必不可少的组成部分。DBRC记录和管理RECON中的系统信息,并且根据RECON中的信息指导某些系统行为该怎么继续进行。DBRC有以下几个主要的功能:
(1)记录和管理IMS LOG相关的信息从而保证IMS系统的完整性和数据库的完整性;
(2)在IMS重新启动时通知IMS应该使用哪个LOG来重新启动;
(3)在数据共享环境记录数据库的授权、访问、更新等信息以保证数据的一致性;
(4)提供数据库恢复的标准接口,使数据库恢复更易操作。
2.2.6 IRLM
IRLM(Internal Resource Lock Manager)管理数据库资源的锁记录,实现在IMSPLEX环境中的数据共享,控制多用户的并行访问,以提高处理能力。IRLM后来也被应用到了DB2产品中。IRLM使用死锁检测机制,定期检查系统中的数据库锁记录,以诊断是否有死锁产生,然后采用相应措施解除死锁。
2.3 数据存储层
数据存储层主要是指IMS管理的数据库。由于IMS是一种层次型的数据库管理系统,其管理的数据都以树型拓扑进行存储,所以IMS数据库采用的存储方法都是层次型的访问方法(Hierarchic Access Methods)。目前主要有DL/I数据库和Fast Path数据库两种类型。DL/I数据库是和IMS系统同时诞生的,是早期的IMS数据库类型。Fast Path数据库是IBM于上世纪70年代末期推出的一种崭新的数据库类型,因为其记录数据库日志的方式与传统的DL/I数据库类型不同,能获得更快的访问速度和更高的系统性能,因此而得名为Fast Path“快速存取”的数据库。
DL/I数据库和Fast Path数据库在主机端通过一个或者多个VSAM(Virtual Storage Access Method)数据集来实现,数据间的层次关系通过指针(pointer)来表示。任何一种数据库类型对于用户程序来说都是透明的,应用程序统一采用DL/I CALL的方式来访问数据库里的数据。
3 IMS的可恢复性
系统恢复是指把一个异常结束的系统恢复到正常状态。系统恢复包括数据库、用户处理数据的请求、正在运行的程序和输出给用户的数据几个部分。
一个可恢复的系统必须保证数据不可丢失。数据的丢失可能有两个方面,一种是物理的丢失,磁盘或者磁带上的数据被物理破坏;一种是逻辑意义的丢失,即数据不正确或者丢失了和其他数据的逻辑关系。一个可恢复的系统必须保证数据的完整性,即数据既不能丢失又不能被不完整地修改。
能成功地完成系统恢复,主要依赖以下两点:
(1)可以回退到一个安全的、数据完整的时间点,必须保证这个时间点的数据是正确完整的。
(2)记录了自这个安全的时间点之后所发生的一切系统行为。
IMS是一个可恢复性的系统软件,有一套完备的系统恢复机制,一些是系统可以自动完成的,有一些则需要人工参与。
在IMS系统里一个系统同步点sync point(synchronization point)就是一个数据完整的时间点。sync point是一个里程碑式的时间点,它是一个可以回退到的安全的时间点,是一个数据一致性的可以重新开始的时间点。
IMS有两类sync point,一种是IMS自身定期记录的sync point叫做系统checkpoint,就像一个系统快照一样记录了IMS系统当前的运行环境。另外,应用程序也可以在完成一个完整的交易单元时建立sync point。IMS系统管理的数据库可以定期做备份即IC(Image Copy),从而保证数据也有安全的完整的时间点。这样IMS系统的checkpoint、应用程序的sync point以及数据库的IC备份保证了在发生故障时可以回退到一个安全的、数据完整的时间点。另外,IMS LOG记录了IMS系统发生的所有行为,保证了在系统故障时从读取IMS LOG重新进行操作来重建故障时刻的系统环境。
在大多数故障时,IMS可以通过重新启动来恢复环境,IMS会自动管理IMS LOG的读写操作,对不完整的交易和数据库更新自动进行回滚,不需要人为干预。
如果IMS数据库发生损坏,则需要人工干预来恢复。IMS提供的数据库恢复相关的服务功能可根据DBRC记录的数据库的访问信息自动生成相应的数据库恢复作业并完成数据库的恢复,因此IMS数据库的恢复工作相对比较容易。当需要恢复数据库时,只需向DBRC发出指示,提供需要恢复的数据库的名字,DBRC会根据RECON中的信息,选择适当时间的数据库IC备份和适当时间的IMS LOG,根据LOG中的内容重新对数据库进行更新操作,完成数据库的恢复工作,恢复机制如图2所示。
因为联机业务运行是一件非常复杂的行为,所以系统恢复也要具体问题具体分析,往往采用多个恢复步骤,需要系统和人工的共同干预。
总之,IMS作为一个数据库管理软件提供了很好的系统容错能力和容灾能力,具有很高的系统可用性和可恢复性。
当前各行业间竞争尤其激烈,对核心业务系统的稳定性和快速高效的要求不断提高。IMS是一个相对廉价的、能够使用较小的MIPS管理大容量数据、能够满足繁重的读写需求的数据库管理系统。而主机MIPS的减少,意味着更低的主机投资成本,从而减小了相应的主机系统软件和第三方软件的投资成本。IMS凭借着其高可用性和高效率的特点,将在各领域不断发展壮大。
参考文献
[1] LONG R, HARRINGTON M, HAIN R, et al. IMS Primer. American: IBM redbook, 2000.
[2] Jouko Jantti, Juan Jesús Iniesta Martínez, Knut Kubein, et al. IMS in the Parallel Sysplex. American: IBM redbook, 2003.
[3] LONG R. Database Recovery Control(DBRC) Examples and Usage Hints. American: IBM redbook, 1999.
[4] NICHOLLS G, HIGASHI K, WILKINSON A. IMS Fast Path Solutions Guide. American: IBM redbook, 1997.
[5] JANTT J, HALLMEN C, KEUNG K, et al. The Complete IMS HALDB Guide All You Need to Know to Manage HALDBs. American: IBM redbook, 2003.