摘 要: IMS(Information Management System)是一種層次型的數據庫管理系統(tǒng),其數據以一種樹型的邏輯拓撲結構進行存儲,非常適合支持高可用性、高性能、高容量、低成本的關鍵性聯(lián)機應用程序。對IMS系統(tǒng)進行了抽象地分析,介紹了IMS系統(tǒng)的優(yōu)勢,建立了IMS系統(tǒng)的模型結構,并深入分析了IMS的可恢復性以及系統(tǒng)恢復機制。
??? 關鍵詞: IMS;樹型邏輯拓撲結構;模型結構;可恢復性;恢復機制
?
1 IMS的誕生及其優(yōu)勢
空航天局)的阿波羅登月計劃專門開發(fā)的,幫助NASA管理宏大的阿波羅計劃中的繁瑣資料。在1969年,NASA成功發(fā)射了阿波羅11號,實現(xiàn)了人類首次登月。之后NASA繼續(xù)在其航天計劃中使用著該產品,與此同時IMS被廣泛地應用在金融、保險、制造等多個行業(yè)。時至今日,IMS又在互聯(lián)網應用連接、商務智能等應用中找到了全新的角色。
層次型數據庫以樹型邏輯拓撲結構進行數據的存儲和查詢,適合存儲銀行、保險等總帳戶、子帳戶和明細記錄的多層次結構的數據,因此適合支持高可用性、高性能、高容量、高完整性和低成本的關鍵性聯(lián)機應用程序,正在被國內外許多大型的銀行、保險、制造等企業(yè)使用。據2008年初的統(tǒng)計數據,全世界范圍內的IMS客戶已經超過400萬MIPS。
隨著關系型數據庫的不斷發(fā)展,DB2、ORACLE等大型關系型數據庫系統(tǒng)逐漸被應用于各行業(yè),但是作為層次型數據庫系統(tǒng)代表的IMS,憑借其高可用性和高效率的特點,仍然穩(wěn)固地保持著市場占有率,從1968年的IMS V1版本發(fā)展到目前的V11版本。相對于關系型數據庫管理系統(tǒng),IMS數據庫的優(yōu)點主要有以下幾個方面:
(1)樹型結構有效地減少數據冗余,節(jié)省磁盤空間;
??? (2)存取數據快速高效,系統(tǒng)響應時間快,吞吐量大;
??? (3)能夠更有效、充分地利用主機資源,節(jié)約經濟投入成本;
??? (4)與XML結構一致,能更好地滿足電子商務的需求。
2 IMS的系統(tǒng)架構
2.1 系統(tǒng)總架構
數據庫管理系統(tǒng)是一種按照某種數據結構組織、操作和管理數據的大型計算機軟件。它對數據進行統(tǒng)一地管理和控制,使用戶能方便地定義和操作數據。另外有一套系統(tǒng)機制來保證數據的安全性和完整性,保證多用戶下的并發(fā)控制和發(fā)生災難時的數據庫恢復。
IMS作為一種數據庫管理系統(tǒng),為了保證系統(tǒng)的安全性、一致性和可恢復性,必須有一套相應的組件來完成對應的管理任務。IMS是一個龐大復雜的軟件系統(tǒng),它的系統(tǒng)組件TM(Transaction Manager)可以管理聯(lián)機交易,本文只針對IMS作為一個數據庫管理軟件即IMS的DBCTL(Database Control)環(huán)境進行分析,深入分析了它的系統(tǒng)功能及各個關鍵的系統(tǒng)部件,建立的IMS的系統(tǒng)模型結構如圖1所示。
?
??? IMS系統(tǒng)可以劃分為用戶訪問層、系統(tǒng)管理層和數據存儲層3個層次。
用戶訪問層是指用戶訪問IMS數據庫的方式。目前主要有3種方式:IMS Batch Region、IMS BMP程序以及通過CICS(Custom Information Control System)中間件發(fā)來的聯(lián)機交易來訪問數據庫。用戶要存取和操作IMS數據庫中的數據必須通過上述3種接口來實現(xiàn)訪問和存取。
系統(tǒng)管理層主要對系統(tǒng)和數據進行統(tǒng)一管理和控制,以保證數據的完整性、一致性和安全性,以及實現(xiàn)系統(tǒng)的可恢復性。系統(tǒng)管理層由DBCTL(Database Control)、DLSAS(DL/I Separate Address Space)、DBRC(Database Recovery Control)、IRLM (Internal Resource Lock Manager)4個系統(tǒng)地址空間以及IMS LOG和RECON(Recovery Control Data Set)2個系統(tǒng)數據集構成,它們共同合作完成數據庫管理系統(tǒng)的核心功能。
數據存儲層主要是指IMS管理的數據庫。目前IMS主要有DL/I數據庫和Fast Path數據庫兩種類型。
2.2 系統(tǒng)管理層
??? 系統(tǒng)管理層是IMS數據庫管理系統(tǒng)的核心,實現(xiàn)對系統(tǒng)的集中管理和控制,以保證數據和系統(tǒng)的完整性、一致性、安全性和可恢復性。系統(tǒng)管理層由4個重要的地址空間和2個重要的系統(tǒng)數據集構成,下面對這些組件進行詳細地分析。
2.2.1 IMS LOG
??? 系統(tǒng)日志對于一個數據庫管理系統(tǒng)來說是非常重要的,它記錄了IMS整個生命周期中所有的系統(tǒng)行為和數據庫行為,使系統(tǒng)重新啟動和恢復成為可能。IMS系統(tǒng)日志主要記錄了以下系統(tǒng)信息和數據庫信息:
??? (1)IMS啟動和停止的時間點;
??? (2)應用程序啟動和停止的時間點;
??? (3)數據庫記錄被更新之前的內容(before image)和更新之后的內容(after image);
??? (4)定期通過系統(tǒng)checkpoint記錄的系統(tǒng)狀態(tài)信息;
??? (5)記錄應用程序的狀態(tài);
??? (6)記錄一個交易UOW(Unit Of Work)的開始和結束狀態(tài)。
??? 正是因為IMS LOG記錄了這些系統(tǒng)行為,IMS才能成為一個可恢復性的系統(tǒng)軟件。在下列情形,讀取IMS LOG來保證系統(tǒng)的完整性和可恢復性:
??? (1)失敗交易的動態(tài)回滾(dynamic backout);
??? (2)IMS系統(tǒng)的熱重啟(warm restart)和緊急重啟(emergency restart);
??? (3)IMS數據庫的故障恢復;
??? (4)系統(tǒng)性能分析、審計以及故障診斷。
IMS記錄LOG采用雙寫的方法,每個LOG都有主次兩個LOG數據集,每次寫LOG都同時更新主次LOG。在系統(tǒng)重啟或者恢復時優(yōu)先讀取主LOG里的數據,在主LOG發(fā)生損壞時系統(tǒng)會自動讀取次LOG。另外IMS還提供了恢復LOG的功能,幫助恢復發(fā)生損壞的LOG數據集,以保證IMS系統(tǒng)的高可用性和可恢復性。
2.2.2 RECON
??? RECON是IMS非常重要的系統(tǒng)數據集,它保存著關鍵的系統(tǒng)信息和數據庫信息,在系統(tǒng)重啟或者數據庫恢復時都要使用到這些信息。
??? (1)IMS LOG的狀態(tài)信息,LOG的開始時間和結束時間;
??? (2)IMS系統(tǒng)里所有數據庫的信息;
??? (3)IMS系統(tǒng)里所有數據庫的IC備份(Image Copy)、重組、恢復的時間點等信息;
??? (4)IMS系統(tǒng)里所有數據庫發(fā)生的事件,如被訪問和被更新等信息。
??? 因為RECON里的信息對系統(tǒng)的運行和恢復非常重要,所以RECON數據集也采取雙寫的策略,每次對RECON的更新都同時寫到RECON1和RECON2中。此外IMS還有一個備用的RECON3,當RECON1和RECON2任意一個發(fā)生損壞,系統(tǒng)會自動切換到RECON3,從而保證系統(tǒng)的高可用性和可恢復性。
2.2.3 DBCTL
DBCTL組件是IMS系統(tǒng)的核心組件,協(xié)調控制其他組件對數據庫系統(tǒng)進行統(tǒng)一管理,控制用戶對數據的訪問、管理和記錄IMS系統(tǒng)日志,完成IMS系統(tǒng)的啟動和停止功能,負責正常結束的交易的數據庫處理以及失敗交易的數據回滾等系統(tǒng)工作。在IMS異常宕掉時,DBCTL讀取系統(tǒng)日志來恢復發(fā)生故障時的系統(tǒng)環(huán)境,從而保證系統(tǒng)的一致性和可恢復性。另外DBCTL還管理著Fast Path數據庫。
2.2.4 DLSAS
DLSAS組件管理DL/I類型的數據庫。另外DLSAS是IMS數據庫和應用程序的接口,負責解析和處理用戶程序中的DL/I CALL命令以滿足用戶程序對數據庫的訪問。
2.2.5 DBRC
??? DBRC是IMS必不可少的組成部分。DBRC記錄和管理RECON中的系統(tǒng)信息,并且根據RECON中的信息指導某些系統(tǒng)行為該怎么繼續(xù)進行。DBRC有以下幾個主要的功能:
??? (1)記錄和管理IMS LOG相關的信息從而保證IMS系統(tǒng)的完整性和數據庫的完整性;
??? (2)在IMS重新啟動時通知IMS應該使用哪個LOG來重新啟動;
??? (3)在數據共享環(huán)境記錄數據庫的授權、訪問、更新等信息以保證數據的一致性;
??? (4)提供數據庫恢復的標準接口,使數據庫恢復更易操作。
2.2.6 IRLM
??? IRLM(Internal Resource Lock Manager)管理數據庫資源的鎖記錄,實現(xiàn)在IMSPLEX環(huán)境中的數據共享,控制多用戶的并行訪問,以提高處理能力。IRLM后來也被應用到了DB2產品中。IRLM使用死鎖檢測機制,定期檢查系統(tǒng)中的數據庫鎖記錄,以診斷是否有死鎖產生,然后采用相應措施解除死鎖。
2.3 數據存儲層
??? 數據存儲層主要是指IMS管理的數據庫。由于IMS是一種層次型的數據庫管理系統(tǒng),其管理的數據都以樹型拓撲進行存儲,所以IMS數據庫采用的存儲方法都是層次型的訪問方法(Hierarchic Access Methods)。目前主要有DL/I數據庫和Fast Path數據庫兩種類型。DL/I數據庫是和IMS系統(tǒng)同時誕生的,是早期的IMS數據庫類型。Fast Path數據庫是IBM于上世紀70年代末期推出的一種嶄新的數據庫類型,因為其記錄數據庫日志的方式與傳統(tǒng)的DL/I數據庫類型不同,能獲得更快的訪問速度和更高的系統(tǒng)性能,因此而得名為Fast Path“快速存取”的數據庫。
DL/I數據庫和Fast Path數據庫在主機端通過一個或者多個VSAM(Virtual Storage Access Method)數據集來實現(xiàn),數據間的層次關系通過指針(pointer)來表示。任何一種數據庫類型對于用戶程序來說都是透明的,應用程序統(tǒng)一采用DL/I CALL的方式來訪問數據庫里的數據。
3 IMS的可恢復性
系統(tǒng)恢復是指把一個異常結束的系統(tǒng)恢復到正常狀態(tài)。系統(tǒng)恢復包括數據庫、用戶處理數據的請求、正在運行的程序和輸出給用戶的數據幾個部分。
一個可恢復的系統(tǒng)必須保證數據不可丟失。數據的丟失可能有兩個方面,一種是物理的丟失,磁盤或者磁帶上的數據被物理破壞;一種是邏輯意義的丟失,即數據不正確或者丟失了和其他數據的邏輯關系。一個可恢復的系統(tǒng)必須保證數據的完整性,即數據既不能丟失又不能被不完整地修改。
能成功地完成系統(tǒng)恢復,主要依賴以下兩點:
??? (1)可以回退到一個安全的、數據完整的時間點,必須保證這個時間點的數據是正確完整的。
??? (2)記錄了自這個安全的時間點之后所發(fā)生的一切系統(tǒng)行為。
??? IMS是一個可恢復性的系統(tǒng)軟件,有一套完備的系統(tǒng)恢復機制,一些是系統(tǒng)可以自動完成的,有一些則需要人工參與。
??? 在IMS系統(tǒng)里一個系統(tǒng)同步點sync point(synchronization point)就是一個數據完整的時間點。sync point是一個里程碑式的時間點,它是一個可以回退到的安全的時間點,是一個數據一致性的可以重新開始的時間點。
IMS有兩類sync point,一種是IMS自身定期記錄的sync point叫做系統(tǒng)checkpoint,就像一個系統(tǒng)快照一樣記錄了IMS系統(tǒng)當前的運行環(huán)境。另外,應用程序也可以在完成一個完整的交易單元時建立sync point。IMS系統(tǒng)管理的數據庫可以定期做備份即IC(Image Copy),從而保證數據也有安全的完整的時間點。這樣IMS系統(tǒng)的checkpoint、應用程序的sync point以及數據庫的IC備份保證了在發(fā)生故障時可以回退到一個安全的、數據完整的時間點。另外,IMS LOG記錄了IMS系統(tǒng)發(fā)生的所有行為,保證了在系統(tǒng)故障時從讀取IMS LOG重新進行操作來重建故障時刻的系統(tǒng)環(huán)境。
在大多數故障時,IMS可以通過重新啟動來恢復環(huán)境,IMS會自動管理IMS LOG的讀寫操作,對不完整的交易和數據庫更新自動進行回滾,不需要人為干預。
??? 如果IMS數據庫發(fā)生損壞,則需要人工干預來恢復。IMS提供的數據庫恢復相關的服務功能可根據DBRC記錄的數據庫的訪問信息自動生成相應的數據庫恢復作業(yè)并完成數據庫的恢復,因此IMS數據庫的恢復工作相對比較容易。當需要恢復數據庫時,只需向DBRC發(fā)出指示,提供需要恢復的數據庫的名字,DBRC會根據RECON中的信息,選擇適當時間的數據庫IC備份和適當時間的IMS LOG,根據LOG中的內容重新對數據庫進行更新操作,完成數據庫的恢復工作,恢復機制如圖2所示。
因為聯(lián)機業(yè)務運行是一件非常復雜的行為,所以系統(tǒng)恢復也要具體問題具體分析,往往采用多個恢復步驟,需要系統(tǒng)和人工的共同干預。
??? 總之,IMS作為一個數據庫管理軟件提供了很好的系統(tǒng)容錯能力和容災能力,具有很高的系統(tǒng)可用性和可恢復性。
??? 當前各行業(yè)間競爭尤其激烈,對核心業(yè)務系統(tǒng)的穩(wěn)定性和快速高效的要求不斷提高。IMS是一個相對廉價的、能夠使用較小的MIPS管理大容量數據、能夠滿足繁重的讀寫需求的數據庫管理系統(tǒng)。而主機MIPS的減少,意味著更低的主機投資成本,從而減小了相應的主機系統(tǒng)軟件和第三方軟件的投資成本。IMS憑借著其高可用性和高效率的特點,將在各領域不斷發(fā)展壯大。
參考文獻
[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.