行業新聞與部落格

如何在 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 來檢查和修復損壞的資料庫。

需要幫助嗎?聯絡我們的支援團隊 線上客服