- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
离线备份的运作
德明財經科技大學 資訊科技系 補充資料庫伺服器的運作 資料庫可能遭遇的故障 資料庫管理系統所造成的故障 『非毀壞性』故障 『毀壞性』故障 天災或人禍所造成資料庫管理系統的暫時性或永久性故障都必須要有良好的回復機制,方能保證資料庫的資料能保持單元性、一致性和永久性等特性。 練習 請問下面的交易,執行後會產生系統日誌內容? 假設第一次讀進X與Y分別是20與30 * 系統在短暫時間之內不能使用,經過一段時間之後,資料庫管理系統可以依據回復技術自動恢復所有交易的一種故障 例如電源中斷,造成系統不正常的停止運作,就是一種非毀壞性的故障 資料庫管理系統如果正在處理數個並行交易,而這些進行中的交易有些尚未成功完成,便意外發生停電狀況,資料庫管理系統應該負責將此些交易真正寫入資料庫内 那些交易正進行到一半,尚未發出提交(Commit)命令,資料庫管理系統必須將這些交易取消所有操作 維持交易的單元性、一致性的轉移以及永久性。此類的故障,可以依賴資料庫管理系統本身的回復技術來達到回復的功能 非毀壞性故障 電腦系統損毀(computer failure) 電腦系統可能發生硬體或軟體的故障,網路斷線或是電源突然中斷等等的問題。 交易或資料庫系統錯誤(transaction or DBMS error) 錯誤發生有可能來自交易本身問題,或是被使用者強制性中斷 例外情形發生(exception conditions) 因為在設計資料庫當初,未求資料的完整性(Integrity)所設定的條件限制(constraint),而交易在進行之中,卻發生與資料庫條件限制抵觸,而造成此交易必須回復到原始點 並行控制強制回復(concurrency control enforcement) 當數個交易在進行中,可能發生並行處理時違反『可序列性』(serializability),資料庫管理系統為保持資料的完整性和一致性,必須將該交易回復 簡單說繼續執行下去資料可能不一致 非毀壞性故障 毀壞性的故障有可能起因設備本身(硬體),或是軟體的部份,諸如電源供應的不穩定或是天災所造成的作業系統損壞或是因為電腦病毒的入侵,導致資料庫管理系統無法再正常啟動 或是資料庫管理系統本身的損壞,造成資料庫內的所有資料全部損壞不能再存取,如此的故障稱之為『毀壞性』的故障 毀壞性的故障 在軟體的部份可以透過資料的備份(Backup)方式,或是複寫(Replicate)至另一個資料庫,此資料庫則稱為複製品(Replica) 在硬體的部份,有可能發生在主機本身或是資料的儲存設備,這些硬體的部份,可以透過『容錯系統』(Fault Tolerant System) 的方式來避免錯誤發生 毀壞性故障 資料庫管理系統在運作時,必須要將所有交易進行的詳細資料記錄下來,做為系統在不正常的非毀壞性故障後,能藉以回復的資訊,此資訊稱之為『系統日誌』( System Log ) 『系統日誌』的主要目的在於紀錄每一筆交易的所有操作,包括讀取和寫入資料項目的詳細動作,以便能達到『資料庫回復』(Database Recovery)功能 資料庫的系統日誌 在系統日誌中的每一筆紀錄則稱之為『日誌紀錄』(log records) 日誌紀錄必須包括以下五種不同操作過程 T代表每一個交易的唯一代號transaction-id,提供系統在回復時可以很清楚地區分出不同的交易 X是被寫入或讀取的資料項目 read / write代表該筆的日誌紀錄是讀取或是寫入的操作 續下頁 系統日誌 (LOG) [start_transaction, T]:用以表示一個交易的開始。 [write, T, X, old_value, new_value]:write代表寫入操作 [read, T, X]:表示此項操作是讀取資料項目X [commit, T]:表示該交易已經完成交易成功 [abort, T]:表示該交易執行到此時,將放棄所有的操作 交易與系統日誌 資料庫管理系統所使用的『系統日誌』演算法,皆是使用『優先寫入日誌檔』(Write-Ahead Logging)的基本方法,再依據以下兩個UNDO和REDO的基本操作 UNDO(取消):就是當系統發生非毀壞性的故障時,在重新啟動資料庫管理系統之後,系統會依據系統日誌內,記錄尚未完成或是未被提交(Commit)的交易,針對這些交易所異動的資料項目執行UNDO指令,也就是已寫入系統日誌和資料庫的資料項目,將這些資料項目回復到交易進行之前的原始值,此動作稱之為UNDO。 REDO(重做一次):就是當系統發生非毀壞性的故障時,在重新啟動資料庫管理系統之後,系統會依據系統日誌內,記錄已經完成或是已被提交(Commit)的交易,針對這些交易所異動的資料項目執行REDO指令,也就是已寫入系統日誌但
文档评论(0)