首頁 > 軟體

SQL Server資料庫備份和恢復資料庫的全過程

2022-06-13 14:02:37

1. 概述

在一些對資料可靠性要求很高的行業,若發生意外停機或資料丟失,其損失是十分慘重的;

資料庫管理員應針對具體的業務要求指定詳細的資料庫備份與災難恢復策略,並通過模擬故障對每種可能的情況進行嚴格測試,只有這樣才能保證資料的高可用性;

資料庫的備份是一個長期過程,而恢復只在發生事故後才能進行,恢復後可看做是備份資料庫的逆過程,恢復程度的好壞很大程度上依賴於備份的情況;

資料庫管理員在恢復時採取的步驟正確與否也會直接影響最終的恢復結果;

2. 備份型別

備份資料庫是指對資料庫或事務紀錄檔進行復制,當系統,磁碟或資料庫檔案損壞時,能使用備份檔案進行恢復,防止資料丟失;
SQL Server 資料庫備份支援以下幾種型別,分別應用於不同的場合:

僅複製備份

獨立於正常 SQL Server 備份序列的特殊用途備份;

資料備份

完整資料庫的資料備份(資料庫備份)、部分資料庫的資料備份(部分備份)或一組資料檔案或檔案組的備份(檔案備份);

資料庫備份

資料庫的備份,完整資料庫備份表示備份完成時的整個資料庫;差異資料庫備份植保會自最近完整備份以來對資料庫所做的更改;

差異備份

基於完成資料庫或部分資料庫以及一組資料檔案或檔案組的最新完整備份的資料備份(“差異基準”),僅包含自差異基準以來發生了更改資料區;部分差異備份僅記錄自上一次部分備份(稱為“差異基準”)以來檔案組中發證更改的資料區;

完整備份

一種資料備份,包含特定資料庫或者一組特定的檔案組或檔案中的所有資料,以及能恢復這些資料的足夠的紀錄檔;

紀錄檔備份

包括以前紀錄檔備份中未備份的所有紀錄檔記錄的事務紀錄檔備份,完整恢復模式;

檔案備份

一個或多個資料庫檔案或檔案組的備份;

部分備份

僅包含資料庫中部分檔案組的資料(包含主要檔案組、每個讀/寫檔案組以及任何可選指定的唯讀檔案中的資料);

3. 恢復模式

恢復模式在控制事務紀錄檔維護,提供給使用者選擇;SQL Server 資料庫中有3中恢復模式:簡單恢復模式、完全恢復模式、大容量紀錄檔恢復模式;
通常,資料庫使用完全恢復模式或簡單恢復模式;

3.1 簡單恢復模式

簡單恢復模式能最大限度地減少事務紀錄檔的管理開銷,因為它不備份事務紀錄檔;若資料庫損壞,則簡單恢復模式將面臨極大的工作丟失風險,資料只能恢復到已丟失資料的最新備份

所以,在簡單恢復模式下,備份間隔應儘可能短,以防止大量丟失資料,但,間隔的長度應該足以避免備份開銷影響生產工作;在備份策略中加入差異備份有助於減少開銷;

對於使用者資料庫,簡單恢復模式用於測試和開發資料庫,或用於主要包含唯讀資料的資料庫(如資料倉儲);簡單恢復模式並不適用生產系統,因為對於生產系統來說,丟失最新的更改是無法接受的,在這種情況下建議使用完全恢復模式;

3.2 完全恢復模式和大容量紀錄檔恢復模式

相對於簡單恢復模式,完全恢復模式和大容量紀錄檔恢復模式提供了更強的資料保護功能;這些恢復模式基於備份事務紀錄檔來提供完整的可恢復性及在最大範圍的故障情形內防止丟失工作;

完全恢復模式

完全恢復模式需要紀錄檔備份;此模式完整記錄所有事務,並將事務紀錄檔記錄保留到對其備份完畢為止;若能夠在出現故障後備份紀錄檔尾部,就能使用完全恢復模式將資料庫恢復到故障點;完全恢復模式也支援還原單個資料頁;

大容量紀錄檔恢復模式

大容量紀錄檔記錄大多數大容量操作,他只用在完全恢復模式的附加模式;對於某些大規模大容量操作(如大容量匯入或索引建立),暫時切換到大容量紀錄檔恢復模式可提供效能並減少紀錄檔空間使用量;與完全恢復模式相同,大容量紀錄檔恢復模式也能將事務紀錄檔記錄保留到對其備份完畢為止;

注意: 由於大容量紀錄檔恢復模式不支援時點恢復,所以必須在增大紀錄檔備份與增加工作丟失風險之間進行權衡;

4. 備份資料庫

為了方便使用者,SQL Server 資料庫支援使用者在資料庫線上並正在使用時進行備份;

但,存在以下限制:

無法備份離線資料; 隱式或顯式參照離線資料的任何備份操作都會失敗;即使一個或多個資料檔案不可以,紀錄檔備份也能成功;

注意: 若某個檔案包含大容量紀錄檔恢復模式下所作的大容量紀錄檔更改,則所有檔案都必須處於聯機狀態才能成功備份;

備份過程中的並行限制; 資料庫仍在使用時,SQL Server 能使用聯機備份過程來備份資料庫;在備份過程中,能進行多個操作;但,若正在建立或刪除資料庫檔案時嘗試啟動備份操作,則備份檔案將等待,直到建立或刪除完成或備份超時;

若備份操作與檔案管理操作或收縮操作重疊,就會發生衝突;無論哪個衝突操作首先開始,第二個操作總會等待第一個操作設定的鎖超時(超時期限由會發超時設定控制);若在超市期限內釋放鎖,第二個操作將繼續執行;若鎖超時,則第二個操作失敗;

使用 SSMS 繼續備份的過程如下:

右擊要備份的資料庫,任務備份

先刪除,再新增;

在彈出的選擇備份目標對話方塊彙總,選擇好備份的路徑;檔案型別選擇備份檔案檔名 填寫需要備份的資料庫的名稱,最好在備份的資料庫的名稱後加上日期,方便以後查詢,再連續單擊確定,即可完成備份;

5. 恢復資料庫

資料庫完整還原的目的還是還原整個資料庫,真個資料庫在還處於離線狀態

在資料庫的任何部分變成聯機之前,必須將所有資料恢復之前,必須將所喲資料恢復到同一點,即資料庫的所有部分都處於同一時間點並不存在未提交的事務;

簡單恢復模式下,資料庫不能還原到特定備份中的特定時間點;

完整恢復模式下,還原備份資料庫之後,必須還原所有後續的事務紀錄檔備份,再恢復資料庫,能將資料庫還原到這些紀錄檔備份之一的特定恢復點;恢復點可以是特定的日期和時間、標記的事務或紀錄檔序列號,還原資料庫時,特別是在完整恢復模式大容量紀錄檔恢復模式下,應使用一個還原順序;

注意: 還原順序由通過一個或多個還原階段來行動資料的一個或多個還原操作組成;

用 SSMS 物件管理資源管理器恢復資料庫,操作步驟如下:

展開資料庫,根據具體的資料庫選擇一個使用者資料庫,或展開系統資料庫並選擇一個系統資料庫;右擊資料庫,單擊還原資料庫

常規,使用部分指定要還原的備份集和位置;在目標部分,資料庫文字方塊自動填充要還原的資料庫的名稱;

若要更改資料庫名稱,可在資料庫文字方塊中輸入新名稱;

還原到框中,保留預設選項至最近一次進行的備份,或單擊時間線存取備份時間線,以手動選擇要停止恢復的時間點;

總結 

到此這篇關於SQL Server資料庫備份和恢復資料庫的文章就介紹到這了,更多相關SQLServer資料庫備份恢復內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com