時間:2022-12-19 22:30:01 | 來源:信息時代
時間:2022-12-19 22:30:01 來源:信息時代
分布式可靠性 : 研究分布式數(shù)據(jù)庫的故障恢復(fù)問題,并為此提出的分布式數(shù)據(jù)庫的恢復(fù)方法。數(shù)據(jù)庫恢復(fù)是保證數(shù)據(jù)庫系統(tǒng)滿足各種應(yīng)用不可缺少的重要組成部分。盡管計算機系統(tǒng)可靠性在不斷提高,數(shù)據(jù)庫系統(tǒng)中也采用了很多措施和方法來保證數(shù)據(jù)庫系統(tǒng)的正常運行,但系統(tǒng)仍不可避免地會出現(xiàn)這樣或那樣的故障,導致數(shù)據(jù)庫中數(shù)據(jù)丟失或被破壞。因此,數(shù)據(jù)庫系統(tǒng)必須采取相應(yīng)的恢復(fù)措施,把數(shù)據(jù)庫系統(tǒng)從故障狀態(tài)恢復(fù)到一致性的正確狀態(tài)。
1.分布式數(shù)據(jù)庫系統(tǒng)中的故障
分布式數(shù)據(jù)庫系統(tǒng)主要由場地及場地間的通信鏈路組成。因此,在分布式數(shù)據(jù)庫系統(tǒng)中,除了會發(fā)生集中式數(shù)據(jù)庫系統(tǒng)中的故障外,還會發(fā)生分布式數(shù)據(jù)庫系統(tǒng)特有的故障,如: 通信鏈路故障等。根據(jù)分布式數(shù)據(jù)庫特點,其故障類型可歸納為:
(1)事務(wù)故障: 主要由系統(tǒng)單個事務(wù)或系統(tǒng)死鎖引起的,使事務(wù)被廢棄。如: 算術(shù)溢出、被零除、超時、申請資源過多等。通常一個系統(tǒng)約有3%的事務(wù)被異常廢棄。這一類故障不會導致存儲介質(zhì)上的數(shù)據(jù)被破壞,是一種影響性較小的可排除性的局部故障,由系統(tǒng)恢復(fù)機制自動恢復(fù)或重新啟動事務(wù)來恢復(fù)。
(2)系統(tǒng)(場地)故障: 主要由處理器、主存、電源、系統(tǒng)過載和系統(tǒng)崩潰等造成的,往往涉及多個或全部事務(wù),造成系統(tǒng)局部或系統(tǒng)全部出現(xiàn)故障。這類故障使主存的內(nèi)容丟失,但外存的內(nèi)容是安全的。
(3)介質(zhì)故障: 是由外存設(shè)備故障引起的,如:磁頭壞、驅(qū)動卡壞、扇區(qū)壞等。這類故障對數(shù)據(jù)庫系統(tǒng)是致命的,導致外存數(shù)據(jù)部分或全部丟失。
(4)通信故障: 主要指報文丟失和網(wǎng)絡(luò)分割這兩種故障。報文丟失指在傳送過程中由于報文丟失而導致的數(shù)據(jù)錯誤。網(wǎng)絡(luò)分割指系統(tǒng)的一個場地與另一場地失去聯(lián)系,使兩場地間無法通信。
若存在兩個結(jié)點A和B,報文丟失指A最大延遲內(nèi)沒有收到B發(fā)來的報文。網(wǎng)絡(luò)分割指網(wǎng)絡(luò)被斷開或存在兩個以上不相連接的子網(wǎng)。如果系統(tǒng)不存在通信故障,則表現(xiàn)出如下情況: ①收到的報文內(nèi)容及報文順序均正確; ②無超時錯誤發(fā)生。無超時錯誤指在發(fā)送報文后,在規(guī)定的延遲時間內(nèi)應(yīng)收到返回的應(yīng)答信息。另外,除網(wǎng)絡(luò)分割可能造成報文丟失外,場地故障也可造成報文丟失。
2.具有恢復(fù)功能的兩段提交協(xié)議
兩段提交(two-phase-commitment,2PC)協(xié)議是將事務(wù)提交分兩個階段: 決定階段和執(zhí)行階段。決定階段是做出提交/廢棄的決定:執(zhí)行階段實現(xiàn)決定階段的決定。2PC協(xié)議具有恢復(fù)場地故障和通信故障的特性。
(1)場地故障恢復(fù): 圖1描述了基于2PC協(xié)議實現(xiàn)場地故障恢復(fù)的過程。其中,C為協(xié)調(diào)者(coordinator); P為參與者(participants); P為預(yù)提交命令(prepare);C/A為提交/廢棄命令(commit/abort);ack為應(yīng)答;R/A為準備提交/準備廢棄(ready/abort)。具體場地故障分析如下: ①故障在參與者場地,參與者在寫R/A記錄之前出錯。此時,協(xié)調(diào)者發(fā)完prepare命令后在規(guī)定時間內(nèi)收不到應(yīng)答信息?;謴?fù):協(xié)調(diào)者發(fā)現(xiàn)超時,做abort處理,即缺省認為收到abort應(yīng)答。②故障在參與者場地,參與者在寫R/A記錄之后,寫A/C記錄之前出錯。恢復(fù): 故障場地重新啟動,向協(xié)調(diào)者或其他場地重新請求命令(A/C)。③故障在協(xié)調(diào)者場地,協(xié)調(diào)者在寫P記錄之后,寫A/C記錄之前出錯?;謴?fù): 協(xié)調(diào)者重新啟動后,重新執(zhí)行2PC協(xié)議。④故障在協(xié)調(diào)者場地,協(xié)調(diào)者在寫C/A記錄之后,寫complete記錄之前出錯?;謴?fù): 沒收到命令的參與者保持等待,協(xié)調(diào)者重新啟動后,給所有參與者重發(fā)其決定的命令。
圖1 2PC協(xié)議實現(xiàn)的概要圖
圖2 2PC協(xié)議中報文信息傳輸概要圖
微信公眾號
版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。