內容
在SQL Server中,數據庫可以存儲在不同的文件和文件組中。 如果您的數據庫較小(100 MB 或更少),則無需過多擔心文件和文件組。 但如果您有一個大型數據庫(多個 GB 或 TB),將數據分離到不同的文件中可以幫助您優化性能。 您可以將數據文件存儲在不同的磁盤上。 這也將有助於更快地備份和恢復數據,因為您不需要恢復整個數據庫,而只需恢復選定的文件或文件組。
備份類型
在 SQL Server 中,有不同類型的備份:
- 完整備份: 包含數據庫中的所有信息。
- 差異備份: 它需要一個完整的備份,然後存儲以前的備份和當前數據庫之間的差異。 此備份需要的信息較少,因為它僅存儲差異。
- 事務日誌備份: 存儲有關事務日誌的信息。
為什麼備份很重要?
您的數據庫可能會由於各種原因而損壞。 備份將幫助您在發生災難和問題(例如硬件故障、病毒攻擊或其他問題)時恢復丟失的數據庫。
如何使用SSMS創建完整備份?
- 您可以使用 SQL Server Management Studio (SSMS) 在 SQL Server 上創建完整備份。 為此,請打開 SSMS,右鍵單擊數據庫並選擇 任務 > 備份。
- 在數據庫備份窗口中,選擇 滿的 備份類型。
如何使用 T-SQL 創建完整數據庫備份?
如果要自動備份,可以使用 T-SQL 代碼。 T-SQL 是用於自動執行 SQL Server 任務的 SQL Server 語言。
下一個 example 展示如何使用 T-SQL 創建完整備份。
備份數據庫 [AdventureWorks2019] 至磁盤 = N’C:backupsAdventureWorks2019.bak’,帶 NOFORMAT、NOINIT、名稱 = N’AdventureWorks2019-完整數據庫備份’、SKIP、NOREWIND、NOUNLOAD、STATS = 10
和
如何自動安排備份?
- 您可以安排備份在特定時間運行。 為此,請在 SSMS 中創建備份並選擇 腳本 > 作業的腳本操作。
- 在新作業中,轉到“計劃”頁面,然後按新建按鈕創建新計劃。
- 您可以安排作業每天、每小時等運行。

如何使用SSMS創建差異備份?
- 首先,確保您已經有完整備份。
- 然後右鍵單擊數據庫並選擇 任務 > 備份。

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

如何使用T-SQL創建差異備份?
您還可以使用 T-SQL 命令創建差異備份。
備份數據庫 [AdventureWorks2019] 至磁盤 = N’C:backupsAdventureWorks2019.bak’,帶差異、原始、NOINIT、名稱 = N’AdventureWorks2019-完整數據庫備份’、跳過、無風、無負載、統計 = 10
和
如何使用 SSMS 創建一個文件或一組文件的備份?
- 在 SSMS 中,右鍵單擊數據庫並選擇 任務 > 備份。

- 選擇文件和文件組選項。

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

如何使用 T-SQL 創建一個文件或一組文件的備份?
或者,您可以使用 T-SQL 命令創建文件或文件組備份。
備份數據庫 [Northwind] FILEGROUP = N’PRIMARY’ TO DISK = N’C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLBackupNorthwind.bak’WITH NOFORMAT、NOINIT、NAME = N’Northwind-完整數據庫備份’、SKIP、SIN VIENTO、SIN CARGA、ESTADÍSTICAS = 10
和
如何使用 SSMS 恢復備份?
- 要使用 SSMS 恢復備份,請轉到對象資源管理器,右鍵單擊數據庫並選擇“恢復數據庫”選項。

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

如何使用 T-SQL 恢復備份?
或者,您可以使用 T-SQL 命令來恢復數據庫。
使用 [master]
恢復數據庫 [AdventureWorks2019] 來自磁盤 = N’C:backupsAdventureWorks2019.bak’ 文件 = 10,無負載,統計 = 5
和
如何使用SSMS恢復差異備份?
- 要使用 SSMS 恢復數據庫,請轉到對象資源管理器,右鍵單擊數據庫並選擇“恢復數據庫”選項。

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

如何使用T-SQL恢復差異備份?
或者,您可以使用 T-SQL 命令來恢復差異備份。
使用 [master]
恢復數據庫 [AdventureWorks2019] 來自磁盤 = N’C:backupsAdventureWorks2019.bak’,文件 = 10,無恢復,無加載,統計 = 5
恢復數據庫 [AdventureWorks2019] 來自磁盤 = N’C:backupsAdventureWorks2019.bak’ 文件 = 11,無負載,統計 = 5
和
如何使用 SSMS 恢復文件和文件組?
- 打開 SSMS,轉到對象資源管理器,右鍵單擊數據庫並選擇還原文件和文件組選項。

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

如何使用 T-SQL 恢復文件和文件組?
或者,您可以使用 T-SQL 命令來恢復數據庫文件或文件組。
恢復數據庫 [Northwind] FILE=N’Northwind’ FROM DISK=N’C:Program FilesMicrosoft SQL ServerMSSQL15.MSSQLSERVERMSSQLBackupNorthwind.bak’ 文件=7,無下載,統計=10
和
結論
在本文中,我們討論了 SQL Server 中的不同類型的備份以及如何創建這些備份。 我們還討論了使用 SSMS 和 T-SQL 命令恢復數據庫備份的步驟。 如果數據庫備份損壞,您可以使用第三方工具,例如 Stellar Toolkit for MS SQL。 它包含一個名為 Stellar Backup Extractor for MS SQL 的專用工具,可以從損壞的備份 (.bak) 文件中恢復 SQL 數據庫。
經常問的問題
如果 SSMS 更容易,為什麼我應該使用 T-SQL 來備份和恢復數據庫?
T-SQL 通常用於自動化該過程。
我的機器應該使用什麼類型的備份?
這取決於數據和數據庫的大小。 如果您運行的是小型數據庫,則可以使用完整備份。 但是,如果您的數據庫很大,請將完整備份與差異日誌和事務日誌結合起來。
如果我的數據庫損壞了。 我可以使用備份來恢復數據庫嗎?
是的,您可以在這種情況下使用備份。
如果備份損壞怎麼辦?
如果備份文件損壞,您可以使用Stellar Toolkit for MS SQL。 該軟件包含一個名為 Stellar Backup Extractor for MS SQL 的模塊,可以從損壞的備份 (.bak) 文件中提取數據庫。
有沒有第三方的數據庫備份工具?
用於備份 SQL Server 數據庫的一些第三方解決方案包括:
SQL和FTP備份: 用於備份數據庫並存儲在FTP、SFTP、FTPS、NAS、網絡、 Google Drive、Dropbox、Box、Amazon S3、Azure 存儲、Backblaze 等其他工具。
備份與恢復 Microsoft SQL服務器 文布解決方案: 該軟件可以幫助從多個服務器備份多個數據庫。