行業新聞與博客

如何在 SQL Server 中備份和恢復數據庫

在 SQL Server 中,數據庫可以存儲在不同的文件和文件組中。如果您的數據庫較小(100 MB 或更少),則無需過多擔心文件和文件組。但如果您有一個大型數據庫(數 GB 或 TB),將數據分離到不同的文件中可以幫助您優化性能。您可以將數據文件存儲在不同的磁盤中。這也將有助於更快地備份和恢復信息,因為您不需要恢復整個數據庫,而只需恢復所選的文件或文件組。

備份類型

在 SQL Server 中,有不同類型的備份:

  • 完整備份:包含整個數據庫信息。
  • 差異備份:需要進行完整備份,然後存儲上一次備份與當前數據庫之間的差異。此備份需要的信息較少,因為它僅存儲差異。
  • 事務日誌備份:它存儲有關事務日誌的信息。

為什麼備份很重要?

您的數據庫可能會由於多種原因而損壞。備份將幫助您恢復在發生災難和問題(如硬件故障、病毒攻擊或其他問題)時丟失的數據庫。

如何使用 SSMS 創建完整備份

您可以使用 SQL Server Management Studio (SSMS) 創建完整備份來還原 SQL Server 中的數據庫。為此,請打開 SSMS,右鍵單擊數據庫,然後選擇任務 > 備份。

從 SSMS 選擇完整備份
從 SSMS 選擇完整備份

在“備份數據庫”窗口中,選擇“完整備份類型”。

備份數據庫窗口
備份數據庫窗口

如何使用 T-SQL 創建完整數據庫備份

如果您想自動備份,可以使用 T-SQL 代碼。 T-SQL 是用於自動執行 SQL Server 任務的 SQL Server 語言。

以下示例顯示如何使用 T-SQL 創建完整備份。

備份數據庫 [AdventureWorks2019] 到磁盤 = N'C:\backups\AdventureWorks2019.bak',NOFORMAT、NOINIT、名稱 = N'AdventureWorks2019-完整數據庫備份'、SKIP、NOREWIND、NOUNLOAD、STATS = 10

如何自動安排備份

您可以安排在特定時間運行備份。為此,請在 SSMS 中創建備份,然後選擇“腳本”>“為作業編寫腳本操作”選項。

在 SSMS 中創建備份並將操作腳本寫入作業選項。
在 SSMS 中創建備份並將操作腳本寫入作業選項。

在新作業中,轉到“計劃”頁面並按“新建”按鈕創建新計劃。

您可以安排作業每天、每小時等運行。

如何使用 SSMS 創建差異備份

首先,確保您已經有完整備份。

接下來,右鍵單擊數據庫並選擇任務 > 備份。

在備份類型中,確保選擇差異備份類型。

選擇備份類型差異
選擇備份類型差異

如何使用 T-SQL 創建差異備份

或者,您可以使用 T-SQL 命令創建差異備份。

備份數據庫 [AdventureWorks2019] 到磁盤 = N'C:\backups\AdventureWorks2019.bak',帶差異、NOFORMAT、NOINIT、名稱 = N'AdventureWorks2019-完整數據庫備份'、SKIP、NOREWIND、NOUNLOAD、STATS = 10

如何使用 SSMS 創建文件或文件組備份

在 SSMS 中,右鍵單擊數據庫並選擇任務 > 備份。

選擇文件和文件組選項。

選擇要備份的文件和文件組,然後按“確定”。

如何使用 T-SQL 創建文件或文件組備份

或者,您可以使用 T-SQL 命令創建文件或文件組備份。

備份數據庫 [Northwind] FILEGROUP = N'PRIMARY' 到磁盤 = N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\Northwind.bak' 帶有 NOFORMAT、NOINIT、NAME = N'Northwind-Full 數據庫備份'、SKIP、NOREWIND、NOUNLOAD、STATS = 10

如何使用 SSMS 恢復備份

要使用 SSMS 恢復備份,請轉到對象資源管理器,右鍵單擊數據庫,然後選擇恢復數據庫選項。

使用 SSMS 恢復備份
使用 SSMS 恢復備份

在“還原數據庫”窗口中,選擇要還原的數據庫和備份集,然後按“確定”。

如何使用 T-SQL 恢復備份

或者,您可以使用 T-SQL 命令來恢復數據庫。

使用 [大師]

從磁盤 = N'C:\backups\AdventureWorks2019.bak' 恢復數據庫 [AdventureWorks2019],文件 = 10,NOUNLOAD,統計 = 5 去

如何使用 SSMS 恢復差異備份

要使用 SSMS 恢復數據庫,請轉到對象資源管理器,右鍵單擊數據庫,然後選擇“恢復數據庫”選項。

在“還原數據庫”窗口中,選擇要還原的數據庫,選擇完整備份,然後選擇要還原的差異集,然後按“確定”。

選擇完整備份
選擇完整備份

如何使用 T-SQL 恢復差異備份

或者,您可以使用 T-SQL 命令來恢復差異備份。

使用 [大師]

從磁盤 = N'C:\backups\AdventureWorks2019.bak' 恢復數據庫 [AdventureWorks2019],文件 = 10,NORECOVERY,NOUNLOAD,STATS = 5

從磁盤 = N'C:\backups\AdventureWorks2019.bak' 恢復數據庫 [AdventureWorks2019],文件 = 11,NOUNLOAD,統計 = 5 去

如何使用 SSMS 還原文件和文件組

打開 SSMS,轉到對象資源管理器,右鍵單擊數據庫,然後選擇“還原文件和文件組”選項。

選擇要還原的源數據庫和目標數據庫,然後選擇文件組集。

並選擇恢復文件和文件組選項
並選擇恢復文件和文件組選項

選擇要還原的源數據庫和目標數據庫,然後選擇文件組集。

要恢復的源數據庫和目標數據庫。
要恢復的源數據庫和目標數據庫。

如何使用 T-SQL 恢復文件和文件組

或者,您可以使用 T-SQL 命令來恢復數據庫文件或文件組。

恢復數據庫 [Northwind] FILE = N'Northwind' FROM DISK = N'C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Backup\Northwind.bak'WITH FILE = 7,NOUNLOAD,STATS = 10

結論

在本文中,我們討論了 SQL Server 中的不同類型的備份以及如何創建這些備份。我們還討論了使用 SSMS 和 T-SQL 命令恢復數據庫備份的方法。如果數據庫備份損壞,您可以使用第三方工具,例如 Stellar Repair for MS SQL Technician。它包含一個名為 Stellar Backup Extractor for MS SQL 的專用工具,可以從損壞的備份文件 (.bak) 中恢復 SQL 數據庫。

常問問題

  1. 如果 SSMS 更容易,為什麼我應該使用 T-SQL 來備份和恢復數據庫?  T-SQL 通常用於自動化該過程。
  2. 我的機器應該使用什麼類型的備份? 這取決於數據和數據庫的大小。如果您正在處理小型數據庫,則可以使用完整備份。但是,如果您的數據庫很大,請將完整備份與差異日誌和事務日誌結合起來。
  3. 如果我的數據庫損壞了。我可以使用備份來恢復數據庫嗎? 是的,您可以在這種情況下使用備份。
  4. 如果備份損壞怎麼辦? 如果備份文件損壞,您可以使用 SQL Toolkit for MS SQL。該軟件包含一個名為 Stellar Backup Extractor for MS SQL 的模塊,可以從損壞的備份 (.bak) 文件中提取數據庫。
  5. 如果 SQL 數據庫文件損壞怎麼辦? 您可以使用數據庫控制枱命令 (DBCC) CHECKDB 來檢查和修復損壞的數據庫。

需要幫助嗎?聯繫我們的支持團隊 在線客服