建立差分資料庫備份(SQL Server)

適用於:SQL Server

本文說明如何使用 SQL Server Management Studio、Transact-SQL 或 PowerShell 在 SQL Server 中建立差分資料庫備份。

關於備份概念與任務的概述,請參閱備份概覽(SQL Server)。

必要條件

差異資料庫備份需要先前的完整資料庫備份。 如果資料庫沒有備份,建議先做完整的資料庫備份。 如需詳細資訊,請參閱 建立完整資料庫備份。

建議

由於差異備份會隨時間愈來愈大,因此還原差異備份可能會大幅拉長還原資料庫所需的時間。 每隔固定時間重新執行一次完整備份,以建立新的差異備份基準。

例如,你可以每週備份一次完整資料庫,接著在平日進行每日差分備份。

Limitations

你不能在明示或隱含交易中使用該 BACKUP 語句。

許可

BACKUP DATABASE 和 BACKUP LOG 權限預設授與 sysadmin 固定伺服器角色以及 db_owner 和 db_backupoperator 固定資料庫角色的成員。

SQL Server 服務帳號必須對備份裝置的實體檔案擁有讀寫權限。 該檔案的所有權或權限問題會阻止備份與還原操作,且僅在備份或還原操作執行時才會出現。

例如, sp_addumpdevice 系統儲存程序會將備份裝置條目加入系統資料表, 但不會 驗證檔案存取。

使用 SQL Server Management Studio

  1. 在 物件總管 中,連接 資料庫引擎,然後展開伺服器樹。

  2. 展開 資料庫,然後選擇使用者資料庫。 或者,展開 系統資料庫 並選擇系統資料庫。

  3. 以滑鼠右鍵按一下資料庫,指向 [工作],然後選取 [備份]。 會出現 [備份資料庫] 對話方塊。

  4. 在 資料庫 下拉選單中,確認資料庫名稱。 可選擇選擇不同的資料庫。

    你可以用任何 復原模式 (完整、批量記錄或簡單)執行差分備份。

  5. 在 備份類型 下拉式清單中,選取 差異備份。

    重要

    當您選取 差異備份 時,請確認 僅複製備份 核取方塊未勾選。 你無法在只複製的完整備份上建立差分備份。 如需詳細資訊,請參閱 僅複製備份。

  6. 對於 備份元件,請選擇 資料庫。

  7. 在 名稱 文字方塊中,使用預設的備份集名稱,或輸入新的名稱。

  8. 可選擇性地在 描述 文字框中輸入描述。

  9. 指定備份集何時到期:

    • 若要在特定天數後讓備份組過期,請選擇 「之後 」(預設),並輸入天數。 值範圍從 0 到 99999。 值 表示 0 備用集永不過期。

      預設值設定在伺服器屬性對話框的資料庫設定頁面的預設備份媒體保留(以天為單位)選項中。 要開啟它,請在 物件總管 中右鍵點擊伺服器名稱,選擇屬性,然後選擇資料庫設定頁面。

    • 若要在特定日期讓備份組過期,請選擇 「開啟」並輸入該日期。

  10. 對於備份目的地,請選擇 磁碟 或 網址。 若要為單一媒體組新增最多 64 顆磁碟機,請選擇 新增。 選取的路徑會出現在 「備份到」 下拉選單中。

    若要移除備份目的地,請選取備份並選取 [移除]。 若要檢視備份目的地的內容,請選取目的地,然後選取 [內容]。

    注意

    如需更多有關備份到 URL 的資訊,請參閱 SQL Server 備份到 Azure Blob 儲存體 的 URL。

  11. 若要檢視或選取進階選項,請選取 [選取頁面] 窗格中的 [選項]。

  12. 在 Overwrite Media 中,請選擇下列其中一個選項:

    • 備份至現有的媒體集

      選擇「 附加到現有備份集 」或 覆寫所有現有備份集。 可選擇 「檢查媒體組名稱與備份組有效期限 」勾選框,並在 「媒體組名稱 」文字框中輸入名稱。

      如果你沒有指定名稱,SQL Server 會用空白名稱建立媒體集。 如果你指定名稱,SQL Server 會檢查媒體以確認名稱是否相符。

      如果您將媒體名稱留白並選取該核取方塊,則只有當媒體上的名稱也是空白時,檢查才會成功。

    • 備份至新的媒體集,並清除所有現有的備份組

      在 新媒體套裝名稱 的文字框中輸入一個名稱。 可選擇性地在 新媒體集描述 文字框中描述媒體集。

  13. 在 可靠性 區塊中,可選擇:

  14. SQL Server 支援備份壓縮。 預設情況下,SQL Server 會根據backup-compression default伺服器設定選項壓縮備份。 不論伺服器層級預設為何,選擇「 壓縮備份 」以壓縮備份,或選擇 「不壓縮備份 」以防止壓縮。

    若要檢視目前的備份壓縮預設值,請參閱 伺服器組態:備份壓縮預設值。 欲了解更多關於備份壓縮的資訊,請參閱備份壓縮(SQL Server)。

備註

  • 您也可以改用維護計畫精靈來建立差異資料庫備份。

  • 交易日誌區塊的選項除非你在備份交易日誌,否則是非啟用的。 請在一般頁面的備份類型區段指定此選項。

使用 Transact-SQL

執行該 BACKUP DATABASE 語句以建立差分資料庫備份。 指定:

  • 欲備份的資料庫名稱。

  • 寫入完整資料庫備份的備份裝置。

  • 那個 DIFFERENTIAL 條款只備份上次完整備份後改變的資料庫部分。

使用下列語法:

BACKUP DATABASE database_nameTO<backup_device>WITH DIFFERENTIAL

範例 (Transact-SQL)

本文中的程式碼範例使用 AdventureWorks2025 或 AdventureWorksDW2025 範例資料庫,您可以從 Azure Data SQL 範例存放庫 GitHub 存放庫下載這些資料庫。

-- Create a full database backup first.
BACKUP DATABASE AdventureWorks2025
    TO AdventureWorks2025_1
    WITH INIT;
GO

-- Time elapses.
-- Create a differential database backup, appending the backup
-- to the backup device containing the full database backup.
BACKUP DATABASE AdventureWorks2025
    TO AdventureWorks2025_1
    WITH DIFFERENTIAL;
GO

備註

關於備份到磁帶的資訊,請參閱BACKUP「建立完整資料庫備份」中的磁帶選項及備份到磁帶裝置範例。

注意

TAPE 選項將在未來版本的 SQL Server 中被移除。 請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。

使用 PowerShell

使用 Backup-SqlDatabase 命令程式。 若要指定差分資料庫備份,請使用 -Incremental 與 的 -BackupAction Database參數。

注意

此範例需要 SqlServer 模組。 如需詳細資訊,請參閱 SQL Server PowerShell Provider。

範例 (PowerShell)

以下範例會建立 AdventureWorks2025 資料庫的差異備份,並將其備份至伺服器執行個體 Computer\Instance 的預設備份位置。 完整的資料庫備份必須已經存在。

如需完整的語法範例,請參閱 Backup-SqlDatabase。

$credential = Get-Credential

Backup-SqlDatabase -ServerInstance Computer[\Instance] -Database AdventureWorks2025 -BackupAction Database -Incremental -Credential $credential