1、概述 為了創建正确的備份,第一件事是為每個數據庫設置正确的恢複模型。恢複模型基本上告訴 SQL Server 哪些數據要保留在事務日志文件中以及保留多長時間。根據選擇的恢複模式,這還将确定您可以執行哪些類型的備份以及可以執行哪些類型的數據庫還原。
2、三種恢複模式 您可以選擇的三種恢複模式是:
FullSimpleBulk-Logged 每個數據庫隻能有一個恢複模式,但每個數據庫都可以使用不同的恢複模式,因此根據處理和備份需求,您可以為每個數據庫選擇合适的恢複模式。唯一的例外是必須使用“簡單”恢複模型的 TempDB 數據庫。
此外,可以随時更改數據庫恢複模式,但這會影響您的備份鍊,因此最好在更改恢複模式後進行完整備份。
可以使用 T-SQL 或 SQL Server Management Studio 更改恢複模型。以下是有關如何執行此操作的示例。
使用 T-SQL 更改 AdventureWorks 數據庫的“完全”恢複。
ALTER DATABASE AdventureWorks SET RECOVERY FULL GO
使用 SSMS 更改 AdventureWorks 數據庫的恢複模式。
3、完整恢複模型 完整恢複模型告訴 SQL Server 将所有事務數據保留在事務日志中,直到發生事務日志備份或事務日志被截斷。其工作方式是針對 SQL Server 發出的所有事務首先進入事務日志,然後将數據寫入适當的數據文件。這允許 SQL Server 回滾過程的每個步驟,以防出現錯誤或事務由于某種原因被取消。因此,當數據庫設置為“完整”恢複模式時,由于所有事務都已保存,因此您可以進行時間點恢複,這意味着您可以恢複到事務發生之前的某個點,就像意外删除所有事務一樣表中的數據。
完整恢複模式是最完整的恢複模式,隻要所有備份文件可用且可讀,您就可以将所有數據恢複到任何時間點。使用此模型,所有操作都被完整記錄,這意味着您可以将數據庫恢複到任何點。此外,如果數據庫設置為完全恢複模式,您還需要發出事務日志備份,否則您的數據庫事務日志将永遠持續增長。
以下是您可能選擇此恢複模式的一些原因:
數據至關重要,您希望最大限度地減少數據丢失。您需要能夠進行時間點恢複。您正在使用數據庫鏡像您正在使用 Always On 可用性組 當數據處于“完整”恢複模式時可以運行的備份類型:
完成備份差異備份文件和/或文件組備份部分備份僅複制備份事務日志備份使用 T-SQL 設置 SQL Server 完整恢複模型 ALTER DATABASE dbName SET RECOVERY recoveryOption GO
示例:将 AdventureWorks 數據庫更改為“完整”恢複模式
ALTER DATABASE AdventureWorks SET RECOVERY FULL GO
使用 Management Studio 設置 SQL Server 完整恢複模式右鍵單擊數據庫名稱并選擇屬性轉到選項頁面在恢複模式下選擇“完整”點擊“确定”保存
4、簡單恢複模型 它為您提供了一個簡單的備份,可用于在發生故障或需要将數據庫恢複到另一台服務器時替換整個數據庫。使用這種恢複模式,您可以進行完整備份(整個副本)或差異備份(自上次完整備份以來的任何更改)。使用此恢複模式,您将面臨自上次備份完成以來的任何故障,因為您隻能将數據恢複到備份發生的時間點。
“簡單”恢複模型是 SQL Server 最基本的恢複模型。每個事務仍然寫入事務日志,但是一旦事務完成并且數據已寫入數據文件,事務日志文件中使用的空間可以被新事務重用。由于此空間被重複使用,因此無法進行時間點恢複,因此最近的還原點将是完整備份或已完成的最新差異備份。此外,由于事務日志中的空間可以重複使用,事務日志不會像“完全”恢複模型中提到的那樣永遠增長。
以下是您可能選擇此恢複模式的一些原因:
您的數據并不重要,可以輕松地重新創建該數據庫僅用于測試或開發數據是靜态的,不會改變自上次備份以來丢失任何或所有事務不是問題數據是派生的,可以很容易地重新創建 當數據處于“簡單”恢複模式時可以運行的備份類型:
完成備份差異備份文件和/或文件組備份部分備份僅複制備份使用 T-SQL 設置 SQL Server 簡單恢複模型 ALTER DATABASE dbName SET RECOVERY recoveryOption GO
示例:将 AdventureWorks 數據庫更改為“簡單”恢複模式
ALTER DATABASE AdventureWorks SET RECOVERY SIMPLE GO
使用 Management Studio 設置 SQL Server 簡單恢複模型右鍵單擊數據庫名稱并選擇屬性轉到選項頁面在恢複模式下選擇“簡單”點擊“确定”保存
5、大容量日志恢複模型 在此模型中,某些批量操作(例如 BULK INSERT、CREATE INDEX、SELECT INTO 等)并未完全記錄在事務日志中,因此不會在事務日志中占用太多空間。
使用“批量記錄”恢複模型的優點是,如果您正在執行大量批量操作,您的事務日志不會變得那麼大,并且隻要您的最後一個事務日志備份沒有,它仍然允許您進行時間點恢複包括批量操作。如果未運行批量操作,則此恢複模式與完全恢複模式的工作方式相同。需要注意的一點是,如果您使用這種恢複模式,您還需要發出事務日志備份,否則您的數據庫事務日志将繼續增長。
以下是您可能選擇此恢複模式的一些原因:
數據很關鍵,您希望最大程度地減少數據丢失,但又不想記錄大批量操作與正常處理相比,批量操作在不同時間完成。您仍然希望能夠恢複到某個時間點 當數據處于“批量記錄”恢複模式時,您可以運行的備份類型:
完成備份差異備份文件和/或文件組備份部分備份僅複制備份事務日志備份使用 T-SQL 設置 SQL Server 大容量日志恢複模型 ALTER DATABASE dbName SET RECOVERY recoveryOption GO
示例:将 AdventureWorks 數據庫更改為“批量記錄”恢複模式
ALTER DATABASE AdventureWorks SET RECOVERY BULK_LOGGED GO
使用 Management Studio 設置 SQL Server 批量日志恢複模型右鍵單擊數據庫名稱并選擇屬性轉到選項頁面在恢複模式下選擇“批量記錄”點擊“确定”保存
6、小結 歡迎大家留言讨論,喜歡的朋友,歡迎大家點贊關注。
,
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!