能夠重新啟動(dòng)事務(wù)的客戶端裝置和數(shù)據(jù)庫服務(wù)器及方法【專利摘要】本發(fā)明涉及能夠重新啟動(dòng)事務(wù)的客戶端裝置和數(shù)據(jù)庫服務(wù)器以及方法,本發(fā)明在單一服務(wù)器以及群集數(shù)據(jù)庫環(huán)境下執(zhí)行事務(wù)時(shí),將事務(wù)分割為可恢復(fù)的單元單位的子集來傳送,因服務(wù)器出現(xiàn)故障而引起的回滾時(shí),按單元單位的倒序,對(duì)所接收的事務(wù)單元執(zhí)行回滾的同時(shí)將檢測到確保一致性的事務(wù)單元的時(shí)間點(diǎn)作為恢復(fù)時(shí)間點(diǎn)來中斷回滾,并保存直到恢復(fù)時(shí)間點(diǎn)為止接收的事務(wù)信息,以使無需從頭開始重新執(zhí)行事務(wù)而能夠從恢復(fù)時(shí)間點(diǎn)之后重新啟動(dòng),從而能夠提高數(shù)據(jù)傳送效率。【專利說明】能夠重新啟動(dòng)事務(wù)的客戶端裝置和數(shù)據(jù)庫服務(wù)器及方法【
技術(shù)領(lǐng)域:
】[0001]本發(fā)明涉及在數(shù)據(jù)庫環(huán)境(databaseenvironment)下進(jìn)行的事務(wù)(transaction)處理,尤其涉及在單一服務(wù)器及群集(clustering)數(shù)據(jù)庫環(huán)境下執(zhí)行事務(wù)時(shí),將事務(wù)分割為可恢復(fù)的單元單位的子集(subset)來傳送,因服務(wù)器出現(xiàn)故障而引起的回滾(rollback)時(shí),按單元單位的倒序,對(duì)所接收的事務(wù)單元執(zhí)行回滾的同時(shí)將檢測到確保一致性(consistency)的事務(wù)單元的時(shí)間點(diǎn)作為恢復(fù)時(shí)間點(diǎn)(resumablepoint)來中斷回滾并保存直到恢復(fù)時(shí)間點(diǎn)為止接收的事務(wù)信息,以使無需從頭開始重新啟動(dòng)事務(wù)而能夠從恢復(fù)時(shí)間點(diǎn)之后重新啟動(dòng)事務(wù),從而能夠提高數(shù)據(jù)傳送效率的可重新啟動(dòng)事務(wù)的客戶端裝置、數(shù)據(jù)庫服務(wù)器及方法。[0002]本發(fā)明從作為知識(shí)經(jīng)濟(jì)部的產(chǎn)業(yè)融合源泉技術(shù)開發(fā)事業(yè)的一環(huán)來執(zhí)行的研究中導(dǎo)出(10040937,用于日本大型計(jì)算機(jī)(日立、富士通)的集成解決方案的開發(fā))?!?br>背景技術(shù):
】[0003]通常,數(shù)據(jù)庫管理系統(tǒng)(DatabaseManagementSystem:DBMS,以下稱為“DBMS”)是指用于管理存儲(chǔ)龐大的量的數(shù)據(jù)的數(shù)據(jù)庫的系統(tǒng)。[0004]在這種數(shù)據(jù)庫管理系統(tǒng)中,以表(table)形態(tài)將所有數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)庫,在這里表是指在數(shù)據(jù)庫中存儲(chǔ)數(shù)據(jù)的基本結(jié)構(gòu),一個(gè)表可由一個(gè)以上的記錄(record)構(gòu)成。[0005]并且,各記錄由一個(gè)以上的列構(gòu)成,列意味著構(gòu)成表的具有實(shí)際上表現(xiàn)表項(xiàng)目的名稱的域名(domain),又稱為屬性(attribute)或字段(field)。[0006]這種數(shù)據(jù)庫管理系統(tǒng)在從外部輸入特定查詢(query)的情況下,根據(jù)所輸入的查詢,執(zhí)行在數(shù)據(jù)庫中選擇、插入、更新、刪除數(shù)據(jù)等功能。在這里,查詢意味著對(duì)存儲(chǔ)于數(shù)據(jù)庫的表的數(shù)據(jù)的某種要求,即是對(duì)于希望對(duì)數(shù)據(jù)進(jìn)行怎樣的操作的記述,利用結(jié)構(gòu)化查詢語言(SQL,StructuredQueryLanguage)等的語言來表現(xiàn)。[0007]另一方面,在如上所述的數(shù)據(jù)庫管理系統(tǒng)中,對(duì)數(shù)據(jù)進(jìn)行插入、刪除、更新等的數(shù)據(jù)操縱語言(DML,DataManipulationLanguage)演算處理時(shí)將會(huì)執(zhí)行事務(wù),這種事務(wù)意味著對(duì)于信息的交換或數(shù)據(jù)庫的更新等的一連的作業(yè)的連續(xù)處理的單位,表現(xiàn)出在保障數(shù)據(jù)庫的完整性的狀態(tài)下用于完成所請(qǐng)求的作業(yè)的基本單位。[0008]但是,在執(zhí)行如上所述的客戶端和數(shù)據(jù)庫服務(wù)器之間的事務(wù)時(shí),出現(xiàn)數(shù)據(jù)庫服務(wù)器的故障的情況下,由于以往無法對(duì)事務(wù)執(zhí)行內(nèi)容進(jìn)行失效轉(zhuǎn)移(fail-over),因而將會(huì)丟失所有未完成的事務(wù)的數(shù)據(jù),從數(shù)據(jù)庫執(zhí)行回滾(rollback)的情況下,存在需要從頭開始重新執(zhí)行事務(wù)的問題。【
發(fā)明內(nèi)容】[0009]因此,本發(fā)明的目的在于,提供在單一服務(wù)器及群集數(shù)據(jù)庫環(huán)境下執(zhí)行事務(wù)時(shí),將事務(wù)分割為可恢復(fù)的單元單位的子集來傳送,因服務(wù)器出現(xiàn)故障而引起的回滾時(shí),按單元單位的倒序,對(duì)所接收的事務(wù)單元執(zhí)行回滾的同時(shí)將檢測到確保一致性的事務(wù)單元的時(shí)間點(diǎn)作為恢復(fù)時(shí)間點(diǎn)(resumabIepoint)來中斷回滾并保存恢復(fù)時(shí)間點(diǎn)為止接收的事務(wù)信息,以使無需從頭開始重新啟動(dòng)事務(wù)而能夠從恢復(fù)時(shí)間點(diǎn)之后重新啟動(dòng)事務(wù),從而能夠提高數(shù)據(jù)傳送效率的可重新啟動(dòng)事務(wù)的客戶端裝置、數(shù)據(jù)庫服務(wù)器及方法。[0010]上述的本發(fā)明作為可重新啟動(dòng)事務(wù)的客戶端裝置,包括:通信部,與數(shù)據(jù)庫服務(wù)器相連接來執(zhí)行與事務(wù)的執(zhí)行相伴的數(shù)據(jù)收發(fā);單元構(gòu)成部,由事務(wù)單元構(gòu)成,上述事務(wù)單元是將伴隨著上述事務(wù)的執(zhí)行而向上述服務(wù)器傳送的事務(wù)數(shù)據(jù)分割為單元(unit)單位的子集(subset)而成的;以及控制部,向上述服務(wù)器傳送上述事務(wù)單元,在執(zhí)行上述事務(wù)的過程中發(fā)生回滾的情況下,控制為從由上述服務(wù)器提供的確保一致性(consistency)的恢復(fù)時(shí)間點(diǎn)(resumablepoint)之后的事務(wù)單元起重新啟動(dòng)上述事務(wù)。[0011]并且,本發(fā)明的特征在于,上述單元構(gòu)成部以結(jié)構(gòu)化查詢語言語句(statement)為單位或者以批量緩沖區(qū)(batchbuffer)為基準(zhǔn),將上述事務(wù)分割為子集來構(gòu)成上述事務(wù)單JLiο[0012]并且,本發(fā)明的特征在于,上述單元構(gòu)成部向上述子集賦予序列(sequence)號(hào)。[0013]并且,本發(fā)明的特征在于,上述事務(wù)以結(jié)構(gòu)化查詢語言的形態(tài)或批量(batch)形態(tài)構(gòu)成。[0014]并且,本發(fā)明的特征在于,上述客戶端裝置還包括緩存部,上述緩存部用于存儲(chǔ)向上述服務(wù)器傳送的事務(wù)單元。[0015]并且,本發(fā)明的特征在于,在重新啟動(dòng)上述事務(wù)時(shí),上述控制部從上述緩存部中從上述恢復(fù)時(shí)間點(diǎn)之后的事務(wù)單元起依次讀取事務(wù)單元并重新傳送。[0016]并且,本發(fā)明作為可重新啟動(dòng)事務(wù)的數(shù)據(jù)庫服務(wù)器,包括:通信部,與客戶端裝置相連接來執(zhí)行與事務(wù)的執(zhí)行相伴的數(shù)據(jù)收發(fā);數(shù)據(jù)處理部,伴隨著上述事務(wù)的執(zhí)行而接收從上述客戶端裝置傳送的被分割為單元單位的子集的事務(wù)單元,并以上述單元單位處理事務(wù)信息;恢復(fù)部,在執(zhí)行上述事務(wù)的過程中發(fā)生回滾的情況下,一邊按事務(wù)單元單位的倒序?qū)ι鲜鍪聞?wù)執(zhí)行回滾,一邊生成用于重新啟動(dòng)上述事務(wù)的恢復(fù)時(shí)間點(diǎn);控制部,在無法執(zhí)行上述事務(wù)的情況下,通過上述恢復(fù)部對(duì)上述事務(wù)執(zhí)行回滾,在重新連接到上述客戶端裝置時(shí),提供上述恢復(fù)時(shí)間點(diǎn),接收上述恢復(fù)時(shí)間點(diǎn)之后的事務(wù)單元來重新啟動(dòng)上述事務(wù)。[0017]并且,本發(fā)明的特征在于,上述恢復(fù)部在執(zhí)行上述回滾的同時(shí)搜索確保一致性的事務(wù)單元,將上述確保一致性的事務(wù)單元的搜索時(shí)間點(diǎn)生成為用于重新啟動(dòng)上述事務(wù)的恢復(fù)時(shí)間點(diǎn)。[0018]并且,本發(fā)明的特征在于,上述恢復(fù)部執(zhí)行回滾直至搜索到上述確保一致性的事務(wù)單元的時(shí)間點(diǎn)。[0019]并且,本發(fā)明的特征在于,上述恢復(fù)部保存上述恢復(fù)時(shí)間點(diǎn)之前時(shí)間點(diǎn)的事務(wù)單JLiο[0020]并且,本發(fā)明的特征在于,上述數(shù)據(jù)處理部將能夠識(shí)別各事務(wù)單元的識(shí)別信息與相關(guān)事務(wù)單兀一起存儲(chǔ)。[0021]并且,本發(fā)明的特征在于,上述識(shí)別信息設(shè)定為能夠識(shí)別上述事務(wù)單元的一致性。[0022]并且,本發(fā)明作為重新啟動(dòng)事務(wù)的方法,包括:在與數(shù)據(jù)庫服務(wù)器執(zhí)行事務(wù)時(shí),將向上述數(shù)據(jù)庫服務(wù)器傳送的事務(wù)數(shù)據(jù)分割為單元單位的子集來構(gòu)成事務(wù)單元的步驟;伴隨著上述事務(wù)的執(zhí)行,向上述服務(wù)器傳送上述事務(wù)單元的步驟;在執(zhí)行上述事務(wù)的過程中發(fā)生回滾的情況下,從上述服務(wù)器接收用于重新啟動(dòng)上述事務(wù)的確保一致性的恢復(fù)時(shí)間點(diǎn)的步驟;以及傳送重新啟動(dòng)事務(wù)請(qǐng)求的步驟,重新連接到上述服務(wù)器時(shí),為了從上述恢復(fù)時(shí)間點(diǎn)之后起重新啟動(dòng)上述事務(wù)而向上述服務(wù)器傳送重新啟動(dòng)事務(wù)請(qǐng)求。[0023]并且,本發(fā)明的特征在于,上述事務(wù)單元以結(jié)構(gòu)化查詢語言語句為單位或者以批量緩沖區(qū)為基準(zhǔn)分割為子集。[0024]并且,本發(fā)明的特征在于,上述子集各自分配有序列號(hào)。[0025]并且,本發(fā)明的特征在于,上述傳送重新啟動(dòng)事務(wù)請(qǐng)求的步驟包括:從存儲(chǔ)向上述服務(wù)器傳送的事務(wù)單元的緩存部檢測上述恢復(fù)時(shí)間點(diǎn)之后的事務(wù)單元的步驟;從檢測到的上述事務(wù)單元依次讀取并重新傳送的步驟。[0026]并且,本發(fā)明作為重新啟動(dòng)事務(wù)的方法,包括以下步驟:與客戶端裝置執(zhí)行事務(wù)的步驟;在執(zhí)行上述事務(wù)時(shí),接收分割為單元單位的子集的事務(wù)單元,以單元單位處理事務(wù)信息的步驟;在執(zhí)行上述事務(wù)的過程中發(fā)生回滾時(shí),按事務(wù)單元單位的倒序?qū)ι鲜鍪聞?wù)執(zhí)行回滾的步驟;生成恢復(fù)時(shí)間點(diǎn)的步驟,在執(zhí)行上述回滾的同時(shí),生成用于重新啟動(dòng)上述事務(wù)的恢復(fù)時(shí)間點(diǎn);在重新連接到上述客戶端裝置時(shí),提供上述恢復(fù)時(shí)間點(diǎn)的步驟;接收上述恢復(fù)時(shí)間點(diǎn)之后的事務(wù)單元來重新啟動(dòng)上述事務(wù)的步驟。[0027]并且,本發(fā)明的特征在于,上述生成恢復(fù)時(shí)間點(diǎn)的步驟包括:在執(zhí)行上述回滾的同時(shí)搜索確保一致性的事務(wù)單元的步驟;將上述確保一致性的事務(wù)單元的搜索時(shí)間點(diǎn)生成為用于重新啟動(dòng)上述事務(wù)的恢復(fù)時(shí)間點(diǎn)的步驟。[0028]并且,本發(fā)明的特征在于,上述生成恢復(fù)時(shí)間點(diǎn)的步驟之后,還包括保存上述恢復(fù)時(shí)間點(diǎn)之前時(shí)間點(diǎn)的事務(wù)單元的步驟。[0029]本發(fā)明具有如下優(yōu)點(diǎn):在單一服務(wù)器以及群集數(shù)據(jù)庫環(huán)境下執(zhí)行事務(wù)時(shí),將事務(wù)分割為以可恢復(fù)的單元單位的子集來傳送,在因服務(wù)器出現(xiàn)故障而引起的回滾時(shí),按單元單位的倒序,對(duì)所接收的事務(wù)單元執(zhí)行回滾的同時(shí)將檢測到確保一致性的事務(wù)單元的時(shí)間點(diǎn)作為恢復(fù)時(shí)間點(diǎn)來中斷回滾并保存直到恢復(fù)時(shí)間點(diǎn)為止接收的事務(wù)信息,以使無需從頭開始重新執(zhí)行事務(wù)而能夠從恢復(fù)時(shí)間點(diǎn)之后重新啟動(dòng),從而能夠提高數(shù)據(jù)傳送效率?!緦@綀D】【附圖說明】[0030]圖1為本發(fā)明實(shí)施例的可重新啟動(dòng)事務(wù)的客戶端、服務(wù)器網(wǎng)絡(luò)結(jié)構(gòu)圖。[0031]圖2為本發(fā)明實(shí)施例的在客戶端裝置中用于重新啟動(dòng)事務(wù)的工作控制流程圖。[0032]圖3為本發(fā)明實(shí)施例的在數(shù)據(jù)庫服務(wù)器中用于重新啟動(dòng)事務(wù)的工作控制流程圖?!揪唧w實(shí)施方式】[0033]以下,參照附圖對(duì)本發(fā)明的工作原理進(jìn)行詳細(xì)說明。在以下內(nèi)容中,若判斷為在說明本發(fā)明的方面對(duì)公知的功能或結(jié)構(gòu)的具體說明有可能不必要地使本發(fā)明的主旨模糊的情況下,將省略該詳細(xì)說明。而且,后述的術(shù)語為考慮本發(fā)明中的功能來定義的術(shù)語,這可根據(jù)使用者、應(yīng)用人員的意圖或慣例等而不同。因此,該定義應(yīng)以本說明書的全部內(nèi)容為基礎(chǔ)來定立。[0034]圖1為本發(fā)明實(shí)施例的可重新啟動(dòng)事務(wù)的客戶端裝置100及數(shù)據(jù)庫服務(wù)器150的網(wǎng)絡(luò)結(jié)構(gòu)圖。[0035]以下,參照?qǐng)D1詳細(xì)說明本發(fā)明的實(shí)施例的在單一服務(wù)器及群集數(shù)據(jù)庫環(huán)境下重新啟動(dòng)事務(wù)的工作。[0036]首先,客戶端裝置100是指通過通信網(wǎng)與數(shù)據(jù)庫服務(wù)器150連接來能夠搜索、變更數(shù)據(jù)的使用者終端裝置,在與數(shù)據(jù)庫服務(wù)器150相連接的情況下,能夠執(zhí)行用于插入、刪除或更新數(shù)據(jù)庫(database)162內(nèi)的數(shù)據(jù)的事務(wù)。[0037]此時(shí),如上所述的事務(wù)在客戶端裝置100和數(shù)據(jù)庫服務(wù)器150之間執(zhí)行事務(wù)時(shí),在數(shù)據(jù)庫服務(wù)器150出現(xiàn)故障的情況下,以往由于無法對(duì)事務(wù)執(zhí)行內(nèi)容進(jìn)行失效轉(zhuǎn)移(fail-over),因而將會(huì)丟失全部未完成的事務(wù)的數(shù)據(jù),并且如上所述地存在著在數(shù)據(jù)庫服務(wù)器150執(zhí)行回滾的情況下需要從頭開始重新執(zhí)行事務(wù)的問題。[0038]因此,在本發(fā)明的實(shí)施例中通過在客戶端裝置100中以將事務(wù)分割為可恢復(fù)的單元(unit)單位的子集來傳送的方式執(zhí)行事務(wù),對(duì)向數(shù)據(jù)庫服務(wù)器150傳送的事務(wù)的子集進(jìn)行緩存(caching)來存儲(chǔ),從而在因數(shù)據(jù)庫服務(wù)器150出現(xiàn)故障而引起的回滾時(shí),從數(shù)據(jù)庫服務(wù)器150接收一致性得到認(rèn)證的子集的恢復(fù)時(shí)間點(diǎn)信息,不再重新執(zhí)行全部事務(wù)而以僅重新傳送恢復(fù)時(shí)間點(diǎn)之后的子集的方式來能夠重新啟動(dòng)事務(wù)。[0039]以下,通過對(duì)客戶端裝置100的各結(jié)構(gòu)要素的工作說明來更為詳細(xì)地說明如上所述的客戶端裝置100的工作。[0040]通信部102通過通信網(wǎng)將客戶端裝置100連接到數(shù)據(jù)庫服務(wù)器150,并使得伴隨著客戶端裝置100和數(shù)據(jù)庫服務(wù)器150之間的事務(wù)的執(zhí)行而收發(fā)的數(shù)據(jù)進(jìn)行連接(interface)。[0041]單元構(gòu)成部104將伴隨著事務(wù)的執(zhí)行而從客戶端裝置100向數(shù)據(jù)庫服務(wù)器150傳送的事務(wù)數(shù)據(jù)分割為單元單位的子集。即,單元構(gòu)成部104以結(jié)構(gòu)化查詢語言的語句為單位或者以批量緩沖區(qū)為單位,將從客戶端裝置100向數(shù)據(jù)庫服務(wù)器150傳送的結(jié)構(gòu)化查詢語言形態(tài)或批量形態(tài)的事務(wù)分割為子集,并賦予序列號(hào)。[0042]如上所述,在單元構(gòu)成部104分割為子集并被賦予序列號(hào)的事務(wù)單元伴隨著客戶端裝置100和數(shù)據(jù)庫服務(wù)器150之間的事務(wù)的執(zhí)行,通過客戶端裝置100的通信部向數(shù)據(jù)庫服務(wù)器150傳送。[0043]緩存部106以單元單位存儲(chǔ)如上所述地伴隨著事務(wù)的執(zhí)行而向數(shù)據(jù)庫服務(wù)器150傳送的事務(wù)單元。[0044]控制部108伴隨著存儲(chǔ)于存儲(chǔ)部110的工作控制程序而控制客戶端裝置100的整體工作,并且根據(jù)本發(fā)明的實(shí)施例,控制用于重新啟動(dòng)與數(shù)據(jù)庫服務(wù)器150的事務(wù)的各部的工作。[0045]S卩,控制部108使得伴隨著事務(wù)的執(zhí)行而通過單元構(gòu)成部104并伴隨著事務(wù)的執(zhí)行而向數(shù)據(jù)庫服務(wù)器150傳送的數(shù)據(jù)向事務(wù)單元傳送,并將如此傳送的事務(wù)單元存儲(chǔ)于緩存部106使得在因數(shù)據(jù)庫服務(wù)器150出現(xiàn)故障而引起的回滾時(shí),不再從頭開始重新執(zhí)行事務(wù)而從由數(shù)據(jù)庫服務(wù)器150提供的確保一致性的恢復(fù)時(shí)間點(diǎn)之后的事務(wù)單元起重新啟動(dòng)事務(wù),從而能夠提高數(shù)據(jù)傳送效率。[0046]并且,控制部108能夠從數(shù)據(jù)庫服務(wù)器150將一貫的并永久性地結(jié)束反映的時(shí)間點(diǎn)或事務(wù)單元的號(hào)碼接收為響應(yīng)信息,利用對(duì)于在服務(wù)器150中結(jié)束反映的事務(wù)單元的信息來在緩存部106去除相關(guān)事務(wù)單元,從而能夠防止在緩存部106由于存儲(chǔ)不必要的信息而浪費(fèi)存儲(chǔ)器。[0047]其次,數(shù)據(jù)庫服務(wù)器150能夠執(zhí)行對(duì)伴隨著與通過通信網(wǎng)連接的客戶端裝置100的事務(wù)的執(zhí)行而在數(shù)據(jù)庫162內(nèi)相關(guān)數(shù)據(jù)的插入、刪除或更新等。[0048]此時(shí),數(shù)據(jù)庫服務(wù)器150與客戶端裝置100執(zhí)行事務(wù)時(shí),由于在數(shù)據(jù)庫服務(wù)器150內(nèi)出現(xiàn)故障等而無法完成事務(wù)的情況下,數(shù)據(jù)庫服務(wù)器150以往對(duì)相關(guān)事務(wù)執(zhí)行回滾,從頭開始重新執(zhí)行事務(wù),由此對(duì)基于出現(xiàn)故障前執(zhí)行的事務(wù)的數(shù)據(jù)也全部刪除,從而有可能產(chǎn)生在事務(wù)執(zhí)行過程中的不必要的負(fù)荷。[0049]因此,在本發(fā)明的實(shí)施例中,在數(shù)據(jù)庫服務(wù)器150中,從客戶端裝置100伴隨著事務(wù)的執(zhí)行而傳送的數(shù)據(jù)構(gòu)成為可恢復(fù)的事務(wù)單元的情況下,在恢復(fù)由數(shù)據(jù)庫服務(wù)器150的故障引起的事務(wù)時(shí),并不對(duì)全部事務(wù)執(zhí)行回滾,而是按單元單位的倒序來對(duì)接收的事務(wù)單元執(zhí)行回滾的同時(shí)檢測到確保一致性的事務(wù)單元的情況下,相關(guān)事務(wù)單元保存信息,從恢復(fù)故障后保存的事務(wù)單元起重新執(zhí)行事務(wù),由此可重新啟動(dòng)事務(wù)。[0050]以下,通過在數(shù)據(jù)庫服務(wù)器150的各結(jié)構(gòu)要素中的工作說明來更加詳細(xì)地說明如上所述的數(shù)據(jù)庫服務(wù)器150的工作。[0051]通信部152通過通信網(wǎng)連接客戶端裝置100和數(shù)據(jù)庫服務(wù)器150之間,并使得伴隨著客戶端裝置100和數(shù)據(jù)庫服務(wù)器150之間的事務(wù)的執(zhí)行而收發(fā)的數(shù)據(jù)進(jìn)行連接。并且,可向客戶端裝置100傳送隨著數(shù)據(jù)庫服務(wù)器150出現(xiàn)故障而從數(shù)據(jù)庫服務(wù)器150發(fā)生的回滾命令及重新啟動(dòng)事務(wù)的恢復(fù)時(shí)間點(diǎn)等信息。[0052]數(shù)據(jù)處理部154對(duì)伴隨著客戶端裝置100和數(shù)據(jù)庫服務(wù)器150之間的事務(wù)的執(zhí)行而從客戶端裝置100傳送的可恢復(fù)的單元單位的數(shù)據(jù),即以事務(wù)單元為單位處理事務(wù)信息并進(jìn)行存儲(chǔ)。此時(shí),數(shù)據(jù)處理部154將能夠識(shí)別是否以事務(wù)單元單位有一致性地存儲(chǔ)于數(shù)據(jù)庫162的識(shí)別信息也一并進(jìn)行存儲(chǔ)。[0053]另一方面,在執(zhí)行如上所述的事務(wù)的過程中,因數(shù)據(jù)庫服務(wù)器150出現(xiàn)故障等而無法完成有關(guān)事務(wù)的情況下,在數(shù)據(jù)庫服務(wù)器150中執(zhí)行回滾。[0054]在對(duì)如上所述的未完成的事務(wù)執(zhí)行回滾的情況下,與以往從頭開始重新啟動(dòng)事務(wù)的工作不同,恢復(fù)部156按事務(wù)單元單位的倒序執(zhí)行回滾,而不是對(duì)全部事務(wù)進(jìn)行回滾。[0055]S卩,恢復(fù)部156在按事務(wù)單元單位的倒序執(zhí)行回滾的同時(shí)搜索確保一致性的事務(wù)單元,并在檢測出確保一致性的事務(wù)單元的情況下中斷回滾,相關(guān)當(dāng)前事務(wù)單元保存信息,并將中斷回滾的時(shí)間點(diǎn)生成為恢復(fù)時(shí)間點(diǎn)(resumablepoint)。在恢復(fù)故障后重新連接客戶端裝置100的情況下,向客戶端裝置100提供如此生成的有關(guān)恢復(fù)時(shí)間點(diǎn)的信息,以使在客戶端裝置100從恢復(fù)時(shí)間點(diǎn)之后起可重新啟動(dòng)事務(wù)。[0056]控制部158伴隨著存儲(chǔ)于存儲(chǔ)部160的工作控制程序來控制數(shù)據(jù)庫服務(wù)器150的整體工作,并且,根據(jù)本發(fā)明的實(shí)施例控制用于重新啟動(dòng)與客戶端裝置100的事務(wù)的各部的工作。[0057]S卩,在恢復(fù)因數(shù)據(jù)庫服務(wù)器150出現(xiàn)故障而引起的事務(wù)時(shí),控制部158并不對(duì)全部事務(wù)執(zhí)行回滾,而是按單元單位的倒序?qū)νㄟ^恢復(fù)部156接收的事務(wù)單元執(zhí)行回滾的同時(shí)檢測到確保一致性的事務(wù)單元的情況下,相關(guān)事務(wù)單元保存信息,并從恢復(fù)故障后存儲(chǔ)的事務(wù)單元之后起重新執(zhí)行事務(wù)來使得能夠重新啟動(dòng)事務(wù)。[0058]圖2為本發(fā)明實(shí)施例的在客戶端裝置100中用于重新啟動(dòng)事務(wù)的工作控制流程圖,以下參照?qǐng)D1及圖2,對(duì)本發(fā)明的實(shí)施例進(jìn)行詳細(xì)說明。[0059]首先,在客戶端裝置100和數(shù)據(jù)庫服務(wù)器之間執(zhí)行事務(wù)的情況下,客戶端裝置100的控制部108控制單元構(gòu)成部104來構(gòu)成將向數(shù)據(jù)庫服務(wù)器150傳送的事務(wù)數(shù)據(jù)分割為單元單位的子集的事務(wù)單元(步驟S200)。[0060]S卩,單元構(gòu)成部104以結(jié)構(gòu)化查詢語言的語句為單位或者以批量的緩沖區(qū)為基準(zhǔn),將從客戶端裝置100向數(shù)據(jù)庫服務(wù)器150傳送的結(jié)構(gòu)化查詢語言形態(tài)或批量形態(tài)的事務(wù)分割為子集并賦予序列號(hào)來構(gòu)成事務(wù)單元。[0061]接著,控制部108伴隨著客戶端裝置100和數(shù)據(jù)庫服務(wù)器150之間的事務(wù)的執(zhí)行而向數(shù)據(jù)庫服務(wù)器150傳送如上所述地在單元構(gòu)成部104分割為子集并被賦予序列號(hào)的事務(wù)單元(步驟S202)。[0062]并且,應(yīng)對(duì)重新啟動(dòng)事務(wù),控制部108以單元單位將伴隨著客戶端裝置100和數(shù)據(jù)庫服務(wù)器150之間的事務(wù)的執(zhí)行而傳送的事務(wù)單元存儲(chǔ)于緩存部106(步驟S204)。[0063]另一方面,如上所述地在客戶端裝置100和數(shù)據(jù)庫服務(wù)器150之間執(zhí)行事務(wù)的過程中,有可能產(chǎn)生由于數(shù)據(jù)庫服務(wù)器150產(chǎn)生故障等而無法執(zhí)行事務(wù)的情況(S206)。[0064]像這樣,在數(shù)據(jù)庫服務(wù)器150出現(xiàn)故障等的情況下,中斷未完成的事務(wù)執(zhí)行,在恢復(fù)數(shù)據(jù)庫服務(wù)器150的故障之后,在客戶端裝置100重新與數(shù)據(jù)庫服務(wù)器150連接的時(shí)間點(diǎn),通過回滾來重新開始執(zhí)行事務(wù)。[0065]此時(shí),在本發(fā)明中,并不是從頭開始重新啟動(dòng)在出現(xiàn)故障的數(shù)據(jù)庫服務(wù)器150中未完成的數(shù)據(jù),而是按事務(wù)單元單位的倒序執(zhí)行回滾來檢測到確保一致性的恢復(fù)時(shí)間點(diǎn)后,重新接收恢復(fù)時(shí)間點(diǎn)之后的事務(wù)單元來完成事務(wù),此時(shí),數(shù)據(jù)庫服務(wù)器150在相關(guān)客戶端裝置重新連接的情況下提供如上檢測到的恢復(fù)時(shí)間點(diǎn),以重新啟動(dòng)事務(wù)。[0066]S卩,客戶端裝置100的控制部108在伴隨著恢復(fù)數(shù)據(jù)庫服務(wù)器150的故障而重新連接后(步驟S208),從數(shù)據(jù)庫服務(wù)器150接收用于重新啟動(dòng)事務(wù)的有關(guān)恢復(fù)時(shí)間點(diǎn)的信息(步驟S210)。[0067]由此,控制部108在因數(shù)據(jù)庫服務(wù)器150出現(xiàn)故障而引起的回滾時(shí),并不從頭開始重新執(zhí)行事務(wù),而是從由數(shù)據(jù)庫服務(wù)器150提供的確保一致性的恢復(fù)時(shí)間點(diǎn)之后的事務(wù)單元起重新啟動(dòng)事務(wù),從而能夠提高數(shù)據(jù)傳送的效率。[0068]圖3為本發(fā)明實(shí)施例的在數(shù)據(jù)庫服務(wù)器150中用于重新啟動(dòng)事務(wù)的工作控制流程圖,以下,參照?qǐng)D1及圖3來詳細(xì)說明本發(fā)明的實(shí)施例。[0069]首先,在與客戶端裝置100執(zhí)行事務(wù)的情況下,數(shù)據(jù)庫服務(wù)器150的控制部158通過通信部152接收為了重新啟動(dòng)事務(wù)以單元為單位分割而被傳送的事務(wù)單元(步驟S300)。[0070]接著,控制部158控制數(shù)據(jù)處理部154來以事務(wù)單元為單位處理事務(wù)信息并存儲(chǔ),此時(shí),可將能夠識(shí)別是否以事務(wù)單元為單位來向數(shù)據(jù)庫服務(wù)器162有一致性地執(zhí)行存儲(chǔ)的識(shí)別信息也一并進(jìn)行存儲(chǔ)(步驟S302)。[0071]另一方面,在如上所述的事務(wù)執(zhí)行過程中,有可能產(chǎn)生因數(shù)據(jù)庫服務(wù)器150出現(xiàn)故障等而無法完成相關(guān)事務(wù)的情況,在這種情況下,控制部158執(zhí)行回滾來重新執(zhí)行未完成的事務(wù)(步驟S304)。[0072]在執(zhí)行如上所述的回滾中,以往用客戶端裝置100從頭開始重新啟動(dòng)相關(guān)事務(wù),但是在本發(fā)明的實(shí)施例中,與以往不同,并不對(duì)全部事務(wù)進(jìn)行回滾而是控制恢復(fù)部156來按事務(wù)單元單位的倒序執(zhí)行回滾(步驟S306)。[0073]S卩,恢復(fù)部156伴隨著控制部158的控制而按事務(wù)單元單位的倒序執(zhí)行回滾的同時(shí)搜索確保一致性的事務(wù)單元,在檢測到確保一致性的事務(wù)單元的情況下,中斷回滾,并將該時(shí)間點(diǎn)生成為恢復(fù)時(shí)間點(diǎn)(步驟S308)。[0074]并且,恢復(fù)部156使中斷回滾的時(shí)間點(diǎn)的相關(guān)事務(wù)單元保存信息。接著,恢復(fù)數(shù)據(jù)庫服務(wù)器150的故障后,重新連接相關(guān)客戶端裝置的情況下,控制部158向客戶端裝置100提供如上所述通過恢復(fù)部156生成的恢復(fù)時(shí)間點(diǎn),以使在客戶端裝置100中從恢復(fù)時(shí)間點(diǎn)之后起重新啟動(dòng)事務(wù)。[0075]如上所述,在單一服務(wù)器以及群集數(shù)據(jù)庫環(huán)境下執(zhí)行事務(wù)時(shí),將事務(wù)分割為可恢復(fù)的單元單位的子集來傳送,在因服務(wù)器出現(xiàn)故障而引起的回滾時(shí),按單元單位的倒序,對(duì)所接收的事務(wù)單元執(zhí)行回滾的同時(shí)將檢測到確保一致性的事務(wù)單元的時(shí)間點(diǎn)作為恢復(fù)時(shí)間點(diǎn)來中斷回滾并保存直到恢復(fù)時(shí)間點(diǎn)為止接收的事務(wù)信息,以使無需從頭開始重新執(zhí)行事務(wù)而能夠從恢復(fù)時(shí)間點(diǎn)之后起重新啟動(dòng),從而能夠提高數(shù)據(jù)傳送效率。[0076]另一方面,在上述的本發(fā)明的說明中對(duì)具體的實(shí)施例進(jìn)行了說明,但是在不脫離本發(fā)明的范圍的情況下可實(shí)施多種變形。因此,本發(fā)明的范圍不應(yīng)由所說明的實(shí)施例來決定,而應(yīng)由權(quán)利要求書來決定?!緳?quán)利要求】1.一種能夠重新啟動(dòng)事務(wù)的客戶端裝置,其特征在于,包括:通信部,與數(shù)據(jù)庫服務(wù)器相連接來執(zhí)行與事務(wù)的執(zhí)行相伴的數(shù)據(jù)收發(fā);單元構(gòu)成部,由事務(wù)單元構(gòu)成,上述事務(wù)單元是將伴隨著上述事務(wù)的執(zhí)行而向上述服務(wù)器傳送的事務(wù)數(shù)據(jù)分割為單元單位的子集而成的;以及控制部,向上述服務(wù)器傳送上述事務(wù)單元,在執(zhí)行上述事務(wù)的過程中發(fā)生回滾的情況下,控制為從由上述服務(wù)器提供的確保一致性的恢復(fù)時(shí)間點(diǎn)之后的事務(wù)單元起重新啟動(dòng)上述事務(wù)。2.根據(jù)權(quán)利要求1所述的能夠重新啟動(dòng)事務(wù)的客戶端裝置,其特征在于,上述單元構(gòu)成部以結(jié)構(gòu)化查詢語言語句為單位或者以批量緩沖區(qū)為基準(zhǔn),將上述事務(wù)分割為子集來構(gòu)成上述事務(wù)單元。3.根據(jù)權(quán)利要求2所述的能夠重新啟動(dòng)事務(wù)的客戶端裝置,其特征在于,上述單元構(gòu)成部向上述子集賦予序列號(hào)。4.根據(jù)權(quán)利要求2所述的能夠重新啟動(dòng)事務(wù)的客戶端裝置,其特征在于,上述事務(wù)以結(jié)構(gòu)化查詢語言的形態(tài)或批量形態(tài)構(gòu)成。5.根據(jù)權(quán)利要求1所述的能夠重新啟動(dòng)事務(wù)的客戶端裝置,其特征在于,上述客戶端裝置還包括緩存部,上述緩存部用于存儲(chǔ)向上述服務(wù)器傳送的事務(wù)單元。6.根據(jù)權(quán)利要求5所述的能夠重新啟動(dòng)事務(wù)的客戶端裝置,其特征在于,在重新啟動(dòng)上述事務(wù)時(shí),上述控制部從上述緩存部中從上述恢復(fù)時(shí)間點(diǎn)之后的事務(wù)單元起依次讀取事務(wù)單元并重新傳送。7.—種能夠重新啟動(dòng)事務(wù)的數(shù)據(jù)庫服務(wù)器,其特征在于,包括:通信部,與客戶端裝置相連接來執(zhí)行與事務(wù)的執(zhí)行相伴的數(shù)據(jù)收發(fā);數(shù)據(jù)處理部,伴隨著上述事務(wù)的執(zhí)行而接收從上述客戶端裝置傳送的被分割為單元單位的子集的事務(wù)單元,并以上述單元單位處理事務(wù)信息;恢復(fù)部,在執(zhí)行上述事務(wù)的過程中發(fā)生回滾的情況下,一邊按事務(wù)單元單位的倒序?qū)ι鲜鍪聞?wù)執(zhí)行回滾,一邊生成用于重新啟動(dòng)上述事務(wù)的恢復(fù)時(shí)間點(diǎn);控制部,在無法執(zhí)行上述事務(wù)的情況下,通過上述恢復(fù)部對(duì)上述事務(wù)執(zhí)行回滾,在重新連接到上述客戶端裝置時(shí),提供上述恢復(fù)時(shí)間點(diǎn),接收上述恢復(fù)時(shí)間點(diǎn)之后的事務(wù)單元來重新啟動(dòng)上述事務(wù)。8.根據(jù)權(quán)利要求7所述的能夠重新啟動(dòng)事務(wù)的數(shù)據(jù)庫服務(wù)器,其特征在于,上述恢復(fù)部在執(zhí)行上述回滾的同時(shí)搜索確保一致性的事務(wù)單元,將上述確保一致性的事務(wù)單元的搜索時(shí)間點(diǎn)生成為用于重新啟動(dòng)上述事務(wù)的恢復(fù)時(shí)間點(diǎn)。9.根據(jù)權(quán)利要求8所述的能夠重新啟動(dòng)事務(wù)的數(shù)據(jù)庫服務(wù)器,其特征在于,上述恢復(fù)部執(zhí)行回滾直至搜索到上述確保一致性的事務(wù)單元的時(shí)間點(diǎn)。10.根據(jù)權(quán)利要求8所述的能夠重新啟動(dòng)事務(wù)的數(shù)據(jù)庫服務(wù)器,其特征在于,上述恢復(fù)部保存上述恢復(fù)時(shí)間點(diǎn)之前時(shí)間點(diǎn)的事務(wù)單元。11.根據(jù)權(quán)利要求7所述的能夠重新啟動(dòng)事務(wù)的數(shù)據(jù)庫服務(wù)器,其特征在于,上述數(shù)據(jù)處理部將能夠識(shí)別各事務(wù)單元的識(shí)別信息與相關(guān)事務(wù)單元一起存儲(chǔ)。12.根據(jù)權(quán)利要求11所述的能夠重新啟動(dòng)事務(wù)的數(shù)據(jù)庫服務(wù)器,其特征在于,上述識(shí)別信息設(shè)定為能夠識(shí)別上述事務(wù)單元的一致性。13.—種重新啟動(dòng)事務(wù)的方法,其特征在于,包括:在與數(shù)據(jù)庫服務(wù)器執(zhí)行事務(wù)時(shí),將向上述數(shù)據(jù)庫服務(wù)器傳送的事務(wù)數(shù)據(jù)分割為單元單位的子集來構(gòu)成事務(wù)單元的步驟;伴隨著上述事務(wù)的執(zhí)行,向上述服務(wù)器傳送上述事務(wù)單元的步驟;在執(zhí)行上述事務(wù)的過程中發(fā)生回滾的情況下,從上述服務(wù)器接收用于重新啟動(dòng)上述事務(wù)的確保一致性的恢復(fù)時(shí)間點(diǎn)的步驟;以及傳送重新啟動(dòng)事務(wù)請(qǐng)求的步驟,重新連接到上述服務(wù)器時(shí),為了從上述恢復(fù)時(shí)間點(diǎn)之后起重新啟動(dòng)上述事務(wù)而向上述服務(wù)器傳送重新啟動(dòng)事務(wù)請(qǐng)求。14.根據(jù)權(quán)利要求13所述的重新啟動(dòng)事務(wù)的方法,其特征在于,上述事務(wù)單元以結(jié)構(gòu)化查詢語言語句為單位或者以批量緩沖區(qū)為基準(zhǔn)分割為子集。15.根據(jù)權(quán)利要求14所述的重新啟動(dòng)事務(wù)的方法,其特征在于,上述子集各自分配有序列號(hào)。16.根據(jù)權(quán)利要求13所述的重新啟動(dòng)事務(wù)的方法,其特征在于,上述傳送重新啟動(dòng)事務(wù)請(qǐng)求的步驟包括:從存儲(chǔ)向上述服務(wù)器傳送的事務(wù)單元的緩存部檢測上述恢復(fù)時(shí)間點(diǎn)之后的事務(wù)單元的步驟;從檢測到的上述事務(wù)單元依次讀取并重新傳送的步驟。17.—種重新啟動(dòng)事務(wù)的方法,其特征在于,包括:與客戶端裝置執(zhí)行事務(wù)的步驟;在執(zhí)行上述事務(wù)時(shí),接收分割為單元單位的子集的事務(wù)單元,以單元單位處理事務(wù)信息的步驟;在執(zhí)行上述事務(wù)的過程中發(fā)生回滾時(shí),按事務(wù)單元單位的倒序?qū)ι鲜鍪聞?wù)執(zhí)行回滾的步驟;生成恢復(fù)時(shí)間點(diǎn)的步驟,在執(zhí)行上述回滾的同時(shí),生成用于重新啟動(dòng)上述事務(wù)的恢復(fù)時(shí)間點(diǎn);在重新連接到上述客戶端裝置時(shí),提供上述恢復(fù)時(shí)間點(diǎn)的步驟;接收上述恢復(fù)時(shí)間點(diǎn)之后的事務(wù)單元來重新啟動(dòng)上述事務(wù)的步驟。18.根據(jù)權(quán)利要求17所述的重新啟動(dòng)事務(wù)的方法,其特征在于,上述生成恢復(fù)時(shí)間點(diǎn)的步驟包括:在執(zhí)行上述回滾的同時(shí)搜索確保一致性的事務(wù)單元的步驟;將上述確保一致性的事務(wù)單元的搜索時(shí)間點(diǎn)生成為用于重新啟動(dòng)上述事務(wù)的恢復(fù)時(shí)間點(diǎn)的步驟。19.根據(jù)權(quán)利要求17所述的重新啟動(dòng)事務(wù)的方法,其特征在于,上述生成恢復(fù)時(shí)間點(diǎn)的步驟之后,還包括保存上述恢復(fù)時(shí)間點(diǎn)之前時(shí)間點(diǎn)的事務(wù)單元的步驟?!疚臋n編號(hào)】G06F17/30GK103729391SQ201310349377【公開日】2014年4月16日申請(qǐng)日期:2013年8月12日優(yōu)先權(quán)日:2012年10月12日【發(fā)明者】金哲宇,樸相永,黃昌浩申請(qǐng)人:株式會(huì)社特博睿