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

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

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

  摘 要: IMS(Information Management System)是一種層次型的數(shù)據(jù)庫(kù)管理系統(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ù)庫(kù)以樹型邏輯拓?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)用程序,,正在被國(guó)內(nèi)外許多大型的銀行、保險(xiǎn),、制造等企業(yè)使用,。據(jù)2008年初的統(tǒng)計(jì)數(shù)據(jù),全世界范圍內(nèi)的IMS客戶已經(jīng)超過400萬MIPS,。
  隨著關(guān)系型數(shù)據(jù)庫(kù)的不斷發(fā)展,,DB2、ORACLE等大型關(guān)系型數(shù)據(jù)庫(kù)系統(tǒng)逐漸被應(yīng)用于各行業(yè),,但是作為層次型數(shù)據(jù)庫(kù)系統(tǒng)代表的IMS,,憑借其高可用性和高效率的特點(diǎn),仍然穩(wěn)固地保持著市場(chǎng)占有率,,從1968年的IMS V1版本發(fā)展到目前的V11版本,。相對(duì)于關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),IMS數(shù)據(jù)庫(kù)的優(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ù)庫(kù)管理系統(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ù)庫(kù)恢復(fù)。
  IMS作為一種數(shù)據(jù)庫(kù)管理系統(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ù)庫(kù)管理軟件即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ù)庫(kù)的方式。目前主要有3種方式:IMS Batch Region,、IMS BMP程序以及通過CICS(Custom Information Control System)中間件發(fā)來的聯(lián)機(jī)交易來訪問數(shù)據(jù)庫(kù),。用戶要存取和操作IMS數(shù)據(jù)庫(kù)中的數(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ù)庫(kù)管理系統(tǒng)的核心功能。
  數(shù)據(jù)存儲(chǔ)層主要是指IMS管理的數(shù)據(jù)庫(kù),。目前IMS主要有DL/I數(shù)據(jù)庫(kù)和Fast Path數(shù)據(jù)庫(kù)兩種類型,。
2.2 系統(tǒng)管理層
??? 系統(tǒng)管理層是IMS數(shù)據(jù)庫(kù)管理系統(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ù)庫(kù)管理系統(tǒng)來說是非常重要的,它記錄了IMS整個(gè)生命周期中所有的系統(tǒng)行為和數(shù)據(jù)庫(kù)行為,,使系統(tǒng)重新啟動(dòng)和恢復(fù)成為可能,。IMS系統(tǒng)日志主要記錄了以下系統(tǒng)信息和數(shù)據(jù)庫(kù)信息:
??? (1)IMS啟動(dòng)和停止的時(shí)間點(diǎn);
??? (2)應(yīng)用程序啟動(dòng)和停止的時(shí)間點(diǎn),;
??? (3)數(shù)據(jù)庫(kù)記錄被更新之前的內(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ù)庫(kù)的故障恢復(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ù)庫(kù)信息,在系統(tǒng)重啟或者數(shù)據(jù)庫(kù)恢復(fù)時(shí)都要使用到這些信息,。
??? (1)IMS LOG的狀態(tài)信息,,LOG的開始時(shí)間和結(jié)束時(shí)間;
??? (2)IMS系統(tǒng)里所有數(shù)據(jù)庫(kù)的信息,;
??? (3)IMS系統(tǒng)里所有數(shù)據(jù)庫(kù)的IC備份(Image Copy),、重組,、恢復(fù)的時(shí)間點(diǎn)等信息;
??? (4)IMS系統(tǒng)里所有數(shù)據(jù)庫(kù)發(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ù)庫(kù)系統(tǒng)進(jìn)行統(tǒng)一管理,,控制用戶對(duì)數(shù)據(jù)的訪問、管理和記錄IMS系統(tǒng)日志,,完成IMS系統(tǒng)的啟動(dòng)和停止功能,,負(fù)責(zé)正常結(jié)束的交易的數(shù)據(jù)庫(kù)處理以及失敗交易的數(shù)據(jù)回滾等系統(tǒng)工作。在IMS異常宕掉時(shí),,DBCTL讀取系統(tǒng)日志來恢復(fù)發(fā)生故障時(shí)的系統(tǒng)環(huán)境,,從而保證系統(tǒng)的一致性和可恢復(fù)性。另外DBCTL還管理著Fast Path數(shù)據(jù)庫(kù),。
2.2.4 DLSAS
  DLSAS組件管理DL/I類型的數(shù)據(jù)庫(kù),。另外DLSAS是IMS數(shù)據(jù)庫(kù)和應(yīng)用程序的接口,負(fù)責(zé)解析和處理用戶程序中的DL/I CALL命令以滿足用戶程序?qū)?shù)據(jù)庫(kù)的訪問,。
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ù)庫(kù)的完整性,;
??? (2)在IMS重新啟動(dòng)時(shí)通知IMS應(yīng)該使用哪個(gè)LOG來重新啟動(dòng);
??? (3)在數(shù)據(jù)共享環(huán)境記錄數(shù)據(jù)庫(kù)的授權(quán),、訪問,、更新等信息以保證數(shù)據(jù)的一致性;
??? (4)提供數(shù)據(jù)庫(kù)恢復(fù)的標(biāo)準(zhǔn)接口,,使數(shù)據(jù)庫(kù)恢復(fù)更易操作,。
2.2.6 IRLM
??? IRLM(Internal Resource Lock Manager)管理數(shù)據(jù)庫(kù)資源的鎖記錄,實(shí)現(xiàn)在IMSPLEX環(huán)境中的數(shù)據(jù)共享,,控制多用戶的并行訪問,,以提高處理能力。IRLM后來也被應(yīng)用到了DB2產(chǎn)品中,。IRLM使用死鎖檢測(cè)機(jī)制,,定期檢查系統(tǒng)中的數(shù)據(jù)庫(kù)鎖記錄,,以診斷是否有死鎖產(chǎn)生,然后采用相應(yīng)措施解除死鎖,。
2.3 數(shù)據(jù)存儲(chǔ)層
??? 數(shù)據(jù)存儲(chǔ)層主要是指IMS管理的數(shù)據(jù)庫(kù),。由于IMS是一種層次型的數(shù)據(jù)庫(kù)管理系統(tǒng),其管理的數(shù)據(jù)都以樹型拓?fù)溥M(jìn)行存儲(chǔ),,所以IMS數(shù)據(jù)庫(kù)采用的存儲(chǔ)方法都是層次型的訪問方法(Hierarchic Access Methods),。目前主要有DL/I數(shù)據(jù)庫(kù)和Fast Path數(shù)據(jù)庫(kù)兩種類型。DL/I數(shù)據(jù)庫(kù)是和IMS系統(tǒng)同時(shí)誕生的,,是早期的IMS數(shù)據(jù)庫(kù)類型,。Fast Path數(shù)據(jù)庫(kù)是IBM于上世紀(jì)70年代末期推出的一種嶄新的數(shù)據(jù)庫(kù)類型,因?yàn)槠溆涗洈?shù)據(jù)庫(kù)日志的方式與傳統(tǒng)的DL/I數(shù)據(jù)庫(kù)類型不同,,能獲得更快的訪問速度和更高的系統(tǒng)性能,,因此而得名為Fast Path“快速存取”的數(shù)據(jù)庫(kù)。
  DL/I數(shù)據(jù)庫(kù)和Fast Path數(shù)據(jù)庫(kù)在主機(jī)端通過一個(gè)或者多個(gè)VSAM(Virtual Storage Access Method)數(shù)據(jù)集來實(shí)現(xiàn),,數(shù)據(jù)間的層次關(guān)系通過指針(pointer)來表示,。任何一種數(shù)據(jù)庫(kù)類型對(duì)于用戶程序來說都是透明的,應(yīng)用程序統(tǒng)一采用DL/I CALL的方式來訪問數(shù)據(jù)庫(kù)里的數(shù)據(jù),。
3 IMS的可恢復(fù)性
  系統(tǒng)恢復(fù)是指把一個(gè)異常結(jié)束的系統(tǒng)恢復(fù)到正常狀態(tài),。系統(tǒng)恢復(fù)包括數(shù)據(jù)庫(kù)、用戶處理數(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ù)庫(kù)可以定期做備份即IC(Image Copy),,從而保證數(shù)據(jù)也有安全的完整的時(shí)間點(diǎn)。這樣IMS系統(tǒng)的checkpoint,、應(yīng)用程序的sync point以及數(shù)據(jù)庫(kù)的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ù)庫(kù)更新自動(dòng)進(jìn)行回滾,,不需要人為干預(yù),。
??? 如果IMS數(shù)據(jù)庫(kù)發(fā)生損壞,則需要人工干預(yù)來恢復(fù),。IMS提供的數(shù)據(jù)庫(kù)恢復(fù)相關(guān)的服務(wù)功能可根據(jù)DBRC記錄的數(shù)據(jù)庫(kù)的訪問信息自動(dòng)生成相應(yīng)的數(shù)據(jù)庫(kù)恢復(fù)作業(yè)并完成數(shù)據(jù)庫(kù)的恢復(fù),,因此IMS數(shù)據(jù)庫(kù)的恢復(fù)工作相對(duì)比較容易。當(dāng)需要恢復(fù)數(shù)據(jù)庫(kù)時(shí),,只需向DBRC發(fā)出指示,,提供需要恢復(fù)的數(shù)據(jù)庫(kù)的名字,DBRC會(huì)根據(jù)RECON中的信息,,選擇適當(dāng)時(shí)間的數(shù)據(jù)庫(kù)IC備份和適當(dāng)時(shí)間的IMS LOG,,根據(jù)LOG中的內(nèi)容重新對(duì)數(shù)據(jù)庫(kù)進(jìn)行更新操作,完成數(shù)據(jù)庫(kù)的恢復(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ù)庫(kù)管理軟件提供了很好的系統(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ù)庫(kù)管理系統(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,;郵箱:[email protected]