數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-數(shù)據(jù)庫故障與恢復(fù)
瀏覽量: 次 發(fā)布日期:2023-09-08 08:14:19
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-數(shù)據(jù)庫故障與恢復(fù)
數(shù)據(jù)庫系統(tǒng)工程師系列文章
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-計算機系統(tǒng)基礎(chǔ)知識
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-操作系統(tǒng)-進程管理
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-操作系統(tǒng)-存儲管理
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-操作系統(tǒng)-設(shè)備管理
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-操作系統(tǒng)-文件管理與作業(yè)管理
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-計算機網(wǎng)絡(luò)基礎(chǔ)
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-計算機網(wǎng)絡(luò)協(xié)議
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-Internet基礎(chǔ)知識
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-信息安全與網(wǎng)絡(luò)安全
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-數(shù)據(jù)庫技術(shù)基礎(chǔ)
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-關(guān)系數(shù)據(jù)庫概述
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-SQL概述與數(shù)據(jù)庫定義
數(shù)據(jù)庫系統(tǒng)工程師-軟考備考筆記-非關(guān)系型數(shù)據(jù)庫NoSQL
數(shù)據(jù)庫系統(tǒng)工程師-下午題-ER圖
數(shù)據(jù)庫系統(tǒng)工程師-下午題-關(guān)系規(guī)范化
數(shù)據(jù)庫系統(tǒng)工程師-下午題-數(shù)據(jù)庫恢復(fù)
前言:五一假期后兩天,天氣不好,大雨。
1.數(shù)據(jù)庫系統(tǒng)故障的種類1.1 事務(wù)故障:由于程序執(zhí)行錯誤而引起事務(wù)非預(yù)期的、異常終止的故障。邏輯錯誤:如非法輸入、找不到數(shù)據(jù)、溢出、超出資源限制等原因引起的事務(wù)執(zhí)行失敗。系統(tǒng)錯誤:系統(tǒng)進入一種不良狀態(tài)(如死鎖),導(dǎo)致事務(wù)無法繼續(xù)執(zhí)行。1.2 系統(tǒng)故障:指硬件故障、軟件漏洞的影響,導(dǎo)致丟失了內(nèi)存中的信息,影響正在執(zhí)行的事務(wù),但未破壞存儲在外存上的信息。1.3 介質(zhì)故障:指數(shù)據(jù)庫的存儲介質(zhì)發(fā)生故障,如磁盤損壞、瞬間強磁場干擾等。這種故障直接破壞了數(shù)據(jù)庫,影響到所有正在讀取這部分數(shù)據(jù)的事務(wù)。
2.數(shù)據(jù)庫備份數(shù)據(jù)轉(zhuǎn)儲是將數(shù)據(jù)自制到另一個磁盤或磁帶上保存起來的過程,又稱為數(shù)據(jù)備份。2.1 靜態(tài)轉(zhuǎn)儲和動態(tài)轉(zhuǎn)儲。靜態(tài)轉(zhuǎn)儲是指在轉(zhuǎn)儲期間不允許對數(shù)據(jù)庫進行任何存取、修改操作;動態(tài)轉(zhuǎn)儲是在轉(zhuǎn)儲期間允許對數(shù)據(jù)庫進行存取、修改操作,因此,轉(zhuǎn)儲和用戶事務(wù)可并發(fā)執(zhí)行。2.2 海量轉(zhuǎn)儲和增量轉(zhuǎn)儲。海量轉(zhuǎn)儲是指每次轉(zhuǎn)儲全部數(shù)據(jù);增量轉(zhuǎn)儲是指每次只轉(zhuǎn)儲上次轉(zhuǎn)儲后更新過的數(shù)據(jù)。2.3 日志文件。在事務(wù)處理的過程中,DBMS把事務(wù)開始、事務(wù)結(jié)束以及對數(shù)據(jù)庫的插入、刪除和修改的每一次操作寫入日志文件。2.4 數(shù)據(jù)庫鏡像。為了避免磁盤介質(zhì)出現(xiàn)故障影響數(shù)據(jù)庫的可用性,許多DBMS提供數(shù)據(jù)庫鏡像功能用于數(shù)據(jù)庫恢復(fù)。
3.數(shù)據(jù)庫恢復(fù)要使數(shù)據(jù)庫在發(fā)生故障后能夠恢復(fù),必須建立冗余數(shù)據(jù),在故障發(fā)生后利用這些冗余數(shù)據(jù)實施數(shù)據(jù)庫恢復(fù),常用的是數(shù)據(jù)轉(zhuǎn)儲和日志文件。3.1 故障恢復(fù)的兩個操作:(1)撤銷事務(wù)(UNDO):將未完成的事務(wù)撤銷,使數(shù)據(jù)庫恢復(fù)到事務(wù)執(zhí)行前的正確狀態(tài)。撤銷事務(wù)的過程:反向掃描日志文件(由后向前掃描),查找事務(wù)的更新操作;對該事務(wù)的更新操作執(zhí)行逆操作,用日志文件記錄中更新前的值寫入數(shù)據(jù)庫,插入的記錄從數(shù)據(jù)庫中刪除,刪除的記錄重新插入數(shù)據(jù)庫中;繼續(xù)反向掃描日志文件,查找該事務(wù)的其它更新操作并執(zhí)行逆操作直至事務(wù)開始標志。(2)重做事務(wù)(REDO):將已提交的事務(wù)重新執(zhí)行。重做事務(wù)的過程:從事務(wù)的開始標志起,正向掃描日志文件,重新執(zhí)行日志文件登記的該事務(wù)對數(shù)據(jù)庫的所有操作,直至事務(wù)結(jié)束標識。3.2 故障恢復(fù)策略:(1)事務(wù)故障的恢復(fù):事務(wù)故障是事務(wù)在運行至正常終止點(SUBMIT或ROLLBACK)前終止,日志文件只有該事務(wù)的開始標識而沒有結(jié)束標識。對這類故障的恢復(fù)通常是通過撤銷(UNDO)產(chǎn)生故障的事務(wù),使數(shù)據(jù)庫恢復(fù)到該事務(wù)執(zhí)行前的正確狀態(tài)來完成的。具體做法:1、反向掃描日志文件,查找該事務(wù)的更新操作。2、對事務(wù)的更新操作執(zhí)行逆操作。3、繼續(xù)反向掃描日志文件,查找該事務(wù)的其他更新操作,并做同樣的處理,直到事務(wù)的開始標志。(2)系統(tǒng)故障的恢復(fù):系統(tǒng)故障會使數(shù)據(jù)庫的數(shù)據(jù)不一致:一是未完成的事務(wù)對數(shù)據(jù)庫的更新可能已經(jīng)寫入數(shù)據(jù)庫;二是已提交的事務(wù)對數(shù)據(jù)庫的更新可能還在緩沖區(qū)沒來得及寫入數(shù)據(jù)庫。因此對于系統(tǒng)故障,恢復(fù)操作是UNDO+REDO:1、撤銷故障發(fā)生時未完成的事務(wù)(UNDO)。2、重做已經(jīng)提交的事務(wù)(REDO)。(3)介質(zhì)故障的恢復(fù):介質(zhì)故障時數(shù)據(jù)庫遭到破壞,需要重裝數(shù)據(jù)庫,一般需要DBA的參與,裝載故障前最近一次的備份和故障前的日志文件副本,再按照系統(tǒng)故障的恢復(fù)過程執(zhí)行撤銷(UNDO)和重做(REDO)來恢復(fù)。
4.檢查點機制檢查點機制(CHECKPOINT):在日志中設(shè)置檢查點,當(dāng)發(fā)生故障需要利用日志文件恢復(fù)時,反向掃描日志文件,找到檢查點,確認檢查點時刻正在執(zhí)行的事務(wù)(活動事務(wù)),即檢查點前有事務(wù)開始標志但沒有事務(wù)結(jié)束標志。對于檢查點后提交的事務(wù),執(zhí)行REDO(重做)對于檢查點后未提交的事務(wù),執(zhí)行UNDO(撤銷)
致敬未來,致敬每一個努力的自己!
. 設(shè)計一個圖書管理系統(tǒng)數(shù)據(jù)庫,圖書管理系統(tǒng)數(shù)據(jù)庫設(shè)計
. oracle證書,開啟數(shù)據(jù)庫專業(yè)之旅的鑰匙
. 分布式數(shù)據(jù)服務(wù) 書籍pdf,構(gòu)建高效、可擴展的數(shù)據(jù)生態(tài)系統(tǒng)
. oracle歸檔日志設(shè)置,Oracle數(shù)據(jù)庫歸檔日志設(shè)置詳解
. 分布式數(shù)據(jù)服務(wù)包括,構(gòu)建高效、可擴展的數(shù)據(jù)生態(tài)系統(tǒng)
. 數(shù)據(jù)庫修復(fù),數(shù)據(jù)庫修復(fù)的重要性
. sql數(shù)據(jù)庫顯示可疑,原因分析與解決方法
. oracle drop表數(shù)據(jù)恢復(fù),Oracle數(shù)據(jù)庫中drop表數(shù)據(jù)恢復(fù)方法詳解
. 超融合數(shù)據(jù)庫好用嗎,超融合數(shù)據(jù)庫好用嗎?——深度解析其優(yōu)勢與適用場景
. 硬盤數(shù)據(jù)系統(tǒng)恢復(fù)方法,硬盤數(shù)據(jù)系統(tǒng)恢復(fù)方法全攻略
. 數(shù)據(jù)庫數(shù)字類型怎么設(shè)置,數(shù)據(jù)庫數(shù)字類型設(shè)置指南
. 數(shù)據(jù)庫系統(tǒng)要解決什么問題,數(shù)據(jù)庫系統(tǒng)概述
. oracle數(shù)據(jù)庫怎么修復(fù),全面指南
. sql數(shù)據(jù)庫還原方法,SQL數(shù)據(jù)庫還原方法詳解
. 什么是oracle數(shù)據(jù)庫,什么是Oracle數(shù)據(jù)庫?
. 如何查看oracle錯誤日志,Oracle數(shù)據(jù)庫錯誤日志查看指南
. oracle數(shù)據(jù)庫執(zhí)行計劃怎么看,查看與分析技巧
. oracle刪除的數(shù)據(jù)怎么恢復(fù),Oracle數(shù)據(jù)庫中刪除數(shù)據(jù)恢復(fù)指南
. 數(shù)據(jù)庫相關(guān)問題有哪些,數(shù)據(jù)庫相關(guān)問題解析