備份概觀 (SQL Server)

每一種復原模式都能讓您備份全部或部分的 SQL Server 資料庫或資料庫的個別檔案或檔案群組。無法建立資料表層級備份。

[!附註]

SQL Server 備份與還原可以跨所有支援的作業系統運作,不管它們是 64 位元還是 32 位元系統都一樣。如需有關支援之作業系統的詳細資訊,請參閱<安裝 SQL Server 2008 R2 的硬體和軟體需求>。

資料備份

資料備份的範圍 (「資料備份」(Data Backup)) 可以是整個資料庫、部分資料庫,或者一組檔案或檔案群組。對上述各種狀況,SQL Server 都能支援完整與差異備份:

  • 完整備份

    「完整備份」包含特定資料庫或一組檔案群組或檔案中的所有資料,也包括足以讓這個資料復原的記錄。

  • 差異備份

    「差異備份」是以資料的最新完整備份做為基礎。這就稱為差異的「基底」或差異基底。差異基底是讀取/寫入資料的完整備份。差異備份只包含差異基底之後變更過的資料。在基底備份之後隨即執行差異備份,通常會比建立完整備份的基底來得更快更小。因此,使用差異備份可以加快經常性備份的處理速度,從而降低資料遺失的風險。差異基底通常是由數個連續差異備份所使用。在還原時,首先會還原完整備份,接著則是最近一次的差異備份。

    資料庫隨著時間不斷更新之後,差異備份中所包含的資料數量也會跟著增加。這樣會減緩建立與還原備份的速度。最後,就必須建立另一個完整備份來為另一系列的差異備份提供新的差異基底。

    [!附註]

    一般而言,差異備份涵蓋的資料檔案與單一差異基底中所涵蓋的那些檔案相同。在簡單復原模式下,差異備份只能有一個差異基底。嘗試使用多個基底會導致錯誤以及備份作業失敗。在完整復原模式下,差異檔案備份可以使用多個基底,但是這樣可能會難以管理。如需詳細資訊,請參閱<使用多重基底差異備份>。

每個資料備份都會包括交易記錄的部分,這樣該備份就可以一直復原到備份的結尾。

在完整復原模式或大量記錄復原模式下進行第一次資料備份之後,需要定期執行「交易記錄備份」 (或「記錄備份」)。每個記錄備份都會涵蓋建立備份當時正在進行中的交易記錄部分,而且記錄備份也包含上一次記錄備份未備份到的所有記錄。

資料庫備份

資料庫備份很容易使用,建議您在資料庫大小許可的範圍內多加採用。SQL Server 支援下列資料庫備份類型:

備份類型

描述

資料庫備份

整個資料庫的完整備份。資料庫備份代表備份完成時的整個資料庫。

差異資料庫備份

資料庫中所有檔案的備份。這個備份僅包含每個檔案自最近資料庫備份後修改過的資料範圍。

部分備份

部分及差異部分備份是 SQL Server 2005 導入的新功能。這些備份的設計目的,是為了要在簡單復原模式下備份包含唯讀檔案群組的資料庫時,提供更大的彈性。不過,所有復原模式都支援這些備份。

SQL Server 2008 支援下列檔案備份類型:

備份類型

描述

部分備份

備份主要檔案群組、每個讀取/寫入檔案群組,以及任何選擇性指定之唯讀檔案或檔案群組中的所有完整資料。唯讀資料庫的部分備份只包含主要檔案群組。

差異部分備份

僅包含自從同一組檔案群組最近部分備份後修改之資料範圍的備份。

檔案備份

資料庫中的檔案可個別備份及還原。使用檔案備份可以增加復原的速度,因為這樣可以讓您只還原受損的檔案,而不需要還原資料庫的其餘部分。例如,如果資料庫由數個檔案組成,這些檔案分別位在不同磁碟上,現在有一個磁碟故障了,就只需還原故障磁碟上的檔案。不過,規劃及還原檔案備份的工作可能會很複雜,因此也只有在檔案備份確實對您的還原計畫有所助益時才應該使用。

SQL Server 支援下列檔案備份類型:

備份類型

描述

檔案備份

這是一或多個檔案或檔案群組中所有資料的完整備份。

重要事項重要事項
在簡單復原模式下,檔案備份基本上受到唯讀次要檔案群組的限制。您可以建立讀取/寫入檔案群組的檔案備份,但是必須先將檔案群組設定成唯讀,並進行差異唯讀檔案備份,才可以還原讀取/寫入檔案備份。

差異檔案備份

這是一或多個檔案的備份,其中包含自從每個檔案最近完整備份後變更過的資料範圍。

附註附註
在簡單復原模式下,這會假設自從完整備份後,資料已經變更成唯讀。

[!附註]

您可以備份並還原全文檢索目錄。如需詳細資訊,請參閱<備份和還原 SQL Server 2008 全文檢索目錄>和<分次還原和全文檢索索引>。

交易記錄備份 (只限於完整和大量記錄復原模式)

在完整復原模式或大量記錄復原模式下,需要定期執行「交易記錄備份」 (或「記錄備份」)。每個記錄備份都會涵蓋建立備份當時正在進行中的交易記錄部分,而且也包含上一次記錄備份未備份到的所有記錄。沒有中斷的一連串記錄備份包含資料庫的完整記錄鏈結,這就是所謂的無間斷。在完整復原模式下,偶或在大量記錄復原模式下,無間斷的記錄鏈結可讓您將資料庫還原到任何一個時間點。

您必須先建立完整備份 (如資料庫備份),才能建立第一個記錄備份。此後,就需要定期備份交易記錄,這不僅是要降低工作損失的風險,也是為了在必要時可以截斷交易記錄。如需詳細資訊,請參閱<使用交易記錄備份>。

重要事項重要事項

若要限制您需要還原的記錄備份數目,定期備份資料是基本作業。例如,您可能會排程每週的完整資料庫備份和每日的差異資料庫備份。

僅限複製備份

通常,進行備份會變更資料庫,而且會影響往後其他備份的還原方式。不過,偶爾為了特殊目的進行備份,而不影響資料庫的整體備份及還原程序會很有用。基於此目的,SQL Server 2005 中導入了僅限複製備份。這些備份不受 SQL Server 一般備份順序的影響。如需詳細資訊,請參閱<只複製備份>。

備份裝置

SQL Server 備份是在備份裝置上建立的,例如磁碟檔案或磁帶媒體。您可以將新的備份附加至裝置上任何現有的備份,或覆寫任何現有的備份。如需詳細資訊,請參閱<在 SQL Server 中使用備份媒體>。

排程備份

執行備份作業對進行中的交易影響最小,所以可以在一般作業過程中執行備份作業。在備份作業期間,SQL Server 會將資料直接從資料庫檔案複製到備份裝置。資料會保持不變,同時絕不會延遲在備份期間所執行的交易。因此,您可以執行 SQL Server 備份,並且將實際工作負載受到的影響降至最低。如需有關備份期間並行限制的詳細資訊,請參閱本主題稍後的<SQL Server 在備份作業上的限制>。

您可以將備份排程為按照設定的間隔自動執行。如需有關如何為資料庫備份及記錄備份排程備份作業的詳細資訊,請參閱<維護計畫精靈>。

備份壓縮

SQL Server 2008 Enterprise (含) 以後版本支援建立壓縮的備份,而每個 SQL Server 2008 (含) 以後版本都可以還原壓縮的備份。如需詳細資訊,請參閱<備份壓縮 (SQL Server)>。

SQL Server 在備份作業上的限制

在 SQL Server 2005 (含) 以後版本中,可以在資料庫仍在線上運作以及正在使用中的時候進行備份。不過,會有下列限制:

無法備份離線資料

隱含或明確參考離線資料的任何備份作業都會失敗。一些典型的例子如下:

  • 要求進行完整資料庫備份,但資料庫的一個檔案群組為離線狀態。因為所有檔案群組是明確納入在完整資料庫備份中,所以此作業會失敗。

    若要備份這個資料庫,您可以使用檔案備份,並且指定只限在線上的檔案群組。

  • 您要求進行部分備份,但讀取/寫入檔案群組處於離線狀態。因為部分備份需要所有的讀取/寫入檔案群組,所以此作業會失敗。

  • 要求進行特定檔案的檔案備份,但其中一個檔案不在線上。該作業會失敗。若要備份線上檔案,您可以省略檔案清單中的離線檔案,然後重複該作業。

一般而言,即使有一個或多個資料檔案無法使用,記錄備份都會成功。不過,如果在大量記錄復原模式下變更任何包含大量記錄的檔案,則必須所有檔案都在線上,才能讓備份成功。

備份期間的並行限制

SQL Server 利用線上備份處理序,使您能夠在資料庫處於使用狀態時備份資料庫。在備份期間,您可以執行大部分的作業;例如,在備份作業期間,您可以執行 INSERT、UPDATE 或 DELETE 陳述式。不過,如果試圖在建立或刪除資料庫檔案過程中啟動備份作業,則備份作業會等候到建立或刪除作業完成,或備份逾時為止。

資料庫備份或交易記錄備份期間所無法執行的作業包括:

  • 檔案管理作業,例如,含有 ADD FILE 或 REMOVE FILE 選項的 ALTER DATABASE 陳述式。

  • 壓縮資料庫或壓縮檔案的作業。其中包括自動壓縮作業。

  • 如果在備份作業進行當中試圖建立或刪除資料庫檔案,建立或刪除作業會失敗。

如果備份作業與檔案管理或壓縮作業重疊,便會發生衝突。不論哪一個衝突的作業先開始,第二項作業都會等候第一項作業設定的鎖定逾時(逾時期間由工作階段逾時設定控制)。如果在逾時期間解除鎖定,第二項作業就會繼續下去。如果鎖定逾時,第二項作業就會失敗。

[!附註]

如需有關如何建立備份的詳細資訊,請參閱<建立 SQL Server 資料庫的完整和差異備份>和<使用交易記錄備份>。