第15章 備份和恢復資料庫
15.1 備份資料庫
15.1.1 概述
1、備份資料庫的作用
(1) 備份資料庫就是將資料庫資料和與資料庫的正常執行有關的資訊儲存起來,以備恢復資料庫時使用,其主要目的是為了防止資料的丟失。
(2) 另一作用是作為資料轉移的一種方式;
2、備份時間
(1) 對於系統資料庫應進行了修改後立即備份,對於使用者資料庫一般採用定期備份;
(2) 備份資料庫要選在資料庫操作少的時間進行,這樣可減少對備份以及資料操作效能的影響。
15.1.2 備份裝置
1、 sql server將備份資料庫的場所稱為備份裝置,它支援將資料庫備份到磁帶或磁碟上;
2、 備份方式有兩種:
(1) 先建立備份裝置,然後將資料庫備份到備份裝置上(永久備份裝置);
(2) 直接將資料庫備份到物理檔案上(臨時備份裝置)。
15.1.3 建立備份裝置
備份裝置在作業系統一級實際上是物理檔案,只是備份裝置必須要先建立好,然後才能使用
1、 用企業管理器建立備份裝置
2、 使用系統儲存過程建立備份裝置
sp_addumpdevice[@devtype=]』device_type』,[@logicalname=]』logical_name』,
[@physicalname=]』physical_name』
其中:(1)[@devtype=]』device_type』:為備份裝置的型別,可選下列之一:
(a) disk:使用磁碟檔案作為備份裝置;
(b) pipe:使用命名管道作為備份裝置;
(c) tape:使用磁帶裝置。
(2)[@logicalname=]』logical_name』:備份裝置的邏輯名稱,該邏輯名稱用在backup和restore語句中;
(3)[@physicalname=]』physical_name』:備份裝置的物理名稱。
15.1.4 備份型別
1、 完全備份
是將資料庫中的全部資訊進行備份,它是恢復的基線,在進行完全備份時,不但備份資料庫的資料檔案、日誌檔案,而且還備份檔案的儲存位置資訊以及資料庫中的全部物件及相關資訊;
備份資料庫是要消耗時間的,在進行備份資料庫時,使用者可以訪問資料庫,它將不影響資料庫的備份,並且還可以將備份過程中發生的活動全部備份下來。
2、差異備份
是備份從最近的完全備份之後對資料庫所作的修改,它以完全備份為基點,備份變化了的資料檔案和日誌檔案以及資料庫中其他被修改的內容,
在差異備份過程中,也允許使用者訪問資料庫和對其操作,且在備份過程中的活動也一起備份下來;
3、事務日誌備份
(1) 是備份從上次備份之後的日誌記錄,在預設情況下,事務日誌備份完成後,要截斷日誌。
(2) 事務日誌記錄了使用者對資料庫進行的修改操作,為了避免記錄越來越多,必須定期地將日誌記錄中不需要的部分清除掉,這種過程叫截斷日誌,備份日誌是截斷日誌的一種方法;
(3) 如果要進行事務日誌備份,必須將資料庫的故障還原模型設定為「完全」方式或「大容量日誌記錄的」方式,因為在預設情況下的「簡單」方式,只能進行完全備份和差異備份,不能進行事務日誌備份,因為在該模式下系統自動定期將事務日誌中不活動的部分清除。
(4) 如要對資料庫進行事務日誌備份,則必須先設定資料庫的故障還原模型,否則在恢復時就會出錯。這是因為不同的還原模型對日誌的記錄和維護方式是不一樣的。
15.1.5 備份策略
1、完全備份
完全備份策略適合於資料庫資料不是很大,而且資料更改不是很頻繁的情況。可以幾天或幾周進行一次;
2、完全備份+日誌備份
如不允許丟失太多資料,且不希望經常進行完全備份;
3、完全備份+差異備份+日誌備份
該策略的好處是備份和恢復的速度都比較快,出現故障時丟失的資料也比較少;
15.1.6 實現備份
1、 使用企業管理器備份資料庫
2、 使用transact-sql語句備份資料庫
(1) 備份資料庫的基本語法:
backup database 資料庫名
to |=
[with [differential][[,]]]
其中:(a)《備份裝置名》:將資料庫備份到已建立好的備份裝置名上;
(b)disk|tape:將資料庫備份到磁碟或磁帶;
(d) differential:進行差異備份;
(e) init:本次備份資料庫將重寫備份裝置,即覆蓋掉本裝置上以前進行的所有備份;
(f) noinit:本次備份資料庫將追加到備份裝置上,即不覆蓋。
(2) 備份資料庫日誌的基本語法:
backup log 資料庫名
to |=
[with [] []]
其中:(a) no_log和truncate_only:表示備份完日誌後要截斷不活動的日誌;
(b) no_truncate:表示備份完日誌後不截斷不活動的日誌;
(c) 其他選項同備份資料庫語句的選項。
15.1.7 備份**集
1、 當資料庫很大時,有時乙個備份裝置的空間可能不能滿足要求,這裡就可以將資料庫備份到多個不同的備份裝置上,同時使用多個備份裝置進行備份的為此裝置就稱為備份**集;
2、 使用**集與使用單一備份裝置的方法一樣,只需新增其他備份裝置,系統會自動將這些裝置作為乙個備份**集使用;
3、 系統在使用備份**集時,基本是將備份所需的空間均衡地分擔到每個備份裝置上;
4、 如果以後要單獨使用某個裝置,則必須重新初始化備份**集,即刪除不需要的裝置後,重寫並初始化即可,但注意的是,重新初始化後原備份**集上所備份的內容將全部丟失。
15.2 恢復資料庫
15.2.1 恢復前的準備及恢復順序
1、恢復前的準備
在恢復資料庫前必須限制資料庫的訪問,一般選擇「限制訪問」中的「db_owner、dbcreator或sysadmin的成員」,說明只有以上角色才可訪問資料庫;
2、恢復的順序
(1) 恢復最近的完全資料庫備份;
(2) 恢復完全資料庫備份之後最近的差異資料庫備份;
(3) 按日誌備份的先後順序恢復自最近的完全或差異資料庫備份之後的所有日誌。
15.2.2 實現恢復
1、用企業管理器恢復資料庫
2、用transact-sql語句恢復資料庫
restore database 資料庫名
from 備份裝置名
[with file=檔案號[,]norecovery[,]recovery]
其中:(1) file=檔案號:標識要還原的備份集,檔案號為1表示備份裝置上的第乙個備份集,檔案號為2表示備份裝置上的第二個備份集;
(2) norecovery:表明對資料庫的恢復還沒有完成,使用此項恢復的資料庫是不可用的,但可以繼續恢復後續的備份;
(3) recovery:表明對資料庫的恢復已完成,一般是在恢復資料庫的最後乙個備份時使用此項,此時恢復的資料庫是可用的。
恢復日誌的語法:
restore log 資料庫名 from 備份裝置名 [with file=檔案號[,]norecovery[,]recovery]
計算機等級考試四級資料庫技術複習筆記 11
第11章 故障管理11.1 事務 1 事務是資料庫的邏輯控制單位,是運算元據的乙個程式執行單元。2 為了保證資料的完整性,要求資料庫系統維護事務具有如下性質 1 原子性 事務是乙個不可分割的工作單位,事務中的操作要麼都做,要麼都不做 2 一致性 事務執行的結果必須使資料庫從乙個一致的狀態變到另乙個一...
計算機等級考試四級資料庫技術複習筆記 6
第六章 儲存技術與資料庫物理設計6.1 檔案組織 6.1.1 資料庫的物理結構 1 資料庫中的應用資料是以檔案形式儲存在外存上的,檔案在邏輯上被組織成記錄的序列,即每個db檔案可看作是邏輯記錄的集合 2 乙個檔案在磁碟上占有一定的物理儲存空間,檔案中的每個邏輯記錄被對映儲存到某個特定的磁碟塊上,乙個...
2023年計算機四級考試資料庫技術複習筆記6
2011年計算機四級考試資料庫技術複習筆記 第六章 儲存技術與資料庫物理設計 6.1 檔案組織 6.1.1 資料庫的物理結構 1 資料庫中的應用資料是以檔案形式儲存在外存上的,檔案在邏輯上被組織成記錄的序列,即每個db檔案可看作是邏輯記錄的集合 2 乙個檔案在磁碟上占有一定的物理儲存空間,檔案中的每...