數(shù)據(jù)庫日志的存檔管理的制作方法
【專利摘要】本公開涉及數(shù)據(jù)庫日志的存檔管理,并且提供了一種通過監(jiān)視數(shù)據(jù)庫計算系統(tǒng)的活動數(shù)據(jù)庫日志來阻止數(shù)據(jù)庫計算系統(tǒng)中的事務(wù)暫停的方法。該方法包括由于在數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況,而切換數(shù)據(jù)庫計算系統(tǒng)的存檔單元。該方法還包括維護(hù)數(shù)據(jù)庫日志歷史表,其中數(shù)據(jù)庫日志歷史表捕獲由數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)線程生成的活動數(shù)據(jù)庫日志的閾值計數(shù)。該方法還包括:基于由于在數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況而導(dǎo)致的數(shù)據(jù)庫計算系統(tǒng)的切換后的存檔單元以及所維護(hù)的數(shù)據(jù)庫日志歷史表中的活動數(shù)據(jù)庫日志的閾值計數(shù),限定用于存檔活動數(shù)據(jù)庫日志的臨時位置。
【專利說明】數(shù)據(jù)庫日志的存檔管理
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明一般涉及數(shù)據(jù)庫計算系統(tǒng)的數(shù)據(jù)庫操作活動,并且更特別地涉及數(shù)據(jù)庫計 算系統(tǒng)的數(shù)據(jù)庫日志的存檔管理。
【背景技術(shù)】
[0002] 事務(wù)(有時被稱為"工作單元"或"U0W")是一組必須被一起完成的相關(guān)操作。所 述相關(guān)操作的所有可恢復(fù)動作必須成功完成或完全不執(zhí)行。事務(wù)的這種特性被稱為"原子 性"。在最簡單的情況中,事務(wù)將訪問與單個計算機(jī)處理器相連的資源。這樣的事務(wù)被稱為 "本地事務(wù)"。然而,更通常地,事務(wù)將訪問位于若干個不同計算機(jī)處理器或邏輯分區(qū)中的資 源,各自包含其自己的事務(wù)日志。這樣的事務(wù)被稱為"分布式事務(wù)"。當(dāng)分布式事務(wù)結(jié)束時, 事務(wù)的原子性特性要求所涉及的所有處理器提交事務(wù)或所有處理器中止事務(wù)。為了實現(xiàn) 這一點,其中一個處理器擔(dān)當(dāng)協(xié)調(diào)者的角色以便使用所涉及的所有各方共同理解并遵循的 "協(xié)調(diào)協(xié)議"來保證在事務(wù)的所有各方處有相同的結(jié)果。
[0003] 二相提交協(xié)議已被廣泛用作分布式事務(wù)管理環(huán)境中的優(yōu)選協(xié)議。該協(xié)議保證工作 或者被所有參與者成功完成,或者完全不被執(zhí)行,其中任何數(shù)據(jù)修改或者被一起提交(完 成),或者在故障時一起被回滾(回退)。事務(wù)的另一個特性是其持久性。這意味著一旦已 經(jīng)向用戶通知成功,即使存在系統(tǒng)故障,事務(wù)的結(jié)果也必須持續(xù),而不能被取消。使用恢復(fù) 管理器來保證即使當(dāng)系統(tǒng)崩潰時,系統(tǒng)的對象也是持久的、并且事務(wù)的效果也是原子性的。
[0004] 恢復(fù)管理器保存為恢復(fù)所需的信息。在任務(wù)更新了可恢復(fù)臨時存儲隊列之后,該 恢復(fù)可以用于事務(wù)的動態(tài)回退,該動態(tài)回退也許是由于故障而引起的。此外,恢復(fù)數(shù)據(jù)可以 用來將事務(wù)處理系統(tǒng)恢復(fù)到提交狀態(tài),例如在系統(tǒng)故障后系統(tǒng)被重啟時。典型地,恢復(fù)文件 包括至少一個日志,該至少一個日志包含由事務(wù)處理系統(tǒng)執(zhí)行的事務(wù)的歷史。在系統(tǒng)故障 的情況下,恢復(fù)文件可以被回放以將系統(tǒng)返回到緊鄰著故障前的狀態(tài),以及返回到使用事 務(wù)日志來檢查并取消在故障之前沒有被正確完成的事務(wù)的狀態(tài)。
[0005] 此外,在事務(wù)故障的情況下,事務(wù)日志可以用于通過從故障前的最后變更開始往 回工作,來反轉(zhuǎn)已經(jīng)由事務(wù)執(zhí)行的更新,由此得名"動態(tài)事務(wù)回退"?;赝税l(fā)生在任意受影響 的資源上的鎖定被釋放之前,這保護(hù)其他任務(wù)免于經(jīng)歷使用損壞的數(shù)據(jù)的可能性,因為修 改后的數(shù)據(jù)不會被釋放以供其使用("提交"),直到當(dāng)前任務(wù)已經(jīng)用完該修改后的數(shù)據(jù)為 止。如果日志需要在之后在系統(tǒng)重啟時被回放,則首先在日志中加入條目以指示事務(wù)正在 被回退。執(zhí)行這樣的事務(wù)日志記錄的系統(tǒng)的示例包括事務(wù)系統(tǒng)(諸如IBM? CICS?事 務(wù)服務(wù)器或IBM WebSphere?.應(yīng)用服務(wù)器),以及數(shù)據(jù)庫系統(tǒng)(諸如IBM DB2?或ibm MS?)。(IBM、CICS、WebSphere、DB2和MS是國際商業(yè)機(jī)器公司在美國或其他國家或在這兩 者中的商標(biāo)或注冊商標(biāo))。日志典型地按活動發(fā)生的順序記錄信息。如果沒有一定的管理, 這將會消耗不斷增加的資源量。因此,日志必須由執(zhí)行被稱為"關(guān)鍵點指示(keypointing)" 的處理的恢復(fù)管理器定期地重組以便減小其尺寸。
[0006] 關(guān)鍵點指示包括將系統(tǒng)的對象的當(dāng)前提交值與針對還沒有被完全解決的事務(wù)的 事務(wù)狀態(tài)條目和意向列表一起寫入到恢復(fù)文件的新部分中。針對事務(wù)的意向列表包含由該 事務(wù)改變的所有對象/資源的引用和值的列表、以及與二相提交協(xié)議有關(guān)的信息。一旦取 得了關(guān)鍵點(即,通過關(guān)鍵點指示過程而存儲的信息),被不可撤銷地提交(或回退)的事 務(wù)的恢復(fù)信息通常可以從日志中被丟棄,有時被稱為日志"修整"。這會減小日志的文件尺 寸、以及在恢復(fù)期間將要處理的事務(wù)的數(shù)量。
[0007] 舊的日志記錄通過修整而被刪除的速率在理想情況下應(yīng)當(dāng)與在新的工作進(jìn)入事 務(wù)系統(tǒng)并對資源作出其自己的可恢復(fù)變更時新的日志數(shù)據(jù)被生成的速率匹配。在調(diào)整好的 在線事務(wù)處理(OLTP)環(huán)境中,日志上持有的日志數(shù)據(jù)的量應(yīng)當(dāng)隨著時間被合理地保持恒 定,其中日志上持有的日志記錄的數(shù)量在新工作和內(nèi)務(wù)工作都被執(zhí)行時會有潛在的周期性 的上升和下降。這種用于日志數(shù)據(jù)刪除的機(jī)制通常解決日志的尺寸隨著時間而持續(xù)增長的 問題。然而,長時間運(yùn)行的UOW會阻止這種機(jī)制工作,直到這樣的UOW已經(jīng)完成且不再需要 其日志數(shù)據(jù)為止,其數(shù)據(jù)不能從日志中被刪除、并且自從該UOW的第一個日志條目以來所 記錄的所有數(shù)據(jù)必須保持在日志上。因此,系統(tǒng)將不能在關(guān)鍵點指示之后修整日志,并且日 志的尺寸將會不斷變大。最終,當(dāng)超過日志記錄子系統(tǒng)、操作系統(tǒng)或可用硬件的臨界閾值 時,這會導(dǎo)致向日志寫入的請求由于"空間不足"類型的狀況而失敗。
【發(fā)明內(nèi)容】
[0008] 在本發(fā)明的一個實施例中,提供了一種通過監(jiān)視數(shù)據(jù)庫計算系統(tǒng)的活動數(shù)據(jù)庫日 志來阻止由于數(shù)據(jù)庫計算系統(tǒng)中的日志填滿狀況而暫停事務(wù)的方法。該方法包括:由于在 活動數(shù)據(jù)庫日志的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況,由一個或多個處理器切換數(shù)據(jù) 庫計算系統(tǒng)的存檔單元。該方法還包括:由一個或多個處理器維護(hù)數(shù)據(jù)庫日志歷史表,其中 數(shù)據(jù)庫日志歷史表捕獲由數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)線程生成的活動數(shù)據(jù)庫日志的閾值計數(shù)。 該方法還包括:基于由于在數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)操作期間發(fā)生的數(shù)據(jù)庫日志填滿狀況而 導(dǎo)致的數(shù)據(jù)庫計算系統(tǒng)的切換后的存檔單元以及所維護(hù)的數(shù)據(jù)庫日志歷史表中的活動數(shù) 據(jù)庫日志的閾值計數(shù),由一個或多個處理器限定用于存檔活動數(shù)據(jù)庫日志的臨時位置。
[0009] 在本發(fā)明的另一個實施例中,提供了一種通過監(jiān)視數(shù)據(jù)庫計算系統(tǒng)的活動數(shù)據(jù)庫 日志來阻止數(shù)據(jù)庫計算系統(tǒng)中的事務(wù)暫停的計算機(jī)系統(tǒng)。該計算機(jī)系統(tǒng)包括一個或多個 處理器、一個或多個計算機(jī)可讀存儲器、一個或多個計算機(jī)可讀有形存儲設(shè)備、以及程序指 令,所述程序指令被存儲在一個或多個存儲設(shè)備中的至少一個上,以便經(jīng)由一個或多個存 儲器中的至少一個被一個或多個處理器中的至少一個執(zhí)行。該計算機(jī)系統(tǒng)還包括由于在活 動數(shù)據(jù)庫日志的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況而切換數(shù)據(jù)庫計算系統(tǒng)的存檔單 元的程序指令。該計算機(jī)系統(tǒng)還包括維護(hù)數(shù)據(jù)庫日志歷史表的程序指令,其中數(shù)據(jù)庫日志 歷史表捕獲由數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)線程生成的活動數(shù)據(jù)庫日志的閾值計數(shù)。該計算機(jī)系 統(tǒng)還包括基于由于在數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況而導(dǎo)致的 數(shù)據(jù)庫計算系統(tǒng)的切換后的存檔單元以及所維護(hù)的數(shù)據(jù)庫日志歷史表中的活動數(shù)據(jù)庫日 志的閾值計數(shù),限定用于存檔活動數(shù)據(jù)庫日志的臨時位置的程序指令。
[0010] 在本發(fā)明的又一實施例中,提供了通過監(jiān)視數(shù)據(jù)庫計算系統(tǒng)的活動數(shù)據(jù)庫日志來 阻止由于數(shù)據(jù)庫計算系統(tǒng)中的日志填滿狀況而暫停事務(wù)的計算機(jī)程序產(chǎn)品。該計算機(jī)程序 產(chǎn)品包括一個或多個計算機(jī)可讀有形存儲設(shè)備、以及存儲在一個或多個存儲設(shè)備中的至少 一個上的程序指令。該計算機(jī)程序產(chǎn)品還包括由于在活動數(shù)據(jù)庫日志的系統(tǒng)操作期間發(fā)生 數(shù)據(jù)庫日志填滿狀況而切換數(shù)據(jù)庫計算系統(tǒng)的存檔單元的程序指令。該計算機(jī)程序產(chǎn)品還 包括維護(hù)數(shù)據(jù)庫日志歷史表的程序指令,其中數(shù)據(jù)庫日志歷史表捕獲由數(shù)據(jù)庫計算系統(tǒng)的 系統(tǒng)線程生成的活動數(shù)據(jù)庫日志的閾值計數(shù)。該計算機(jī)程序產(chǎn)品還包括基于由于在數(shù)據(jù)庫 計算系統(tǒng)的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況而導(dǎo)致的數(shù)據(jù)庫計算系統(tǒng)的切換后的 存檔單元以及所維護(hù)的數(shù)據(jù)庫日志歷史表中的活動數(shù)據(jù)庫日志的閾值計數(shù),限定用于存檔 活動數(shù)據(jù)庫日志的臨時位置的程序指令。
【專利附圖】
【附圖說明】
[0011] 本發(fā)明的新穎特征在所附權(quán)利要求書中被闡述。然而,當(dāng)結(jié)合附圖閱讀時,本發(fā)明 本身以及優(yōu)選使用模式、另外的目的及其優(yōu)點將通過參考本發(fā)明的以下詳細(xì)說明而被最佳 地理解,在附圖中類似的附圖標(biāo)記指示類似的組件、并且:
[0012] 圖1是根據(jù)本發(fā)明的實施例的用于存檔數(shù)據(jù)庫管理系統(tǒng)(DBMS)計算環(huán)境中的活 動數(shù)據(jù)庫日志的DBMS環(huán)境的功能圖。
[0013] 圖2是根據(jù)本發(fā)明的實施例,由于在DBMS計算環(huán)境中發(fā)生日志填滿狀況,將數(shù)據(jù) 庫計算系統(tǒng)的最終活動數(shù)據(jù)庫日志卸載或傳送到數(shù)據(jù)庫計算系統(tǒng)的臨時日志單元的活動 數(shù)據(jù)庫日志結(jié)構(gòu)的功能圖。
[0014] 圖3示出根據(jù)本發(fā)明的實施例的線程歷史表的功能框圖,所述線程歷史表可由數(shù) 據(jù)庫計算系統(tǒng)的數(shù)據(jù)庫程序應(yīng)用訪問以用于維護(hù)數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)線程所生成的活 動數(shù)據(jù)庫日志記錄,其中數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)線程生成活動數(shù)據(jù)庫日志記錄的速度比數(shù) 據(jù)庫計算系統(tǒng)的數(shù)據(jù)庫程序應(yīng)用更快。
[0015] 圖4是示出根據(jù)本發(fā)明的實施例,由數(shù)據(jù)庫應(yīng)用程序執(zhí)行以便通過監(jiān)視數(shù)據(jù)庫計 算系統(tǒng)的活動數(shù)據(jù)庫日志(包括由于在數(shù)據(jù)庫計算系統(tǒng)中發(fā)生日志填滿狀況而在臨時日 志單元中卸載活動數(shù)據(jù)庫日志)來阻止由于數(shù)據(jù)庫計算系統(tǒng)中的日志填滿狀況而導(dǎo)致的 事務(wù)暫停的步驟的流程圖。
[0016] 圖5示出根據(jù)本發(fā)明的實施例的計算機(jī)系統(tǒng)的組件的框圖。
【具體實施方式】
[0017] 現(xiàn)在將參考附圖詳細(xì)描述本發(fā)明。現(xiàn)在參考圖1,其示出用于存檔DBMS計算環(huán)境 100的活動數(shù)據(jù)庫日志(包括例如阻止活動數(shù)據(jù)庫日志的事務(wù)暫停,因此保證活動數(shù)據(jù)庫 日志對數(shù)據(jù)庫系統(tǒng)而言可用以便在DBMS計算環(huán)境100中進(jìn)行處理)的DBMS環(huán)境100。數(shù) 據(jù)庫系統(tǒng)可以是DB2?。DB2?.是關(guān)系模型數(shù)據(jù)庫服務(wù)器(RDBMS),其適于服務(wù)各種操 作系統(tǒng),包括例如Linux?、UNIX?或z/OS?操作系統(tǒng)平臺。
[0018] 根據(jù)本發(fā)明的各方面,由數(shù)據(jù)庫系統(tǒng)執(zhí)行的數(shù)據(jù)庫操作活動典型地由活動數(shù)據(jù)庫 日志維護(hù),其中活動數(shù)據(jù)庫日志的存儲被數(shù)據(jù)庫系統(tǒng)利用以從DBMS計算環(huán)境100的操作 故障中恢復(fù)。數(shù)據(jù)庫日志是線性數(shù)據(jù)集(LDS),其被構(gòu)造成符合虛擬存儲機(jī)制,包括例如 虛擬存儲訪問方法(VSAM)。此外,數(shù)據(jù)庫日志也可以被定義為由數(shù)據(jù)庫系統(tǒng)執(zhí)行的動作的 歷史,以便在數(shù)據(jù)庫系統(tǒng)的崩潰或硬件故障時保證原子性、一致性、隔離性和持久性(ACID) 特性。例如,如果數(shù)據(jù)庫系統(tǒng)更新了數(shù)據(jù)庫對象中的事務(wù)數(shù)據(jù),則更新事件的類型或事務(wù)與 數(shù)據(jù)庫系統(tǒng)的所有數(shù)據(jù)一起被記錄在數(shù)據(jù)庫日志中。
[0019] 此外,數(shù)據(jù)庫日志記錄機(jī)制提供了數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)庫操作故障的恢復(fù),包括例 如由于數(shù)據(jù)庫系統(tǒng)的崩潰或操作故障而對數(shù)據(jù)庫系統(tǒng)的同步或修復(fù)。數(shù)據(jù)庫系統(tǒng)在數(shù)據(jù)庫 日志中記錄數(shù)據(jù)變更和其他操作信息,其中數(shù)據(jù)變更通常包括例如插入或更新查詢,所述 插入或更新查詢由數(shù)據(jù)庫系統(tǒng)執(zhí)行以恢復(fù)數(shù)據(jù)庫系統(tǒng)的錯誤或操作故障。結(jié)果,在涉及數(shù) 據(jù)庫系統(tǒng)的系統(tǒng)故障的特定情況中,數(shù)據(jù)庫系統(tǒng)可以利用數(shù)據(jù)庫日志的事務(wù)的記錄信息來 恢復(fù)盡可能多的故障或損壞數(shù)據(jù)。例如,這樣的事務(wù)被初始地記錄在數(shù)據(jù)庫系統(tǒng)的存儲器 中的活動日志中,由此提供對損壞數(shù)據(jù)的快速訪問。考慮:例如,對于數(shù)據(jù)庫系統(tǒng)所執(zhí)行的 每十個插入結(jié)構(gòu)化查詢語言(SQL)語句,由數(shù)據(jù)庫系統(tǒng)測量的提交點。此外,考慮:例如,在 第五個插入SQL語句期間,數(shù)據(jù)庫系統(tǒng)崩潰,因為沒有執(zhí)行提交測量(commit measure)。例 如,根據(jù)本發(fā)明的各方面,在數(shù)據(jù)庫系統(tǒng)的操作期間,定義數(shù)據(jù)庫日志以用于記錄數(shù)據(jù)庫系 統(tǒng)的操作活動。然而,當(dāng)數(shù)據(jù)庫系統(tǒng)達(dá)到其數(shù)據(jù)庫日志的全部集合變得填滿的狀態(tài)、并且因 此數(shù)據(jù)庫系統(tǒng)不能執(zhí)行任何另外的數(shù)據(jù)庫日志記錄活動時,數(shù)據(jù)庫系統(tǒng)中止處理數(shù)據(jù)庫系 統(tǒng)的數(shù)據(jù)庫日志,由此引起數(shù)據(jù)庫系統(tǒng)的日志填滿狀況。
[0020] 日志填滿狀況暫停數(shù)據(jù)庫系統(tǒng)的事務(wù)或操作,并會引起數(shù)據(jù)庫系統(tǒng)的所有新事務(wù) 的中斷,其中新事務(wù)會要求數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)庫日志記錄被寫入。當(dāng)數(shù)據(jù)庫系統(tǒng)向數(shù)據(jù)庫 系統(tǒng)的存儲帶存檔時,發(fā)生日志填滿狀況。此外,如果數(shù)據(jù)庫日志被卸載到存儲帶,則硬件 或存儲帶的不可用會阻止數(shù)據(jù)庫系統(tǒng)存檔數(shù)據(jù)庫日志。當(dāng)數(shù)據(jù)庫系統(tǒng)不能將數(shù)據(jù)存檔到數(shù) 據(jù)庫系統(tǒng)的存儲盤時(特別是如果所述盤的存儲被填滿),也發(fā)生日志填滿狀況。因此,在 日志填滿狀況下,數(shù)據(jù)庫系統(tǒng)試圖將數(shù)據(jù)庫日志卸載到數(shù)據(jù)庫系統(tǒng)的各種設(shè)備或數(shù)據(jù)庫系 統(tǒng)的元件上,直到或者如果數(shù)據(jù)庫系統(tǒng)的設(shè)備或元件變成或者可用于存儲卸載的數(shù)據(jù)庫日 〇
[0021] 本發(fā)明提供了由于在數(shù)據(jù)庫系統(tǒng)的系統(tǒng)操作期間在數(shù)據(jù)庫系統(tǒng)中發(fā)生了日志填 滿狀況,而切換數(shù)據(jù)庫系統(tǒng)的存檔單元。本發(fā)明還提供了 :維護(hù)數(shù)據(jù)庫日志歷史表的系統(tǒng)線 程,以及基于由于在數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)操作期間發(fā)生了日志填滿狀況而導(dǎo)致的數(shù)據(jù)庫 系統(tǒng)的切換后的存檔單元以及所維護(hù)的數(shù)據(jù)庫日志歷史表中的活動數(shù)據(jù)庫日志的閾值計 數(shù),來提供用于存檔活動數(shù)據(jù)庫日志的臨時位置。例如,閾值計數(shù)可以由系統(tǒng)管理員設(shè)置, 或者其可以是活動數(shù)據(jù)庫日志的閾值計數(shù)的缺省值。本發(fā)明特別允許避免數(shù)據(jù)庫系統(tǒng)的操 作期間的日志填滿狀況。例如,在沒有發(fā)生數(shù)據(jù)庫日志的存檔時設(shè)置閾值,然而,當(dāng)達(dá)到閾 值時,數(shù)據(jù)庫系統(tǒng)創(chuàng)建臨時單元以便由于數(shù)據(jù)庫系統(tǒng)中發(fā)生日志填滿狀況而將數(shù)據(jù)庫日志 臨時卸載到臨時單元。
[0022] 考慮例如數(shù)據(jù)庫系統(tǒng)的五個數(shù)據(jù)庫日志被設(shè)置為存檔到數(shù)據(jù)庫系統(tǒng)的磁帶上的 情況。此外,考慮:磁帶不可用,并且數(shù)據(jù)庫日志不能被卸載到磁帶。因此,在這種情況下, 數(shù)據(jù)庫系統(tǒng)已經(jīng)達(dá)到其最終的活動數(shù)據(jù)庫日志,并且由于已經(jīng)確定存在硬件問題,在本發(fā) 明的實施例中,數(shù)據(jù)庫系統(tǒng)由于數(shù)據(jù)庫系統(tǒng)中的日志填滿狀況而將存檔介質(zhì)切換為另一個 設(shè)備。
[0023] DBMS存檔環(huán)境100包括數(shù)據(jù)庫計算系統(tǒng)105。數(shù)據(jù)庫計算系統(tǒng)105是服務(wù)器數(shù) 據(jù)庫計算系統(tǒng),諸如管理服務(wù)器、網(wǎng)絡(luò)服務(wù)器或任何其他電子設(shè)備或計算系統(tǒng)。服務(wù)器計 算系統(tǒng)也可以表示通過一個或多個網(wǎng)絡(luò)互連的計算機(jī)的"云",其中當(dāng)通過數(shù)據(jù)庫管理系統(tǒng) (DBMS)環(huán)境100的計算環(huán)境訪問時,服務(wù)器計算系統(tǒng)可以是針對利用集群計算機(jī)的計算系 統(tǒng)的主服務(wù)器。例如,根據(jù)至少一個實施例,云計算系統(tǒng)可以是管理系統(tǒng)的一般實現(xiàn),所述 管理系統(tǒng)通過監(jiān)視數(shù)據(jù)庫計算系統(tǒng)105的活動數(shù)據(jù)庫日志的狀態(tài)來阻止由于數(shù)據(jù)庫計算 機(jī)系統(tǒng)105的日志填滿狀況而暫?;蛲V故聞?wù)的處理。數(shù)據(jù)庫計算系統(tǒng)105包括數(shù)據(jù)庫應(yīng) 用程序110和數(shù)據(jù)庫存儲單元129。由于在數(shù)據(jù)庫計算系統(tǒng)105的系統(tǒng)操作期間發(fā)生數(shù)據(jù) 庫日志填滿狀況,數(shù)據(jù)庫應(yīng)用程序110執(zhí)行程序指令以切換數(shù)據(jù)庫計算系統(tǒng)105的存檔單 元。根據(jù)一方面,數(shù)據(jù)庫計算系統(tǒng)105的SQL程序可以作為數(shù)據(jù)庫應(yīng)用程序110的應(yīng)用處 理的一部分來執(zhí)行,其中應(yīng)用處理涉及執(zhí)行數(shù)據(jù)庫應(yīng)用程序110的一個或多個程序。
[0024] 數(shù)據(jù)庫存儲單元129可以是任何類型的存儲設(shè)備、存儲服務(wù)器、存儲區(qū)域網(wǎng)絡(luò)、獨(dú) 立磁盤冗余陣列(RAID)、云存儲設(shè)備或任何類型的數(shù)據(jù)存儲裝置。例如,數(shù)據(jù)庫存儲單元 129是DB2?關(guān)系數(shù)據(jù)庫管理系統(tǒng)。RDBMS是數(shù)據(jù)庫,其存儲來自數(shù)據(jù)庫計算系統(tǒng)105的 數(shù)據(jù)庫日志記錄活動的信息。存儲在數(shù)據(jù)庫存儲單元129中的信息可以是數(shù)據(jù)庫日志的結(jié) 構(gòu)化或非結(jié)構(gòu)化信息,包括由數(shù)據(jù)庫計算系統(tǒng)105執(zhí)行的動作的歷史,以便在數(shù)據(jù)庫計算 系統(tǒng)105的崩潰或操作硬件故障時保證ACID特性。
[0025] 數(shù)據(jù)庫應(yīng)用程序110包括數(shù)據(jù)庫恢復(fù)單元130、數(shù)據(jù)庫日志管理器135、線程日志 歷史表125和存檔數(shù)據(jù)庫日志結(jié)構(gòu)126。數(shù)據(jù)庫恢復(fù)單元130是由數(shù)據(jù)庫應(yīng)用程序110執(zhí)行 的可恢復(fù)操作序列以用于數(shù)據(jù)庫應(yīng)用程序110的應(yīng)用處理。例如,如果數(shù)據(jù)庫計算系統(tǒng)105 的工作單元涉及對DBMS計算環(huán)境100的其他可恢復(fù)資源的變更,則數(shù)據(jù)庫恢復(fù)單元130的 工作單元將被數(shù)據(jù)庫恢復(fù)單元130的其他恢復(fù)單元支持。
[0026] 數(shù)據(jù)庫日志管理器135存檔數(shù)據(jù)庫系統(tǒng)105的數(shù)據(jù)庫日志文件,并在數(shù)據(jù)庫計算 系統(tǒng)105的恢復(fù)期間取回數(shù)據(jù)庫日志文件。例如,數(shù)據(jù)庫日志管理器135支持存檔數(shù)據(jù)庫 計算系統(tǒng)105的媒體文件,其中數(shù)據(jù)庫計算系統(tǒng)105的數(shù)據(jù)庫日志文件可以被存檔到數(shù)據(jù) 庫計算系統(tǒng)105的磁盤位置。數(shù)據(jù)庫日志管理器135包括數(shù)據(jù)庫事務(wù)管理器120。數(shù)據(jù)庫 事務(wù)管理器120將標(biāo)識符分配給數(shù)據(jù)庫計算系統(tǒng)105的事務(wù),監(jiān)視事務(wù)的進(jìn)展,并對數(shù)據(jù)庫 計算系統(tǒng)105的系統(tǒng)操作期間的事務(wù)的完成和故障負(fù)責(zé)。例如,數(shù)據(jù)庫日志管理器135向 數(shù)據(jù)庫事務(wù)管理器120提供可以用來在單個工作單元內(nèi)協(xié)調(diào)若干數(shù)據(jù)庫的更新的功能。數(shù) 據(jù)庫應(yīng)用程序110自動協(xié)調(diào)數(shù)據(jù)庫日志管理器135的工作單元,并利用數(shù)據(jù)庫日志管理器 135來登記數(shù)據(jù)庫計算系統(tǒng)105的每個事務(wù)。
[0027] 線程日志歷史表125維護(hù)由數(shù)據(jù)庫計算系統(tǒng)105的系統(tǒng)線程生成的活動數(shù)據(jù)庫日 志記錄,其中數(shù)據(jù)庫計算系統(tǒng)105的系統(tǒng)線程生成活動數(shù)據(jù)庫日志記錄的速度比數(shù)據(jù)庫程 序應(yīng)用110更快。例如,線程歷史表125是當(dāng)達(dá)到所有活動數(shù)據(jù)庫日志的25%、或者由系 統(tǒng)管理員設(shè)置的活動數(shù)據(jù)庫日志的任何特定閾值計數(shù)時,由數(shù)據(jù)庫應(yīng)用程序110創(chuàng)建的數(shù) 據(jù)庫計算系統(tǒng)105的臨時表。根據(jù)至少一個實施例,一旦數(shù)據(jù)庫計算系統(tǒng)105達(dá)到這樣的 點,線程日志歷史表125就被數(shù)據(jù)庫應(yīng)用程序110刪除,其中在所述點處,數(shù)據(jù)庫計算系統(tǒng) 105的所有活動數(shù)據(jù)庫日志被卸載到數(shù)據(jù)庫計算系統(tǒng)105的以前不能用于存檔活動數(shù)據(jù)庫 日志的原有設(shè)備(original device)。
[0028] 在示出的實施例中,由于在DBMS計算環(huán)境100中發(fā)生日志填滿狀況,存檔數(shù)據(jù)庫 日志結(jié)構(gòu)126將數(shù)據(jù)庫計算系統(tǒng)105的活動數(shù)據(jù)庫日志卸載或傳送到數(shù)據(jù)庫程序應(yīng)用110 的臨時日志單元140。臨時日志單元140包括zparm臨時存檔單元(zparm_temp_arch_ unit) 141,其提供用于將活動數(shù)據(jù)庫日志卸載到臨時日志單元140的參數(shù)值。例如,存檔數(shù) 據(jù)庫日志結(jié)構(gòu)126也利用日志管理控制塊(LMB)單元127,其包括用于管理活動數(shù)據(jù)庫日志 的兩個或更多控制塊LDSD 111、112、113和114。存檔數(shù)據(jù)庫日志結(jié)構(gòu)126也包括引導(dǎo)數(shù)據(jù) 集(BSDS,bootstrap dataset) 128,其將卸載到臨時日志單元140的活動數(shù)據(jù)庫日志與活 動數(shù)據(jù)庫日志的對應(yīng)單元一起存儲在臨時日志單元140中。
[0029] 根據(jù)本發(fā)明的至少一個實施例,如果數(shù)據(jù)庫計算系統(tǒng)105中的被指定用于存檔活 動數(shù)據(jù)庫日志的設(shè)備不可用,則存檔引擎145將活動數(shù)據(jù)庫日志存檔在臨時日志單元140 中。此外,根據(jù)本發(fā)明的至少一個實施例,一旦所述設(shè)備變得可用,存檔引擎145將存檔在 臨時日志單元140中的活動數(shù)據(jù)庫日志傳送到數(shù)據(jù)庫計算系統(tǒng)的適當(dāng)設(shè)備。
[0030] 圖2示出根據(jù)本發(fā)明的實施例,由于DBMS計算環(huán)境100中發(fā)生日志填滿狀況,而 將數(shù)據(jù)庫計算系統(tǒng)105的最終活動數(shù)據(jù)庫日志卸載或傳送到臨時日志單元140的活動數(shù)據(jù) 庫日志結(jié)構(gòu)126的功能框圖。
[0031] 數(shù)據(jù)庫計算系統(tǒng)105利用LMB單元127來管理數(shù)據(jù)庫計算系統(tǒng)105的活動數(shù)據(jù)庫 日志。如圖所示,LMB 127已經(jīng)"通過鏈條連接(chained)"到環(huán)形鏈條形式的兩個或更多 控制塊LDSD 111、112、113和114(即,LBM 127包括指向環(huán)形鏈條形式的兩個或更多控制 塊LDSD 111、112、113和114的鏈條的頭部的指針),其中每個LDSD 111、112、113和114分 別表示被標(biāo)為日志1、日志2、日志3和日志4的活動數(shù)據(jù)庫日志數(shù)據(jù)集。LMB 127也包括 指向數(shù)據(jù)庫計算系統(tǒng)105的存檔參數(shù)的指針,其中臨時日志單元140可以根據(jù)LMB 127的 存檔參數(shù)而被創(chuàng)建。例如,如果數(shù)據(jù)庫應(yīng)用程序110確定數(shù)據(jù)庫計算系統(tǒng)105的硬件故障, 其中在這種情況下數(shù)據(jù)庫應(yīng)用程序110等待數(shù)據(jù)庫應(yīng)用程序110達(dá)到其最終活動數(shù)據(jù)庫曰 志,數(shù)據(jù)庫應(yīng)用程序110將數(shù)據(jù)庫計算系統(tǒng)105的存檔單元切換為臨時日志單元140、并將 活動數(shù)據(jù)庫日志存檔到臨時日志單元140。根據(jù)至少一個實施例,在活動數(shù)據(jù)庫日志被傳 送到臨時日志單元140后,數(shù)據(jù)庫程序應(yīng)用110利用臨時日志單元140的活動數(shù)據(jù)庫日志 更新BSDS 128。如圖1所示,臨時日志單元140的最終活動數(shù)據(jù)庫日志被創(chuàng)建的位置是由 數(shù)據(jù)庫計算系統(tǒng)105的Zparm參數(shù)臨時存檔單元141確定的。例如,如上所述,Zparm臨時 存檔單元141是數(shù)據(jù)庫計算系統(tǒng)105的系統(tǒng)級參數(shù),其限定或描述數(shù)據(jù)庫系統(tǒng)105的存檔 參數(shù)值的操作特性。在至少一個實施例中,Zparm臨時存檔單元141也可以包括雙重存檔 (dual archive)單元,其可以保證活動數(shù)據(jù)庫日志的副本被存檔到臨時日志單元140。
[0032] 此外,為了獲取Zparm參數(shù)臨時存檔單元141的存檔參數(shù)值,數(shù)據(jù)庫程序應(yīng)用110 利用包括存檔參數(shù)的LMB單元127,其中臨時日志單元140可以根據(jù)LMB 127的存檔參數(shù) 而被創(chuàng)建。如上描述,數(shù)據(jù)庫計算系統(tǒng)105使用LMB 127來管理數(shù)據(jù)庫計算系統(tǒng)105的活 動日志。LMB單元127包括指向數(shù)據(jù)庫計算系統(tǒng)105的臨時日志單元140的指針。臨時日 志單元140包含兩個數(shù)據(jù)集,一個數(shù)據(jù)集包含活動日志,而另一個數(shù)據(jù)集包含在存檔開始 時的時間點的BSDS 128,其中BSDS 128利用臨時日志單元140的被存檔的臨時日志而得 到更新。此外,存檔引擎145將整個臨時存儲的活動數(shù)據(jù)庫日志存檔在臨時日志單元140 中。例如,在本發(fā)明的至少一個實施例中,如果例如數(shù)據(jù)庫系統(tǒng)105的可能被指定用于存檔 活動數(shù)據(jù)庫日志的存檔單元不可用,則將最終活動數(shù)據(jù)庫日志存檔到臨時日志單元140是 由存檔引擎145執(zhí)行的。
[0033] 圖3示出數(shù)據(jù)庫程序應(yīng)用110的線程歷史表125的功能框圖,其中線程歷史表125 可由數(shù)據(jù)庫程序應(yīng)用110訪問以維護(hù)由系統(tǒng)線程生成的活動數(shù)據(jù)庫日志記錄,所述系統(tǒng)線 程生成活動數(shù)據(jù)庫日志記錄的速度比數(shù)據(jù)庫程序應(yīng)用110更快。根據(jù)至少一個實施例,數(shù) 據(jù)庫計算系統(tǒng)105維護(hù)由線程日志歷史表125中的線程1、線程2、線程3中的任何一個生 成的最終活動數(shù)據(jù)庫日志記錄的閾值計數(shù)。
[0034] 考慮:例如,其中全部活動數(shù)據(jù)庫日志的50%被填滿的情況,在這種情況下,數(shù)據(jù) 庫程序應(yīng)用110維護(hù)由線程1、線程2、線程3中的任何一個生成的活動數(shù)據(jù)庫日志的數(shù)量 的記錄,其中線程1、線程2、線程3是數(shù)據(jù)庫計算系統(tǒng)105的線程日志歷史表125中的當(dāng)前 運(yùn)行或操作的系統(tǒng)線程。此外,在其中全部活動數(shù)據(jù)庫日志的50%被填滿的示例中,線程 1、線程2、線程3中的任何一個的恢復(fù)單元(UR) 340與其系統(tǒng)線程細(xì)節(jié)(包括例如線程狀態(tài) 310、URID 320、日志計數(shù)/URID 330、UR 340和總計數(shù)350) -起由數(shù)據(jù)庫程序應(yīng)用110確 定。UR 340是將數(shù)據(jù)庫計算系統(tǒng)105中的數(shù)據(jù)從一個一致性點變更到另一個一致性點的工 作。URID 320標(biāo)識UR 340的工作單元。
[0035] URID 320是指示活動數(shù)據(jù)庫日志的該恢復(fù)單元的開頭的活動數(shù)據(jù)庫日志的起始 UR的相對字節(jié)地址。例如,在示出的環(huán)境中,URl是針對線程3的當(dāng)前正在進(jìn)行中的恢復(fù)單 元的URID 320,其中線程3表示系統(tǒng)線程。對于每個UR1、UR2、UR3等,URID 320由數(shù)據(jù)庫 程序應(yīng)用110分配,并且其對應(yīng)的活動數(shù)據(jù)庫日志使用鏈接的列表數(shù)據(jù)結(jié)構(gòu)而得到維護(hù)。 例如,數(shù)據(jù)庫程序應(yīng)用110開始數(shù)據(jù)庫計算系統(tǒng)105的活動數(shù)據(jù)庫日志的UR記錄標(biāo)記。例 如,當(dāng)UR記錄被創(chuàng)建時,也對該UR創(chuàng)建UR計數(shù)器,并且只要新日志被添加到UR,該計數(shù)器 就被遞增。因此當(dāng)UR結(jié)束時,我們具有總計數(shù),其在線程日志歷史表125中被更新。線程日 志歷史表125維護(hù)所有系統(tǒng)線程的提交的UR和未提交的UR的總計數(shù)。例如,如果對于完 成的UR 340識別出對應(yīng)的線程1、線程2或線程3中的任何一個,則針對線程1、線程2或 線程3中的任何一個線程的URID 320和總計數(shù)350在線程日志歷史表125中被更新。在 這種情況下,針對每個URID 320的線程狀態(tài)310從未提交(Un-Committed)被改變?yōu)樘峤?(Committed)狀態(tài)。此外,考慮:例如,數(shù)據(jù)庫計算系統(tǒng)105達(dá)到最終活動數(shù)據(jù)庫日志被0% 填滿的點的情況,在這種情況下,數(shù)據(jù)庫應(yīng)用程序110確定所有活動地運(yùn)行的UR(包括所有 運(yùn)行的UR的日志計數(shù)),并更新運(yùn)行的UR的日志計數(shù)的線程日志歷史表125。
[0036] 此外,數(shù)據(jù)庫程序應(yīng)用110搜索線程日志歷史表125以確定線程1、線程2、線程3 中的任何一個是否生成了數(shù)據(jù)庫計算系統(tǒng)105的最大數(shù)量的活動數(shù)據(jù)庫日志。一旦發(fā)現(xiàn)數(shù) 據(jù)庫日志歷史表125中的線程1、線程2、線程3中的生成最大數(shù)量的活動數(shù)據(jù)庫日志的任 何一個線程的系統(tǒng)線程,該系統(tǒng)線程就被臨時暫停。在另一個示例中,考慮以下情況:存在 多于一個的系統(tǒng)線程以比數(shù)據(jù)庫應(yīng)用程序110更快的速度生成更多數(shù)據(jù)庫活動日志。在這 樣的情況下,當(dāng)最終活動數(shù)據(jù)庫日志的25%被填滿、并且數(shù)據(jù)庫應(yīng)用程序110還沒有開始 存檔最終數(shù)據(jù)庫活動日志時,根據(jù)本發(fā)明的實施例,數(shù)據(jù)庫應(yīng)用程序110驗證線程日志歷 史表125以確定線程1、線程2、線程3中的生成了數(shù)據(jù)庫計算系統(tǒng)105的最大數(shù)量的活動 數(shù)據(jù)庫日志的任何一個線程的第二系統(tǒng)線程,并暫停該第二系統(tǒng)線程。
[0037] 然而,如果第二系統(tǒng)線程的暫停不能解決如上所述的線程1、線程2或線程3中的 任何一個以比數(shù)據(jù)庫應(yīng)用程序110更快的速度生成更多活動數(shù)據(jù)庫日志的問題,則在數(shù)據(jù) 庫應(yīng)用程序110中的最終活動數(shù)據(jù)庫日志的容量的50%處,線程1、線程2、線程3中的已 經(jīng)生成最大數(shù)量的活動數(shù)據(jù)庫日志的任何一個線程的第三系統(tǒng)線程被數(shù)據(jù)庫應(yīng)用程序110 識別并暫?!,F(xiàn)在,在這種情況下,數(shù)據(jù)庫應(yīng)用程序Iio開始將活動數(shù)據(jù)庫日志存檔到臨時 日志單元140。當(dāng)所有的最終活動日志被存檔到臨時日志單元125時,數(shù)據(jù)庫應(yīng)用程序110 恢復(fù)被暫停的線程1、線程2或線程3中的任何一個。例如,如果數(shù)據(jù)庫應(yīng)用程序110恢復(fù) 被暫停的線程,則線程日志歷史表125中的線程1、線程2、線程3中的任何一個線程的一些 條目被更新。例如,對于被恢復(fù)的線程1、線程2或線程3中的每一個,針對被恢復(fù)的線程的 線程狀態(tài)310從暫停被改變?yōu)榛顒?暫停前(pre-suspended)。
[0038] 根據(jù)至少一個實施例,一旦數(shù)據(jù)庫應(yīng)用程序110將數(shù)據(jù)庫計算系統(tǒng)105的存檔單 元切換為臨時日志單元140并將最終活動數(shù)據(jù)庫日志存檔到臨時日志單元140,同樣一旦 數(shù)據(jù)庫應(yīng)用程序110暫?;蚧謴?fù)數(shù)據(jù)庫計算系統(tǒng)105的任何事務(wù),數(shù)據(jù)庫應(yīng)用程序110將 數(shù)據(jù)庫應(yīng)用程序110的被暫?;蚧謴?fù)事務(wù)的更新的消息傳送給數(shù)據(jù)庫計算系統(tǒng)105的系統(tǒng) 管理員。
[0039] 此外,在線程1、線程2、線程3中的任何一個的第三系統(tǒng)線程被恢復(fù)后,數(shù)據(jù)庫應(yīng) 用程序110首先驗證線程1、線程2或線程3的之前被暫停的線程中的任何一個是否正在引 起類似的日志記錄問題,如果線程1、線程2、線程3中的任何一個正在引起類似的日志記錄 問題,則數(shù)據(jù)庫應(yīng)用程序110暫停線程1、線程2、線程3中的任何一個的所有系統(tǒng)線程。否 貝1J,數(shù)據(jù)庫應(yīng)用程序110暫停從之前的循環(huán)值開始以來生成最多數(shù)量的活動日志記錄的線 程。此外,如果線程1、線程2、線程3中的任何一個的相同系統(tǒng)線程被暫停超過系統(tǒng)管理員 指定的系統(tǒng)線程的閾值,則該線程將被永久暫停。
[0040] 圖4是示出根據(jù)本發(fā)明的實施例,由數(shù)據(jù)庫應(yīng)用程序110執(zhí)行以便通過監(jiān)視數(shù)據(jù) 庫計算系統(tǒng)105的活動數(shù)據(jù)庫日志(包括由于數(shù)據(jù)庫計算系統(tǒng)105中發(fā)生日志填滿狀況而 在臨時日志單元140中卸載活動數(shù)據(jù)庫日志)來阻止數(shù)據(jù)庫計算系統(tǒng)105中的事務(wù)暫停的 步驟的流程圖。
[0041] 由于在數(shù)據(jù)庫計算系統(tǒng)105的活動數(shù)據(jù)庫日志的系統(tǒng)操作期間發(fā)生日志填滿狀 況,數(shù)據(jù)庫應(yīng)用程序110切換數(shù)據(jù)庫計算系統(tǒng)105的存檔單元(步驟410)。數(shù)據(jù)庫應(yīng)用程 序110還維護(hù)線程日志歷史表125,其中線程日志歷史表125捕獲由數(shù)據(jù)庫計算系統(tǒng)105的 系統(tǒng)線程生成的活動數(shù)據(jù)庫日志的閾值計數(shù)(步驟420)。例如,數(shù)據(jù)庫應(yīng)用程序110確定 系統(tǒng)/硬件故障或數(shù)據(jù)庫日志填滿狀況是否是由以比數(shù)據(jù)庫計算系統(tǒng)105更快的速度生成 活動數(shù)據(jù)庫日志的系統(tǒng)線程引起的。如果日志填滿狀況是由數(shù)據(jù)庫計算系統(tǒng)105的系統(tǒng)線 程引起的,則數(shù)據(jù)庫應(yīng)用程序110還例如通過確定具有最高數(shù)量的活動數(shù)據(jù)庫日志的系統(tǒng) 線程、并基于線程日志歷史表125中的活動數(shù)據(jù)庫日志的計數(shù)的閾值而暫停系統(tǒng)線程,來 臨時暫停系統(tǒng)線程對活動數(shù)據(jù)庫日志的生成,其中線程日志歷史表125維護(hù)數(shù)據(jù)庫計算系 統(tǒng)105的活動的和暫停的系統(tǒng)線程的記錄。數(shù)據(jù)庫應(yīng)用程序110還在線程日志歷史表125 中搜索數(shù)據(jù)庫計算系統(tǒng)105的活動的和暫停的系統(tǒng)線程的記錄。例如,數(shù)據(jù)庫應(yīng)用程序110 將該過程重復(fù)某個指定的閾值,此后,數(shù)據(jù)庫應(yīng)用程序110永久地暫停系統(tǒng)線程。例如,數(shù) 據(jù)庫應(yīng)用程序110還基于由于數(shù)據(jù)庫計算系統(tǒng)105的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀 況而導(dǎo)致的數(shù)據(jù)庫計算系統(tǒng)105的切換后的存檔單元以及線程日志歷史表125中的活動數(shù) 據(jù)庫日志的維護(hù)的閾值計數(shù),來限定用于存檔活動數(shù)據(jù)庫日志的臨時日志單元140(步驟 430)。這樣做是因為可能會存在以下兩者的組合:數(shù)據(jù)庫計算系統(tǒng)105的系統(tǒng)故障,以及數(shù) 據(jù)庫計算系統(tǒng)105的寫入更多日志的系統(tǒng)線程。如上所述,數(shù)據(jù)庫日志填滿狀況會暫停數(shù) 據(jù)庫系統(tǒng)的事務(wù)或操作,并且會引起數(shù)據(jù)庫計算系統(tǒng)105的所有新事務(wù)的中斷,其中所述 新事務(wù)要求數(shù)據(jù)庫計算系統(tǒng)105的日志記錄被寫入。
[0042] 根據(jù)本發(fā)明的至少一個實施例,BSDS 128包括:包括活動數(shù)據(jù)庫日志的數(shù)據(jù)集的 記錄;以及包括臨時日志單元140的被存檔的活動數(shù)據(jù)庫日志的BSDS 128的數(shù)據(jù)集的記 錄。例如,由于在數(shù)據(jù)庫計算系統(tǒng)105的活動數(shù)據(jù)庫日志的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志 填滿狀況,數(shù)據(jù)庫應(yīng)用程序110確定數(shù)據(jù)庫故障或數(shù)據(jù)庫日志狀況的原因。由于在活動數(shù) 據(jù)庫日志的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況,數(shù)據(jù)庫應(yīng)用程序110還確定系統(tǒng)故障 或數(shù)據(jù)庫日志狀況的原因,其中發(fā)生將活動數(shù)據(jù)庫日志存檔到臨時日志單元140的操作, 而不暫?;蛑兄箶?shù)據(jù)庫計算系統(tǒng)105的系統(tǒng)操作。此外,系統(tǒng)故障或數(shù)據(jù)庫日志狀況的原 因直到活動數(shù)據(jù)庫日志達(dá)到最終活動數(shù)據(jù)庫日志狀態(tài)才被解決,其中當(dāng)活動數(shù)據(jù)庫日志達(dá) 到最終活動數(shù)據(jù)庫日志狀態(tài)時活動數(shù)據(jù)庫日志被存檔到臨時日志單元140,并且其中最終 活動數(shù)據(jù)庫日志狀態(tài)基于活動數(shù)據(jù)庫日志記錄的另一個閾值計數(shù)。
[0043] 圖5是根據(jù)本發(fā)明的實施例的計算機(jī)系統(tǒng)的功能框圖。
[0044] 計算機(jī)系統(tǒng)500僅是適合的計算機(jī)系統(tǒng)的一個示例,并且并非旨在對在此描述的 本發(fā)明的實施例的使用范圍或功能暗示任何限制。不管怎樣,計算機(jī)系統(tǒng)500能夠被實施 和/或執(zhí)行上文中闡述的任何功能。在計算機(jī)系統(tǒng)500中存在計算機(jī)512,其能利用大量其 他通用或?qū)S糜嬎阆到y(tǒng)環(huán)境或配置來操作。適合于與計算機(jī)512 -起使用的熟知的計算系 統(tǒng)、環(huán)境和/或配置的示例包括但不限于個人計算機(jī)系統(tǒng)、服務(wù)器計算機(jī)系統(tǒng)、瘦客戶端、 胖客戶端、手持或膝上型設(shè)備、多處理器系統(tǒng)、基于微處理器的系統(tǒng)、機(jī)頂盒、可編程消費(fèi)電 子產(chǎn)品、網(wǎng)絡(luò)PC、微計算機(jī)系統(tǒng)、大型計算機(jī)系統(tǒng)以及包括任何上述系統(tǒng)或設(shè)備等的分布式 云計算環(huán)境。數(shù)據(jù)庫計算系統(tǒng)105可以被實施為計算機(jī)512的實例。
[0045] 計算機(jī)512可以在由計算機(jī)系統(tǒng)執(zhí)行的計算機(jī)系統(tǒng)可執(zhí)行指令(諸如程序模塊) 的一般上下文中描述。通常,程序模塊可以包括例程、程序、對象、組件、邏輯、數(shù)據(jù)結(jié)構(gòu)等, 其執(zhí)行特定任務(wù)或?qū)嵤┨囟ǔ橄髷?shù)據(jù)類型。計算機(jī)512可以在分布式云計算環(huán)境中被實 踐,在所述分布式云計算環(huán)境中任務(wù)被通過通信網(wǎng)絡(luò)連接的遠(yuǎn)程處理設(shè)備執(zhí)行。在分布式 云計算環(huán)境中,程序模塊可以位于包括存儲器存儲設(shè)備的本地和遠(yuǎn)程計算機(jī)系統(tǒng)存儲介質(zhì) 中。
[0046] 如圖5所示,計算機(jī)512以通用計算設(shè)備的形式示出。計算機(jī)512的組件可以包 括但不限于一個或多個處理器或處理單元516、存儲器528和總線518,該總線518將包括 存儲器528的各種系統(tǒng)組件耦合到處理單元516。
[0047] 總線518表示一個或多個任意若干類型的總線結(jié)構(gòu),包括存儲器總線或存儲控制 器、外圍總線、加速圖形端口以及處理器或使用任意各種總線架構(gòu)的本地總線。通過舉例 而不是進(jìn)行限制,這樣的架構(gòu)包括工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線、微通道架構(gòu)(MCA)總線、增強(qiáng) ISA(EISA)總線、視頻電子標(biāo)準(zhǔn)協(xié)會(VESA)局部總線以及外圍組件互連(PCI)總線。
[0048] 計算機(jī)512典型地包括各種計算機(jī)系統(tǒng)可讀介質(zhì)。這樣的介質(zhì)是可以被計算機(jī) 512訪問的任何可用介質(zhì),并且包括易失性和非易失性介質(zhì),以及可移除和不可移除介質(zhì)。
[0049] 存儲器528包括易失性存儲器形式的計算機(jī)系統(tǒng)可讀介質(zhì),諸如隨機(jī)存取存儲器 (RAM)630和/或高速緩存532。計算機(jī)512還可以包括其他可移除/不可移除、易失性/ 非易失性計算機(jī)系統(tǒng)存儲介質(zhì)。僅通過舉例,存儲系統(tǒng)534可以被提供用于從不可移除、非 易失性磁介質(zhì)(沒有示出,并且典型地被稱為"硬驅(qū)")讀取或向其寫入。盡管未示出,可以 提供用于從可移除、非易失性磁盤(例如"軟盤")讀取和向其寫入的磁盤驅(qū)動,以及用于從 可移除、非易失性光盤(諸如⑶-R〇M、DVD-ROM或其他光學(xué)介質(zhì))讀取和向其寫入的光盤驅(qū) 動。在這種情況下,各自可以通過一個或多個數(shù)據(jù)介質(zhì)接口連接到總線518。如以下將進(jìn)一 步描述和示出的,存儲器528可以包括至少一個程序產(chǎn)品,其具有一組(例如至少一個)配 置成執(zhí)行本發(fā)明的實施例的功能的程序模塊。
[0050] 數(shù)據(jù)庫應(yīng)用程序110可以存儲在存儲器528中,通過舉例而不是進(jìn)行限制,以及操 作系統(tǒng)、一個或多個應(yīng)用程序、其他程序模塊以及程序數(shù)據(jù)可以存儲在存儲器528中。操作 系統(tǒng)、一個或多個應(yīng)用程序、其他程序模塊、以及程序數(shù)據(jù)中的每一個或其某種組合可以包 括網(wǎng)絡(luò)環(huán)境的實施。程序模塊542通常執(zhí)行在此描述的本發(fā)明的實施例的功能和/或方法。 數(shù)據(jù)庫應(yīng)用程序110可以被實施為程序540的實例。
[0051] 計算機(jī)512也可以與下述設(shè)備通信:一個或多個外部設(shè)備514(諸如鍵盤、指點設(shè) 備等)以及顯示器524 ;使用戶能夠與計算機(jī)512交互的一個或多個設(shè)備;和/或使計算機(jī) 512能夠與一個或多個其他計算設(shè)備通信的任何設(shè)備(例如網(wǎng)卡、調(diào)制解調(diào)器等)。這樣的 通信經(jīng)由輸入/輸出(I/O)接口 522發(fā)生。此外,計算機(jī)512經(jīng)由網(wǎng)絡(luò)適配器520與一個 或多個網(wǎng)絡(luò)通信,諸如局域網(wǎng)(LAN)、通用廣域網(wǎng)(WAN)、和/或公共網(wǎng)絡(luò)(例如因特網(wǎng))。 如圖所示,網(wǎng)絡(luò)適配器520經(jīng)由總線518與計算機(jī)512的其他組件通信。應(yīng)當(dāng)理解,盡管未 示出,其他硬件和/或軟件組件可以與計算機(jī)512結(jié)合使用。示例包括但不限于:微代碼、 設(shè)備驅(qū)動器、冗余處理單元、外部磁盤驅(qū)動陣列、RAID系統(tǒng)、磁帶驅(qū)動以及數(shù)據(jù)存檔存儲系 統(tǒng)等。
[0052] 附圖中的流程圖和框圖示出根據(jù)本發(fā)明的各種實施例的系統(tǒng)、方法和計算機(jī)程序 產(chǎn)品的可能實現(xiàn)的架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表模 塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī) 定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意的是,在有些替代性實現(xiàn)中,方框中所標(biāo)注的功 能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行 地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖 和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功 能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實 現(xiàn)。
[0053] 所屬領(lǐng)域的技術(shù)人員將理解的是,本發(fā)明的實施例可以實施為系統(tǒng)、方法或計算 機(jī)程序產(chǎn)品。因此,本發(fā)明的實施例可以采取以下形式,即:完全的硬件實施方式、完全的軟 件實施方式(包括固件、駐留軟件、微代碼等),或軟件和硬件方面結(jié)合的實施方式,這里可 以統(tǒng)稱為"電路"、"模塊"或"系統(tǒng)"。此外,本發(fā)明的實施例還可以采取用一個或多個計算 機(jī)可讀介質(zhì)實施的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)上包含有計算機(jī)可讀程序代 碼。
[0054] 另外,可以采用一個或多個計算機(jī)可讀介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是 計算機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是--但不 限于--電、磁、光、電磁、紅外線或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的適當(dāng)組合。 計算機(jī)可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連 接、便攜式計算機(jī)軟盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只 讀存儲器(EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲 器件、或者上述的任意合適的組合。在本文件的上下文中,計算機(jī)可讀存儲介質(zhì)可以是任何 包含或存儲程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié) 合使用。
[0055] 計算機(jī)可讀信號介質(zhì)可以包括例如在基帶中或者作為載波一部分傳播的數(shù)據(jù)信 號,其中承載了計算機(jī)可讀程序代碼。這種傳播的信號可以采用各種形式,包括但不限于電 磁信號、光信號或上述的任意合適的組合。計算機(jī)可讀信號介質(zhì)還可以是計算機(jī)可讀存儲 介質(zhì)以外的任何計算機(jī)可讀介質(zhì),該計算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令 執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0056] 計算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括但不限于無 線、有線、光纜、RF等等,或者上述的任意合適的組合??梢砸砸环N或多種程序設(shè)計語言的 任意組合來編寫用于執(zhí)行本發(fā)明的實施例的操作的計算機(jī)程序代碼,所述程序設(shè)計語言包 括面向?qū)ο蟮某绦蛟O(shè)計語言(諸如Java、Smalltalk、C++等),還包括常規(guī)的過程式程序設(shè) 計語言(諸如"C"程序設(shè)計語言、諸如Verilog之類的硬件描述語言、或類似的程序設(shè)計語 言)。程序代碼可以完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為獨(dú)立的 軟件包執(zhí)行、部分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服 務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)--包括 局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)-連接到用戶計算機(jī),或者,可以連接到外部計算機(jī)(例如利 用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。
[0057] 計算機(jī)程序指令還可以加載到計算機(jī)、其它可編程數(shù)據(jù)處理裝置或其他設(shè)備上, 以使一系列操作步驟在計算機(jī)、其它可編程裝置或其他設(shè)備上被執(zhí)行以產(chǎn)生計算機(jī)實現(xiàn)的 過程,使得在計算機(jī)或其它可編程裝置上執(zhí)行的指令提供用于實現(xiàn)流程圖和/或框圖中的 一個或多個方框中規(guī)定的功能/動作的處理。
[0058] 基于前述方法、系統(tǒng)和計算機(jī)程序產(chǎn)品,已經(jīng)描述了通過監(jiān)視數(shù)據(jù)庫計算系統(tǒng)的 活動數(shù)據(jù)庫日志來阻止數(shù)據(jù)庫計算系統(tǒng)中的事務(wù)暫停的方法。然而,可以作出許多修改和 替換,而不脫離本發(fā)明的范圍。在這點上,流程圖或框圖中的每個方框可以表示模塊、程序 段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏 輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意的是,在有些替代性實現(xiàn)中,方框中所標(biāo)注的功能也可以 以不同于附圖中所標(biāo)注的順序發(fā)生。因此,本發(fā)明是通過舉例而不是限制的方式公開的。
【權(quán)利要求】
1. 一種通過監(jiān)視數(shù)據(jù)庫計算系統(tǒng)的活動數(shù)據(jù)庫日志來阻止所述數(shù)據(jù)庫計算系統(tǒng)中的 事務(wù)暫停的方法,所述方法包括以下步驟: 由于在所述活動數(shù)據(jù)庫日志的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況,由一個或多個 處理器切換所述數(shù)據(jù)庫計算系統(tǒng)的存檔單元; 由所述一個或多個處理器維護(hù)數(shù)據(jù)庫日志歷史表,其中所述數(shù)據(jù)庫日志歷史表捕獲由 所述數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)線程生成的活動數(shù)據(jù)庫日志的閾值計數(shù);以及 基于由于在所述數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況而導(dǎo)致的 所述數(shù)據(jù)庫計算系統(tǒng)的切換后的存檔單元以及所維護(hù)的數(shù)據(jù)庫日志歷史表中的活動數(shù)據(jù) 庫日志的閾值計數(shù),由所述一個或多個處理器限定用于存檔所述活動數(shù)據(jù)庫日志的臨時位 置。
2. 根據(jù)權(quán)利要求1所述的方法,還包括以下步驟: 由于在所述活動數(shù)據(jù)庫日志的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況,由所述一個或 多個處理器確定系統(tǒng)故障或數(shù)據(jù)庫日志狀況的原因,其中發(fā)生所述活動數(shù)據(jù)庫日志向所述 臨時位置的存檔,而不暫?;蛑兄顾鰯?shù)據(jù)庫計算系統(tǒng)的系統(tǒng)操作。
3. 根據(jù)權(quán)利要求2所述的方法,其中直到所述活動數(shù)據(jù)庫日志達(dá)到最終活動數(shù)據(jù)庫日 志狀態(tài)才解決所述系統(tǒng)故障或數(shù)據(jù)庫日志狀況的原因,其中當(dāng)所述活動數(shù)據(jù)庫日志達(dá)到所 述最終活動數(shù)據(jù)庫日志狀態(tài)時將所述活動數(shù)據(jù)庫日志存檔在所述臨時位置,以及其中所述 最終活動數(shù)據(jù)庫日志狀態(tài)基于活動數(shù)據(jù)庫日志記錄的另一個閾值計數(shù)。
4. 根據(jù)權(quán)利要求3所述的方法,其中所述臨時位置包括:包括所述活動數(shù)據(jù)庫日志的 數(shù)據(jù)集的記錄;以及包括所述臨時位置的被存檔的活動數(shù)據(jù)庫日志的引導(dǎo)數(shù)據(jù)的數(shù)據(jù)集的 記錄。
5. 根據(jù)權(quán)利要求1所述的方法,還包括以下步驟: 由所述一個或多個處理器確定系統(tǒng)故障或數(shù)據(jù)庫日志狀況是否是由以比所述數(shù)據(jù)庫 計算系統(tǒng)更快的速度生成活動數(shù)據(jù)庫日志的系統(tǒng)線程引起的;以及 如果所述系統(tǒng)線程以比所述數(shù)據(jù)庫計算系統(tǒng)更快的速度生成所述活動數(shù)據(jù)庫日志的 最終活動數(shù)據(jù)庫日志,則由所述一個或多個處理器暫停所述系統(tǒng)線程對所述活動數(shù)據(jù)庫日 志的生成。
6. 根據(jù)權(quán)利要求5所述的方法,其中基于數(shù)據(jù)庫日志歷史表中的所述活動數(shù)據(jù)庫日志 的計數(shù)的閾值,暫停具有最高數(shù)量的活動數(shù)據(jù)庫日志的系統(tǒng)線程,以及其中數(shù)據(jù)庫日志歷 史表維護(hù)活動的和暫停的系統(tǒng)線程的記錄。
7. 根據(jù)權(quán)利要求5所述的方法,其中由所述一個或多個處理器確定系統(tǒng)故障或數(shù)據(jù)庫 日志狀況是否是由以比所述數(shù)據(jù)庫計算系統(tǒng)更快的速度生成活動數(shù)據(jù)庫日志的系統(tǒng)線程 引起的步驟還包括以下步驟: 由所述一個或多個處理器在數(shù)據(jù)庫日志歷史表中搜索所述數(shù)據(jù)庫計算系統(tǒng)的活動的 和暫停的系統(tǒng)線程的記錄;以及 由所述一個或多個處理器將最終活動數(shù)據(jù)庫日志存檔在所述臨時位置中。
8. -種通過監(jiān)視數(shù)據(jù)庫計算系統(tǒng)的活動數(shù)據(jù)庫日志來阻止所述數(shù)據(jù)庫計算系統(tǒng)中的 事務(wù)暫停的計算機(jī)系統(tǒng),所述計算機(jī)系統(tǒng)包括: 一個或多個處理器、一個或多個計算機(jī)可讀存儲器、一個或多個計算機(jī)可讀有形存儲 設(shè)備、以及程序指令,所述程序指令被存儲在所述一個或多個存儲設(shè)備中的至少一個上,用 于經(jīng)由所述一個或多個存儲器中的至少一個被所述一個或多個處理器中的至少一個執(zhí)行, 所述程序指令包括: 由于在所述活動數(shù)據(jù)庫日志的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況,切換所述數(shù)據(jù) 庫計算系統(tǒng)的存檔單元的程序指令; 維護(hù)數(shù)據(jù)庫日志歷史表的程序指令,其中所述數(shù)據(jù)庫日志歷史表捕獲由所述數(shù)據(jù)庫計 算系統(tǒng)的系統(tǒng)線程生成的活動數(shù)據(jù)庫日志的閾值計數(shù);以及 基于由于在所述數(shù)據(jù)庫計算系統(tǒng)的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況而導(dǎo)致的 所述數(shù)據(jù)庫計算系統(tǒng)的切換后的存檔單元以及所維護(hù)的數(shù)據(jù)庫日志歷史表中的活動數(shù)據(jù) 庫日志的閾值計數(shù),限定用于存檔所述活動數(shù)據(jù)庫日志的臨時位置的程序指令。
9. 根據(jù)權(quán)利要求8所述的計算機(jī)系統(tǒng),還包括: 由于在所述活動數(shù)據(jù)庫日志的系統(tǒng)操作期間發(fā)生數(shù)據(jù)庫日志填滿狀況,確定系統(tǒng)故障 或數(shù)據(jù)庫日志狀況的原因的程序指令,其中發(fā)生所述活動數(shù)據(jù)庫日志向所述臨時位置的存 檔,而不暫?;蛑兄顾鰯?shù)據(jù)庫計算系統(tǒng)的系統(tǒng)操作。
10. 根據(jù)權(quán)利要求9所述的計算機(jī)系統(tǒng),其中直到所述活動數(shù)據(jù)庫日志達(dá)到最終活動 數(shù)據(jù)庫日志狀態(tài)才解決所述系統(tǒng)故障或數(shù)據(jù)庫日志狀況的原因,其中當(dāng)所述活動數(shù)據(jù)庫日 志達(dá)到所述最終活動數(shù)據(jù)庫日志狀態(tài)時將所述活動數(shù)據(jù)庫日志存檔在所述臨時位置,以及 其中所述最終活動數(shù)據(jù)庫日志狀態(tài)基于活動數(shù)據(jù)庫日志記錄的另一個閾值計數(shù)。
11. 根據(jù)權(quán)利要求10所述的計算機(jī)系統(tǒng),其中所述臨時位置包括:包括所述活動數(shù)據(jù) 庫日志的數(shù)據(jù)集的記錄;以及包括所述臨時位置的被存檔的活動數(shù)據(jù)庫日志的引導(dǎo)數(shù)據(jù)的 數(shù)據(jù)集的記錄。
12. 根據(jù)權(quán)利要求8所述的計算機(jī)系統(tǒng),還包括: 確定系統(tǒng)故障或數(shù)據(jù)庫日志狀況是否是由以比所述活動數(shù)據(jù)庫日志被緩存在所述臨 時位置的速度更快的速度生成活動數(shù)據(jù)庫日志的系統(tǒng)線程引起的程序指令;以及 如果所述系統(tǒng)線程以比所述數(shù)據(jù)庫計算系統(tǒng)更快的速度生成所述活動數(shù)據(jù)庫日志的 最終活動數(shù)據(jù)庫日志,則暫停所述系統(tǒng)線程對所述活動數(shù)據(jù)庫日志的生成的程序指令。
13. 根據(jù)權(quán)利要求12所述的計算機(jī)系統(tǒng),其中基于數(shù)據(jù)庫日志歷史表中的所述活動數(shù) 據(jù)庫日志的計數(shù)的閾值,暫停具有最高數(shù)量的活動數(shù)據(jù)庫日志的系統(tǒng)線程,以及其中數(shù)據(jù) 庫日志歷史表維護(hù)活動的和暫停的系統(tǒng)線程的記錄。
14. 根據(jù)權(quán)利要求12所述的計算機(jī)系統(tǒng),其中確定系統(tǒng)故障或數(shù)據(jù)庫日志狀況是否是 由以比所述活動數(shù)據(jù)庫日志被緩存在所述臨時位置的速度更快的速度生成活動數(shù)據(jù)庫日 志的系統(tǒng)線程引起的程序指令還包括: 在數(shù)據(jù)庫日志歷史表中搜索所述數(shù)據(jù)庫計算系統(tǒng)的活動的和暫停的系統(tǒng)線程的記錄 的程序指令;以及 將最終活動數(shù)據(jù)庫日志存檔在所述臨時位置中的程序指令。
【文檔編號】G06F17/30GK104516943SQ201410503040
【公開日】2015年4月15日 申請日期:2014年9月26日 優(yōu)先權(quán)日:2013年9月27日
【發(fā)明者】P·S·普拉布, C·K·維什瓦卡瑪 申請人:國際商業(yè)機(jī)器公司