《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > IMS數(shù)據(jù)庫管理系統(tǒng)的體系結(jié)構(gòu)及可恢復(fù)性分析

IMS數(shù)據(jù)庫管理系統(tǒng)的體系結(jié)構(gòu)及可恢復(fù)性分析

2009-08-03
作者:申紅芳,王璐璐

  摘 要: IMS(Information Management System)是一種層次型的數(shù)據(jù)庫管理系統(tǒng),其數(shù)據(jù)以一種樹型的邏輯拓?fù)浣Y(jié)構(gòu)進(jìn)行存儲(chǔ),非常適合支持高可用性、高性能、高容量、低成本的關(guān)鍵性聯(lián)機(jī)應(yīng)用程序。對(duì)IMS系統(tǒng)進(jìn)行了抽象地分析,介紹了IMS系統(tǒng)的優(yōu)勢(shì),建立了IMS系統(tǒng)的模型結(jié)構(gòu),并深入分析了IMS的可恢復(fù)性以及系統(tǒng)恢復(fù)機(jī)制。
??? 關(guān)鍵詞: IMS;樹型邏輯拓?fù)浣Y(jié)構(gòu);模型結(jié)構(gòu);可恢復(fù)性;恢復(fù)機(jī)制

?

1 IMS的誕生及其優(yōu)勢(shì)
  空航天局)的阿波羅登月計(jì)劃專門開發(fā)的,幫助NASA管理宏大的阿波羅計(jì)劃中的繁瑣資料。在1969年,NASA成功發(fā)射了阿波羅11號(hào),實(shí)現(xiàn)了人類首次登月。之后NASA繼續(xù)在其航天計(jì)劃中使用著該產(chǎn)品,與此同時(shí)IMS被廣泛地應(yīng)用在金融、保險(xiǎn)、制造等多個(gè)行業(yè)。時(shí)至今日,IMS又在互聯(lián)網(wǎng)應(yīng)用連接、商務(wù)智能等應(yīng)用中找到了全新的角色。
  層次型數(shù)據(jù)庫以樹型邏輯拓?fù)浣Y(jié)構(gòu)進(jìn)行數(shù)據(jù)的存儲(chǔ)和查詢,適合存儲(chǔ)銀行、保險(xiǎn)等總帳戶、子帳戶和明細(xì)記錄的多層次結(jié)構(gòu)的數(shù)據(jù),因此適合支持高可用性、高性能、高容量、高完整性和低成本的關(guān)鍵性聯(lián)機(jī)應(yīng)用程序,正在被國內(nèi)外許多大型的銀行、保險(xiǎn)、制造等企業(yè)使用。據(jù)2008年初的統(tǒng)計(jì)數(shù)據(jù),全世界范圍內(nèi)的IMS客戶已經(jīng)超過400萬MIPS。
  隨著關(guān)系型數(shù)據(jù)庫的不斷發(fā)展,DB2、ORACLE等大型關(guān)系型數(shù)據(jù)庫系統(tǒng)逐漸被應(yīng)用于各行業(yè),但是作為層次型數(shù)據(jù)庫系統(tǒng)代表的IMS,憑借其高可用性和高效率的特點(diǎn),仍然穩(wěn)固地保持著市場(chǎng)占有率,從1968年的IMS V1版本發(fā)展到目前的V11版本。相對(duì)于關(guān)系型數(shù)據(jù)庫管理系統(tǒng),IMS數(shù)據(jù)庫的優(yōu)點(diǎn)主要有以下幾個(gè)方面:
  (1)樹型結(jié)構(gòu)有效地減少數(shù)據(jù)冗余,節(jié)省磁盤空間;
??? (2)存取數(shù)據(jù)快速高效,系統(tǒng)響應(yīng)時(shí)間快,吞吐量大;
??? (3)能夠更有效、充分地利用主機(jī)資源,節(jié)約經(jīng)濟(jì)投入成本;
??? (4)與XML結(jié)構(gòu)一致,能更好地滿足電子商務(wù)的需求。
2 IMS的系統(tǒng)架構(gòu)
2.1 系統(tǒng)總架構(gòu)
  數(shù)據(jù)庫管理系統(tǒng)是一種按照某種數(shù)據(jù)結(jié)構(gòu)組織、操作和管理數(shù)據(jù)的大型計(jì)算機(jī)軟件。它對(duì)數(shù)據(jù)進(jìn)行統(tǒng)一地管理和控制,使用戶能方便地定義和操作數(shù)據(jù)。另外有一套系統(tǒng)機(jī)制來保證數(shù)據(jù)的安全性和完整性,保證多用戶下的并發(fā)控制和發(fā)生災(zāi)難時(shí)的數(shù)據(jù)庫恢復(fù)。
  IMS作為一種數(shù)據(jù)庫管理系統(tǒng),為了保證系統(tǒng)的安全性、一致性和可恢復(fù)性,必須有一套相應(yīng)的組件來完成對(duì)應(yīng)的管理任務(wù)。IMS是一個(gè)龐大復(fù)雜的軟件系統(tǒng),它的系統(tǒng)組件TM(Transaction Manager)可以管理聯(lián)機(jī)交易,本文只針對(duì)IMS作為一個(gè)數(shù)據(jù)庫管理軟件即IMS的DBCTL(Database Control)環(huán)境進(jìn)行分析,深入分析了它的系統(tǒng)功能及各個(gè)關(guān)鍵的系統(tǒng)部件,建立的IMS的系統(tǒng)模型結(jié)構(gòu)如圖1所示。

?


??? IMS系統(tǒng)可以劃分為用戶訪問層、系統(tǒng)管理層和數(shù)據(jù)存儲(chǔ)層3個(gè)層次。
  用戶訪問層是指用戶訪問IMS數(shù)據(jù)庫的方式。目前主要有3種方式:IMS Batch Region、IMS BMP程序以及通過CICS(Custom Information Control System)中間件發(fā)來的聯(lián)機(jī)交易來訪問數(shù)據(jù)庫。用戶要存取和操作IMS數(shù)據(jù)庫中的數(shù)據(jù)必須通過上述3種接口來實(shí)現(xiàn)訪問和存取。
  系統(tǒng)管理層主要對(duì)系統(tǒng)和數(shù)據(jù)進(jìn)行統(tǒng)一管理和控制,以保證數(shù)據(jù)的完整性、一致性和安全性,以及實(shí)現(xiàn)系統(tǒng)的可恢復(fù)性。系統(tǒng)管理層由DBCTL(Database Control)、DLSAS(DL/I Separate Address Space)、DBRC(Database Recovery Control)、IRLM (Internal Resource Lock Manager)4個(gè)系統(tǒng)地址空間以及IMS LOG和RECON(Recovery Control Data Set)2個(gè)系統(tǒng)數(shù)據(jù)集構(gòu)成,它們共同合作完成數(shù)據(jù)庫管理系統(tǒng)的核心功能。
  數(shù)據(jù)存儲(chǔ)層主要是指IMS管理的數(shù)據(jù)庫。目前IMS主要有DL/I數(shù)據(jù)庫和Fast Path數(shù)據(jù)庫兩種類型。
2.2 系統(tǒng)管理層
??? 系統(tǒng)管理層是IMS數(shù)據(jù)庫管理系統(tǒng)的核心,實(shí)現(xiàn)對(duì)系統(tǒng)的集中管理和控制,以保證數(shù)據(jù)和系統(tǒng)的完整性、一致性、安全性和可恢復(fù)性。系統(tǒng)管理層由4個(gè)重要的地址空間和2個(gè)重要的系統(tǒng)數(shù)據(jù)集構(gòu)成,下面對(duì)這些組件進(jìn)行詳細(xì)地分析。
2.2.1 IMS LOG
??? 系統(tǒng)日志對(duì)于一個(gè)數(shù)據(jù)庫管理系統(tǒng)來說是非常重要的,它記錄了IMS整個(gè)生命周期中所有的系統(tǒng)行為和數(shù)據(jù)庫行為,使系統(tǒng)重新啟動(dòng)和恢復(fù)成為可能。IMS系統(tǒng)日志主要記錄了以下系統(tǒng)信息和數(shù)據(jù)庫信息:
??? (1)IMS啟動(dòng)和停止的時(shí)間點(diǎn);
??? (2)應(yīng)用程序啟動(dòng)和停止的時(shí)間點(diǎn);
??? (3)數(shù)據(jù)庫記錄被更新之前的內(nèi)容(before image)和更新之后的內(nèi)容(after image);
??? (4)定期通過系統(tǒng)checkpoint記錄的系統(tǒng)狀態(tài)信息;
??? (5)記錄應(yīng)用程序的狀態(tài);
??? (6)記錄一個(gè)交易UOW(Unit Of Work)的開始和結(jié)束狀態(tài)。
??? 正是因?yàn)镮MS LOG記錄了這些系統(tǒng)行為,IMS才能成為一個(gè)可恢復(fù)性的系統(tǒng)軟件。在下列情形,讀取IMS LOG來保證系統(tǒng)的完整性和可恢復(fù)性:
??? (1)失敗交易的動(dòng)態(tài)回滾(dynamic backout);
??? (2)IMS系統(tǒng)的熱重啟(warm restart)和緊急重啟(emergency restart);
??? (3)IMS數(shù)據(jù)庫的故障恢復(fù);
??? (4)系統(tǒng)性能分析、審計(jì)以及故障診斷。
  IMS記錄LOG采用雙寫的方法,每個(gè)LOG都有主次兩個(gè)LOG數(shù)據(jù)集,每次寫LOG都同時(shí)更新主次LOG。在系統(tǒng)重啟或者恢復(fù)時(shí)優(yōu)先讀取主LOG里的數(shù)據(jù),在主LOG發(fā)生損壞時(shí)系統(tǒng)會(huì)自動(dòng)讀取次LOG。另外IMS還提供了恢復(fù)LOG的功能,幫助恢復(fù)發(fā)生損壞的LOG數(shù)據(jù)集,以保證IMS系統(tǒng)的高可用性和可恢復(fù)性。
2.2.2 RECON
??? RECON是IMS非常重要的系統(tǒng)數(shù)據(jù)集,它保存著關(guān)鍵的系統(tǒng)信息和數(shù)據(jù)庫信息,在系統(tǒng)重啟或者數(shù)據(jù)庫恢復(fù)時(shí)都要使用到這些信息。
??? (1)IMS LOG的狀態(tài)信息,LOG的開始時(shí)間和結(jié)束時(shí)間;
??? (2)IMS系統(tǒng)里所有數(shù)據(jù)庫的信息;
??? (3)IMS系統(tǒng)里所有數(shù)據(jù)庫的IC備份(Image Copy)、重組、恢復(fù)的時(shí)間點(diǎn)等信息;
??? (4)IMS系統(tǒng)里所有數(shù)據(jù)庫發(fā)生的事件,如被訪問和被更新等信息。
??? 因?yàn)镽ECON里的信息對(duì)系統(tǒng)的運(yùn)行和恢復(fù)非常重要,所以RECON數(shù)據(jù)集也采取雙寫的策略,每次對(duì)RECON的更新都同時(shí)寫到RECON1和RECON2中。此外IMS還有一個(gè)備用的RECON3,當(dāng)RECON1和RECON2任意一個(gè)發(fā)生損壞,系統(tǒng)會(huì)自動(dòng)切換到RECON3,從而保證系統(tǒng)的高可用性和可恢復(fù)性。
2.2.3 DBCTL
  DBCTL組件是IMS系統(tǒng)的核心組件,協(xié)調(diào)控制其他組件對(duì)數(shù)據(jù)庫系統(tǒng)進(jìn)行統(tǒng)一管理,控制用戶對(duì)數(shù)據(jù)的訪問、管理和記錄IMS系統(tǒng)日志,完成IMS系統(tǒng)的啟動(dòng)和停止功能,負(fù)責(zé)正常結(jié)束的交易的數(shù)據(jù)庫處理以及失敗交易的數(shù)據(jù)回滾等系統(tǒng)工作。在IMS異常宕掉時(shí),DBCTL讀取系統(tǒng)日志來恢復(fù)發(fā)生故障時(shí)的系統(tǒng)環(huán)境,從而保證系統(tǒng)的一致性和可恢復(fù)性。另外DBCTL還管理著Fast Path數(shù)據(jù)庫。
2.2.4 DLSAS
  DLSAS組件管理DL/I類型的數(shù)據(jù)庫。另外DLSAS是IMS數(shù)據(jù)庫和應(yīng)用程序的接口,負(fù)責(zé)解析和處理用戶程序中的DL/I CALL命令以滿足用戶程序?qū)?shù)據(jù)庫的訪問。
2.2.5 DBRC
??? DBRC是IMS必不可少的組成部分。DBRC記錄和管理RECON中的系統(tǒng)信息,并且根據(jù)RECON中的信息指導(dǎo)某些系統(tǒng)行為該怎么繼續(xù)進(jìn)行。DBRC有以下幾個(gè)主要的功能:
??? (1)記錄和管理IMS LOG相關(guān)的信息從而保證IMS系統(tǒng)的完整性和數(shù)據(jù)庫的完整性;
??? (2)在IMS重新啟動(dòng)時(shí)通知IMS應(yīng)該使用哪個(gè)LOG來重新啟動(dòng);
??? (3)在數(shù)據(jù)共享環(huán)境記錄數(shù)據(jù)庫的授權(quán)、訪問、更新等信息以保證數(shù)據(jù)的一致性;
??? (4)提供數(shù)據(jù)庫恢復(fù)的標(biāo)準(zhǔn)接口,使數(shù)據(jù)庫恢復(fù)更易操作。
2.2.6 IRLM
??? IRLM(Internal Resource Lock Manager)管理數(shù)據(jù)庫資源的鎖記錄,實(shí)現(xiàn)在IMSPLEX環(huán)境中的數(shù)據(jù)共享,控制多用戶的并行訪問,以提高處理能力。IRLM后來也被應(yīng)用到了DB2產(chǎn)品中。IRLM使用死鎖檢測(cè)機(jī)制,定期檢查系統(tǒng)中的數(shù)據(jù)庫鎖記錄,以診斷是否有死鎖產(chǎn)生,然后采用相應(yīng)措施解除死鎖。
2.3 數(shù)據(jù)存儲(chǔ)層
??? 數(shù)據(jù)存儲(chǔ)層主要是指IMS管理的數(shù)據(jù)庫。由于IMS是一種層次型的數(shù)據(jù)庫管理系統(tǒng),其管理的數(shù)據(jù)都以樹型拓?fù)溥M(jìn)行存儲(chǔ),所以IMS數(shù)據(jù)庫采用的存儲(chǔ)方法都是層次型的訪問方法(Hierarchic Access Methods)。目前主要有DL/I數(shù)據(jù)庫和Fast Path數(shù)據(jù)庫兩種類型。DL/I數(shù)據(jù)庫是和IMS系統(tǒng)同時(shí)誕生的,是早期的IMS數(shù)據(jù)庫類型。Fast Path數(shù)據(jù)庫是IBM于上世紀(jì)70年代末期推出的一種嶄新的數(shù)據(jù)庫類型,因?yàn)槠溆涗洈?shù)據(jù)庫日志的方式與傳統(tǒng)的DL/I數(shù)據(jù)庫類型不同,能獲得更快的訪問速度和更高的系統(tǒng)性能,因此而得名為Fast Path“快速存取”的數(shù)據(jù)庫。
  DL/I數(shù)據(jù)庫和Fast Path數(shù)據(jù)庫在主機(jī)端通過一個(gè)或者多個(gè)VSAM(Virtual Storage Access Method)數(shù)據(jù)集來實(shí)現(xiàn),數(shù)據(jù)間的層次關(guān)系通過指針(pointer)來表示。任何一種數(shù)據(jù)庫類型對(duì)于用戶程序來說都是透明的,應(yīng)用程序統(tǒng)一采用DL/I CALL的方式來訪問數(shù)據(jù)庫里的數(shù)據(jù)。
3 IMS的可恢復(fù)性
  系統(tǒng)恢復(fù)是指把一個(gè)異常結(jié)束的系統(tǒng)恢復(fù)到正常狀態(tài)。系統(tǒng)恢復(fù)包括數(shù)據(jù)庫、用戶處理數(shù)據(jù)的請(qǐng)求、正在運(yùn)行的程序和輸出給用戶的數(shù)據(jù)幾個(gè)部分。
  一個(gè)可恢復(fù)的系統(tǒng)必須保證數(shù)據(jù)不可丟失。數(shù)據(jù)的丟失可能有兩個(gè)方面,一種是物理的丟失,磁盤或者磁帶上的數(shù)據(jù)被物理破壞;一種是邏輯意義的丟失,即數(shù)據(jù)不正確或者丟失了和其他數(shù)據(jù)的邏輯關(guān)系。一個(gè)可恢復(fù)的系統(tǒng)必須保證數(shù)據(jù)的完整性,即數(shù)據(jù)既不能丟失又不能被不完整地修改。
  能成功地完成系統(tǒng)恢復(fù),主要依賴以下兩點(diǎn):
??? (1)可以回退到一個(gè)安全的、數(shù)據(jù)完整的時(shí)間點(diǎn),必須保證這個(gè)時(shí)間點(diǎn)的數(shù)據(jù)是正確完整的。
??? (2)記錄了自這個(gè)安全的時(shí)間點(diǎn)之后所發(fā)生的一切系統(tǒng)行為。
??? IMS是一個(gè)可恢復(fù)性的系統(tǒng)軟件,有一套完備的系統(tǒng)恢復(fù)機(jī)制,一些是系統(tǒng)可以自動(dòng)完成的,有一些則需要人工參與。
??? 在IMS系統(tǒng)里一個(gè)系統(tǒng)同步點(diǎn)sync point(synchronization point)就是一個(gè)數(shù)據(jù)完整的時(shí)間點(diǎn)。sync point是一個(gè)里程碑式的時(shí)間點(diǎn),它是一個(gè)可以回退到的安全的時(shí)間點(diǎn),是一個(gè)數(shù)據(jù)一致性的可以重新開始的時(shí)間點(diǎn)。
  IMS有兩類sync point,一種是IMS自身定期記錄的sync point叫做系統(tǒng)checkpoint,就像一個(gè)系統(tǒng)快照一樣記錄了IMS系統(tǒng)當(dāng)前的運(yùn)行環(huán)境。另外,應(yīng)用程序也可以在完成一個(gè)完整的交易單元時(shí)建立sync point。IMS系統(tǒng)管理的數(shù)據(jù)庫可以定期做備份即IC(Image Copy),從而保證數(shù)據(jù)也有安全的完整的時(shí)間點(diǎn)。這樣IMS系統(tǒng)的checkpoint、應(yīng)用程序的sync point以及數(shù)據(jù)庫的IC備份保證了在發(fā)生故障時(shí)可以回退到一個(gè)安全的、數(shù)據(jù)完整的時(shí)間點(diǎn)。另外,IMS LOG記錄了IMS系統(tǒng)發(fā)生的所有行為,保證了在系統(tǒng)故障時(shí)從讀取IMS LOG重新進(jìn)行操作來重建故障時(shí)刻的系統(tǒng)環(huán)境。
  在大多數(shù)故障時(shí),IMS可以通過重新啟動(dòng)來恢復(fù)環(huán)境,IMS會(huì)自動(dòng)管理IMS LOG的讀寫操作,對(duì)不完整的交易和數(shù)據(jù)庫更新自動(dòng)進(jìn)行回滾,不需要人為干預(yù)。
??? 如果IMS數(shù)據(jù)庫發(fā)生損壞,則需要人工干預(yù)來恢復(fù)。IMS提供的數(shù)據(jù)庫恢復(fù)相關(guān)的服務(wù)功能可根據(jù)DBRC記錄的數(shù)據(jù)庫的訪問信息自動(dòng)生成相應(yīng)的數(shù)據(jù)庫恢復(fù)作業(yè)并完成數(shù)據(jù)庫的恢復(fù),因此IMS數(shù)據(jù)庫的恢復(fù)工作相對(duì)比較容易。當(dāng)需要恢復(fù)數(shù)據(jù)庫時(shí),只需向DBRC發(fā)出指示,提供需要恢復(fù)的數(shù)據(jù)庫的名字,DBRC會(huì)根據(jù)RECON中的信息,選擇適當(dāng)時(shí)間的數(shù)據(jù)庫IC備份和適當(dāng)時(shí)間的IMS LOG,根據(jù)LOG中的內(nèi)容重新對(duì)數(shù)據(jù)庫進(jìn)行更新操作,完成數(shù)據(jù)庫的恢復(fù)工作,恢復(fù)機(jī)制如圖2所示。


  因?yàn)槁?lián)機(jī)業(yè)務(wù)運(yùn)行是一件非常復(fù)雜的行為,所以系統(tǒng)恢復(fù)也要具體問題具體分析,往往采用多個(gè)恢復(fù)步驟,需要系統(tǒng)和人工的共同干預(yù)。
??? 總之,IMS作為一個(gè)數(shù)據(jù)庫管理軟件提供了很好的系統(tǒng)容錯(cuò)能力和容災(zāi)能力,具有很高的系統(tǒng)可用性和可恢復(fù)性。
??? 當(dāng)前各行業(yè)間競(jìng)爭(zhēng)尤其激烈,對(duì)核心業(yè)務(wù)系統(tǒng)的穩(wěn)定性和快速高效的要求不斷提高。IMS是一個(gè)相對(duì)廉價(jià)的、能夠使用較小的MIPS管理大容量數(shù)據(jù)、能夠滿足繁重的讀寫需求的數(shù)據(jù)庫管理系統(tǒng)。而主機(jī)MIPS的減少,意味著更低的主機(jī)投資成本,從而減小了相應(yīng)的主機(jī)系統(tǒng)軟件和第三方軟件的投資成本。IMS憑借著其高可用性和高效率的特點(diǎn),將在各領(lǐng)域不斷發(fā)展壯大。


參考文獻(xiàn)
[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.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。