恢復機制-數據庫系統中的故障(事務故障、系統故障、介質故障)、一致性錯誤、竊取但不強制的緩沖區管理策略

一、引言

數據庫管理系統DBMS的事務處理技術實現的一個主要功能部分就是恢復機制,恢復機制完成的功能就是對發生故障后系統中事務的更新結果進行數據恢復,保證事務的原子性和持久性,從而進一步保證數據庫的一致性。

數據庫系統與其他計算機系統一樣易發生故障,可能發生的故障大致可歸為事務故障、系統故障和介質故障三類。數據恢復就是針對不同故障導致數據庫出現的不一致錯誤進行的

二、事務故障

事務故障就是在事務執行過程中發生錯誤,導致事務夭折,不能執行完成。發生的錯誤主要有兩種

  • 一種是事務內部操作受限,如不滿足完整性約束限制,訪問不到數據、運算溢出等,導致事務無法繼續正常執行。比如對于銀行轉賬事務,因賬戶余額不足讓事務回滾
  • 另一種錯誤是系統進入了一種不良的狀態,如發生死鎖等,導致事務無法繼續正常執行

三、系統故障

1、系統故障是指造成系統停止運轉的任何事件,例如CPU等特定類型的硬件故障、操作系統故障、突然斷電等。發生系統故障后,系統崩潰,需要重啟?

2、由于主存是易失性存儲器,會造成主存內容,尤其是數據庫緩沖區中的內容丟失,導致所有事務都將非正常終止

但系統故障不會影響到磁盤上的數據庫,系統故障常稱為軟故障

三、介質故障

介質故障被稱為硬故障,介質故障主要是指使數據庫存儲介質發生破壞的故障

  • 一般是磁盤故障,如磁盤損壞、磁頭碰撞、即時強磁場干擾等
  • 或者是自然災害或人為破壞造成的設備毀壞,如爆炸、火災等引起數據庫服務器的毀壞?

介質故障比事務故障和系統故障發生的可能性要小,但破壞性更大,有時是難以恢復的?

四、不一致錯誤

1、故障導致數據庫出現的不一致錯誤,與系統的數據庫讀寫操作策略有關

2、數據庫系統的數據讀寫

在數據庫系統中,數據庫常駐于非易失性存儲器,通常為磁盤。由于讀取磁盤的速度相對來說是比較慢的,為了能夠加快處理數據的速度,須將事務讀取的數據緩存在內存里讀取的數據所在的內存區域稱為數據庫緩沖區,當事務執行時,首先到緩沖區中去讀取數據,假設要讀取的數據這里用X表示,當數據X不在緩沖區中,則需由緩沖區管理器將數據庫中X所在磁盤塊的內容由磁盤輸入到內存中,即執行input操作,然后數據X被事務讀取到事務的私有工作區,即執行read操作,在工作區內完成對數據X的拷貝t的處理,事務可在每一個更新操作后,將t值復制給緩沖區中的數據X,即執行write操作,如果此時數據X不在緩沖區內,也需要首先執行input操作,將數據X從磁盤讀入到數據庫緩沖區中,數據庫緩沖區中的數據更新到磁盤上,也需要由緩沖區執行output操作

因此,為了更好地闡述問題,也為了更好地理解數據庫管理系統的實現技術,后續我們將事務中的數據庫操作,用對數據庫緩沖區的讀寫操作來表示

3、對于從賬戶A轉賬1000元到賬戶B的轉賬事務,我們就可以用這樣的對緩沖區數據A和B的讀寫來表達對數據庫中賬戶A和賬戶B余額的讀寫操作

4、假設恢復機制采用一種竊取但不強制的緩沖區管理策略,這也是一些DBMS的事務處理機制實際采用的策略

  • 該策略的思想是為了從磁盤上輸入事務B所需的數據到內存,需要占用事務A所處理的數據使用的內存空間,就要先將事務A所處理的數據輸出到磁盤上,即執行事務A所處理數據的output操作,再執行事務B所需的數據的input操作,此時稱事務B竊取事務A的空間
  • 此外,在事務提交后,其他事務可能仍會訪問緩沖區中的數據庫數據,因此并不要求將事務的更新結果立即反應到磁盤上,即不強制地執行output操作。

至于竊取哪個事務占用的內存空間,以及何時強制執行提交事務所寫數據的output操作由緩沖區管理器根據具體的緩沖器置換算法來決定,比如采用一種LRU即最近最久未使用算法

5、當恢復機制采用這種竊取不強制的緩沖區管理策略

  • 就會出現在事務提交之前,事務的部分執行結果可能已被更新到磁盤上的數據庫中
  • 而事務提交后,事務的執行結果并沒有立即更新到磁盤上的數據庫中

6、這樣就導致在發生事務故障后

  • 事務不能正常提交,但夭折的事務的部分執行結果可能已對數據庫進行了更新。事務沒有保持原子性

?7、在發生系統故障后

  • 在發生系統故障后,除了夭折的事務的部分執行結果可能已經寫入磁盤上的數據庫,有些已提交的事務對數據庫的更新結果可能有一部分甚至全部還在緩沖區中,尚未寫回到磁盤上的數據庫中事務沒有保持持久性

8、在發生介質故障后

  • 不僅影響正在存取磁盤上數據庫的所有運行事務,使得這些事務夭折,更主要會破壞磁盤上的數據庫,使已提交的事務對數據庫的更新結果丟失,事務不能保持持久性

因此,當數據庫系統發生故障后,數據庫可能會出現這三種錯誤現象,處于暫時的不一致錯誤狀態,破壞了事務的原子性和持久性?

五、小結

1、事務處理的恢復機制,就是要在數據庫系統發生各類故障后,對于可能處于不一致錯誤狀態的數據庫采取一定的恢復技術并運用相關的恢復策略,來保持事務的原子性和持久性,將數據庫恢復到一個一致性狀態

2、不同的DBMS的事務處理機制所采用的緩沖區管理策略可能不同,發生故障后的數據庫不一致錯誤也會不同恢復技術和恢復策略的具體實現也會有所不同?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/37460.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/37460.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/37460.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

AI數據分析010:集中度分析和離散度分析

文章目錄 一、介紹1.1 集中度分析(Measures of Central Tendency)1.2 離散度分析(Measures of Dispersion)二、輸入內容三、輸出內容一、介紹 集中度分析和離散度分析是統計學中用來描述數據分布特征的兩種方法。它們可以幫助我們了解數據的集中趨勢和分散程度。 1.1 集中…

ESP32-C3模組上跑通MQTT遺囑機制(2)

接前一篇文章:ESP32-C3模組上跑通MQTT遺囑機制(1) 本文內容參考: ESP-MQTT - ESP32 - — ESP-IDF 編程指南 latest 文檔 特此致謝! 上一回對于MQTT遺囑機制進行了介紹,本回講解在ESP-IDF中如何使用或者說使能MQTT遺囑機制。 要弄清楚MQTT遺囑機制代碼如何添加,先得由…

Win11 搭建 Java 開發環境(JDK)

Win11 搭建 Java 開發環境(JDK) 前言步驟1、下載 JDK2、安裝 JDK3、配置環境變量(我設置的順序可不是隨便的喲~)3-1、設置 JAVA_HOME_11和 JAVA_HOME3-2、設置 PATH3-3、設置 CLASS_HOME備注1、可以不必再手動配置 CLASSPATH2、恢復 jre 文件夾(有沒有 jre 文件夾其實不影…

昇思25天學習打卡營第2天|數據集Dataset

學習目標:熟練掌握mindspore.dataset mindspore.dataset中有常用的視覺、文本、音頻開源數據集供下載,點贊、關注收藏哦 了解mindspore.dataset mindspore.dataset應用實踐 拓展自定義數據集 昇思平臺學習時間記錄: 一、關于mindspore.dataset minds…

微軟Edge瀏覽器介紹

目錄 一、概述 二、主要功能和特點 三、使用技巧 四、常見問題和解決方案 五、內核革新與性能飛躍 六、 用戶體驗與功能 七、特殊功能與工具 八、 跨平臺支持與同步 九、開發者工具與支持 一、概述 微軟Edge瀏覽器是微軟公司開發的一款現代瀏覽器,旨在為用…

Python反爬蟲策略

Python反爬蟲策略 概述User-Agent 偽造應對302重定向IP限制與代理使用Cookies和Session管理動態內容加載數據加密與混淆請求頻率限制爬蟲檢測算法法律與道德考量結語 概述 在數字化時代,網絡數據采集已成為獲取信息的重要手段之一。然而,隨著技術的發展…

在HBuilder X中ElementUI框架的搭建

前言 本文將詳解基于Vue-cli腳手架搭建的項目如何使用ElementUI ?所以在學習本篇文章內容之前建議先學習vue-cli腳手架項目的搭建和學習 使用HbuilderX快速搭建vue-cil項目https://mp.csdn.net/mp_blog/creation/editor/140043776 ElementUI框架: Element&#xff…

【Java】解決Java報錯:UnsupportedOperationException in Collections

文章目錄 引言一、UnsupportedOperationException的定義與概述1. 什么是UnsupportedOperationException?2. UnsupportedOperationException的常見觸發場景3. 示例代碼 二、解決方案1. 使用適當的集合類型2. 創建可變副本3. 使用合適的集合工廠方法4. 使用不可變集合…

【代碼隨想錄數據結構刷題記錄】

文章目錄 一、代碼隨想錄數據結構刷題記錄 一、代碼隨想錄數據結構刷題記錄 2024-04-08-代碼隨想錄算法訓練營第六天[LeetCode242有效的字母異位詞、LeetCode349兩個數組的交集 、LeetCode202快樂數 、LeetCode1. 兩數之和] 2024-04-09-代碼隨想錄算法訓練營第七天[LeetCode4…

幫助某企業分析人才流失問題(附方案)

網游公司如何留住人才?某大型網游公司在如何留住人才方面存在一些問題,人才流失嚴重,人才流失也給企業帶來了不小的打擊,對該網游公司的發展造成了嚴重影響,在日益激勵的人才爭奪戰中,如何保留優秀人才一直…

GPT-4o技術粗粗粗解

GPT-4o是一個非常優秀的多模態大模型。它的輸入是語音、文字、圖像/視頻。輸出自然有語音、文字、圖像。如果說它像一個人的能力,那還真的差不多了。可能離AGI就不遠了吧!在現有的AI能力路上,SamAltman那句逆言的忠耳一定要聽:不要…

ElementUI搭建使用過程

1.ElementUI概述 Element,一套為開發者、設計師和產品經理準備的基于 Vue 2.0 的桌面端組件庫,相當于是css的框架 2.安裝ElementUI 第一步:創建一個vue-cil項目 !!!(上篇文章已詳細講述搭建過…

游戲AI的創造思路-技術基礎-深度學習(7)TF

重頭戲TF,汽車人,變形~~~~ 現在廣泛應用的GPT中,數據處理的關鍵點就是Transformer算法,多次多層的映射“變形”造就了其對自然語言處理能力的提升,但本篇介紹的內容中,Transformer算法是用來構建游戲AI的“…

昇思25天學習打卡營第5天 | 神經網絡構建

1. 神經網絡構建 神經網絡模型是由神經網絡層和Tensor操作構成的,mindspore.nn提供了常見神經網絡層的實現,在MindSpore中,Cell類是構建所有網絡的基類,也是網絡的基本單元。一個神經網絡模型表示為一個Cell,它由不同…

Quantlab5.0:一切圍繞可實盤策略驅動開發

原創文章第573篇,專注“AI量化投資、世界運行的規律、個人成長與財富自由"。 2024年上半年即將結束,開始準備星球下半年的工作。 目前設想的——Quantlab5.0,之所以升級一個大版本,與4.x有很大不同。 5.0專注策略開發&…

Python28-2 機器學習算法之SVM(支持向量機)

SVM(支持向量機) 支持向量機(Support Vector Machine,SVM)是一種用于分類和回歸分析的監督學習模型,在機器學習領域中被廣泛應用。SVM的目標是找到一個最佳的分割超平面,將不同類別的數據分開&…

【Vue】Vue.js中常見的幾種語法

在 Vue.js 中,主要的語法可以分為以下幾種: 插值語法 (Interpolation) 使用雙大括號 {{ }} 進行文本插值。 示例: {{ message }} 指令語法 (Directives) 指令是特殊的標記,用于告訴Vue框架如何操作DOM。Vue提供了多種內置指…

【最新鴻蒙應用開發】——鴻蒙國際化

1. 國際化 鴻蒙應用開發的國際化主要是指讓應用支持多種語言和適應不同地區的用戶習慣。這包括對不同語言環境的支持,如文本和布局的本地化設置。要實現國際化,開發者需要準備應用程序支持的每種語言環境的一些資源,比如翻譯后的文本、特定區…

理解論文筆記:基于貝葉斯網絡和最大期望算法的可維護性研究

看了與上一篇研究方向一致的文章,上一篇19年的,這一篇22年的更新。若有侵權,請聯系刪除。 I. INTRODUCTION 介紹 主要介紹了使用貝葉斯網絡和歷史數據對無線傳感器網絡可維護性研究的重要性和必要性,并對下面的各章進行了…

【高性能服務器】單進程服務器

🔥博客主頁: 我要成為C領域大神🎥系列專欄:【C核心編程】 【計算機網絡】 【Linux編程】 【操作系統】 ??感謝大家點贊👍收藏?評論?? 本博客致力于知識分享,與更多的人進行學習交流 ? 單進程服務器 …