適用於:SQL Server
本文描述如何使用 SQL Server Management Studio、Transact-SQL 或 PowerShell 以在 SQL Server 中備份交易記錄。
限制
在明確或BACKUP交易中不允許使用 陳述式。 明確交易是明確定義交易的啟動與結束的一種交易。
不支援 master 系統資料庫的交易記錄備份。
建議
如果資料庫使用完整或大量記錄的 復原模型,您必須定期備份交易記錄,以保護您的資料,並防止 交易記錄填滿。 這會截斷記錄並支援將資料庫還原到特定時間點。
根據預設,每項成功的備份作業都會在 SQL Server 錯誤記錄檔與系統事件記錄檔中加入一個項目。 如果您經常備份記錄檔,這些成功訊息可能會快速累積,因而產生龐大的錯誤記錄檔,讓您難以尋找其他訊息。 在這種情況下,如果您的腳本都不依賴於這些日誌項目,您可以使用追蹤旗標 3226 來隱藏這些日誌項目。請參閱 使用 DBCC TRACEON 設定追蹤旗標。
權限
在執行之前,請先確認在執行個體層級和儲存體層級擁有正確的權限。
資料庫引擎權限
需要的 BACKUP DATABASE 和 BACKUP LOG 權限預設為授與給 系統管理員固定伺服器角色以及 db_owner 和 db_backupoperator 固定資料庫角色的成員。
備份裝置權限
備份裝置實體檔案的擁有權和權限問題可能會干擾備份作業。 具有執行 SQL Server 服務的作業系統帳戶必須能夠從裝置中讀取和寫入資料。 當您嘗試備份或還原並存取實體資源時,備份裝置實體檔案的權限問題才會變得明顯。
注意
不過,在系統資料表中加入備份裝置項目的 sp_addumpdevice 並不會檢查檔案存取權限。
使用 SQL Server Management Studio
連線到適當的 SQL Server 資料庫引擎執行個體之後,在 [物件總管] 中,選取伺服器名稱以展開伺服器樹狀結構。
展開 [資料庫] ,然後視資料庫而定,選取使用者資料庫,或者展開 [系統資料庫] 並選取一個系統資料庫。
以滑鼠右鍵按一下資料庫,指向 [工作],然後選取 [備份]。 會出現 [備份資料庫] 對話方塊。
在 [資料庫] 清單方塊中確認資料庫名稱。 您可以選擇性從清單中選取不同的資料庫。
確認復原模型是
FULL或BULK_LOGGED。在 [備份類型] 清單方塊中,選取 [交易記錄] 。
(選用) 選取 [只複製備份] 來建立只複製備份。 只複製備份是與傳統 SQL Server 備份順序無關的 SQL Server 備份。請參閱只複製備份。
注意
選取 [差異] 選項時,您無法建立「只複製」備份。
接受 [名稱] 文字方塊中建議的預設備份組名稱,或者輸入不同的備份組名稱。
(選用) 在 [描述] 文字方塊中輸入備份組的描述。
指定備份組會在何時過期:
若要讓備份組在特定的天數後過期,請選取 [之後] (預設選項),然後輸入備份組建立之後將會過期的天數。 這個值可以介於 0 到 99999 日之間;值為 0 日意指備份組永遠不會過期。
預設值會在 [伺服器屬性] 對話方塊 ( [資料庫設定] 頁面) 的 [預設備份媒體保留 (以天為單位)] 選項中設定。 若要存取此對話方塊,請以滑鼠右鍵按一下 [物件總管] 中的伺服器名稱並選取 [屬性],然後選取 [資料庫設定] 頁面。
若要讓備份組在特定日期過期,請選取 [於] ,然後輸入備份組將過期的日期。
按一下 [磁碟]、[URL] 或 [磁帶],以選擇備份目的地的類型。 若要選取包含單一媒體集的磁碟或磁帶機 (最多 64 個) 的路徑,請選取 [加入]。 選取的路徑會在 [備份至] 清單方塊中顯示。
若要移除備份目的地,請選取備份並選取 [移除]。 若要檢視備份目的地的內容,請選取目的地,然後選取 [內容]。
若要檢視或選取進階選項,請選取 [選取頁面] 窗格中的 [選項]。
選擇一個 [覆寫媒體] 選項,從以下選項中選取之一:
備份至現有的媒體集
對於此選項,請選取 [附加至現有備份集] 或 [覆寫所有現有備份集];請參閱媒體集、媒體系列和備份集 (SQL Server)。
(選用) 選取 [檢查媒體集名稱及備份組是否逾期],以讓備份作業確認媒體集及備份組逾期的日期和時間。
(選用) 在 [媒體集名稱] 文字方塊中輸入名稱。 如果未指定名稱,就會建立一個空白名稱的媒體集。 如果您指定媒體集名稱,則會檢查媒體 (磁帶或磁碟) 以查看實際名稱是否符合您輸入的名稱。
如果您讓媒體名稱保持空白,並選中核取方塊以針對媒體進行檢查,那麼成功的條件是媒體上的媒體名稱也保持空白。
備份至新的媒體集,並清除所有現有的備份組
針對這個選項,在 [新媒體集名稱] 文字方塊中輸入名稱,然後選擇性在 [新媒體集描述] 文字方塊中描述媒體集。請參閱媒體集、媒體家族和備份組 (SQL Server)。
(選擇性) 在 [可靠性] 區段中選取:
[完成後驗證備份] 。
[寫入媒體之前執行總和檢查碼] 和 (選用) [發生總和檢查碼錯誤時繼續]。
如需總和檢查碼的相關資訊,請參閱備份和還原期間可能發生的媒體錯誤 (SQL Server)。
在 [交易記錄] 區段中:
對於例行的記錄備份,請保留預設選項 [移除非使用中的項目以截斷交易記錄] 。
若要備份記錄檔的尾端 (亦即,使用中記錄),請勾選 [備份記錄檔的尾端,並讓資料庫保持在還原狀態] 。
尾端日誌備份是在發生故障後進行的,以備份日誌的尾端,以防止資料遺失。 在失敗後以及在開始還原資料庫之前,或是在容錯移轉到次要資料庫時,應備份目前的記錄(尾端記錄備份)。 選取此選項相當於在 Transact-SQL 陳述式中
NORECOVERY指定BACKUP LOG選項。如需結尾記錄備份的詳細資訊,請參閱<結尾記錄備份 (SQL Server)>。
如果是備份至磁帶機 (在 [一般] 頁面的 [目的地] 區段中指定),則[備份後卸載磁帶] 選項將會啟用。 選取這個選項會啟動 [卸載之前倒轉磁帶] 選項。
依預設, 是否壓縮備份 取決於 backup-compression 預設 伺服器配置選項的值。 不過,不論目前的伺服器層級預設值為何,您都可以透過核取 [壓縮備份] 壓縮備份,而且可以透過核取 [不要壓縮備份] 防止壓縮。
SQL Server 2008 (10.0.x) Enterprise 和更新版本,以及 SQL Server 2016 (13.x) Standard 含 Service Pack 1 和更新版本支援備份壓縮。
若要檢視目前的備份壓縮預設值,請參閱 伺服器組態:備份壓縮預設值。
若要加密備份檔案,請核取 [加密備份] 核取方塊。 選取要用於加密備份檔案的加密演算法,並提供憑證或非對稱金鑰。 可用於加密的演算法包括:
- AES 128 號
- AES 192
- AES 256 號
- 三重數據加密標準 (DES)
使用 Transact-SQL
執行 BACKUP LOG 語句備份交易日誌,提供以下資訊:
- 所要備份的交易記錄所屬資料庫的名稱。
- 寫入交易紀錄日誌備份的備份裝置。
重要
這個範例使用 AdventureWorks2025 資料庫,而該資料庫則是使用簡單復原模式。 為了允許記錄備份,在執行完整資料庫備份之前,此資料庫已設定為使用完整復原模式。
如需詳細資訊,請參閱<檢視或變更資料庫的復原模式 (SQL Server)>。
這個範例會在先前所建立的具名備份裝置 AdventureWorks2025 上建立 MyAdvWorks_FullRM_log1資料庫的交易記錄備份。
BACKUP LOG AdventureWorks2022
TO MyAdvWorks_FullRM_log1;
GO
使用 PowerShell
設定並使用 SQL Server PowerShell 提供者。 使用 Backup-SqlDatabase Cmdlet,並指定 Log 作為 -BackupAction 參數的值。
下列範例會在伺服器執行個體 <myDatabase> 的預設備份位置,建立 Computer\Instance資料庫的記錄備份。
Backup-SqlDatabase -ServerInstance Computer\Instance -Database <myDatabase> -BackupAction Log