第十章 數據庫恢復技術
1.事務
事務(Transaction)是用戶定義的一個數據庫操作序列,這些操作要麼全做,要麼全不做,是一個不可分割的工作單位。
事務和程序是兩個概念
在關係數據庫中,一個事務可以是一條SQL語句,一組SQL語句或整個程序
一個程序通常包含多個事務。
事務是恢復和併發控制的基本單位
定義事物
BEGIN TRANSACTION BEGIN TRANSACTION
SQL 語句1 SQL 語句1
SQL 語句2 SQL 語句2
。。。。。 。。。。。
COMMIT ROLLBACK
COMMIT :事務正常結束 ,提交事務的所有操作(讀+更新)
,事務中所有對數據庫的更新寫回到磁盤上的物理數據庫中
ROLLBACK:事務異常終止,事務運行的過程中發生了故障,不能繼續執行
系統將事務中對數據庫的所有已完成的操作全部撤銷 ,事務滾回到開始時的狀態。
事務的ACID特性:
原子性(Atomicity):事務是數據庫的邏輯工作單位,要麼都做,要麼都不做。
一致性(Consistency):事務執行的結果必須是使數據庫從一個一致性狀態變到另一個一致性狀態
隔離性(Isolation):一個事務內部的操作及使用的數據對其他併發事務是隔離的,併發執行的各個事務之間不能互相干擾。
持續性(Durability ):一個事務一旦提交,它對數據庫中數據的改變就應該是永久性的。接下來的其他操作或故障不應該對其執行結果有任何影響。
恢復策略
1.事務故障的恢復。2.系統故障的恢復。3.介質故障的恢復
系統故障恢復
重做(REDO) 隊列: 在故障發生前已經提交的事務
這些事務既有BEGIN TRANSACTION記錄,也有COMMIT記錄
撤銷 (UNDO)隊列:故障發生時尚未完成的事務
這些事務只有BEGIN TRANSACTION記錄,無相應的COMMIT記錄
恢復中最經常使用的技術:數據庫轉儲,登記日誌文件.