分享方式:


在備份或還原期間啟用或停用備份總和檢查碼 (SQL Server)

適用於:SQL Server

此文章描述如何使用 SQL Server Management Studio 或 Transact-SQL,在 SQL Server 中備份或還原資料庫時啟用或停用備份總和檢查碼。

權限

備份

BACKUP DATABASEBACKUP LOG 權限預設為 系統管理員固定伺服器角色以及 db_ownerdb_backupoperator 固定資料庫角色的成員。

備份裝置實體檔案的擁有權和權限問題可能會干擾備份作業。 SQL Server 必須能夠讀取和寫入裝置;執行 SQL Server 服務的帳戶必須具備寫入權限。 不過,在系統資料表中加入備份裝置項目的 sp_addumpdevice 並不會檢查檔案存取權限。 當您嘗試備份或還原時,存取實體資源之前不一定會出現備份裝置實體檔案的這些問題。

RESTORE

如果還原的資料庫不存在,則使用者必須有 CREATE DATABASE 權限才能執行 RESTORE。 如果資料庫存在,則 RESTORE 權限預設為 sysadmindbcreator 固定伺服器角色成員以及資料庫擁有者 (dbo) (對 FROM DATABASE_SNAPSHOT 選項而言,資料庫一律存在)。

RESTORE 權限提供給伺服器隨時可以取得其成員資格資訊的角色。 由於資料庫必須是可存取且未損毀,才能夠檢查固定資料庫角色成員資格,但執行 RESTORE 時未必如此;因此,db_owner 固定資料庫角色的成員並沒有 RESTORE 權限。

使用 SQL Server Management Studio

在備份作業期間啟用或停用總和檢查碼

  1. 請依照< 建立資料庫備份>的步驟執行。

  2. 在 [選項] 頁面的 [可靠性] 區段中,選取 [寫入媒體之前執行總和檢查碼]

使用 Transact-SQL

為備份作業啟用或停用備份總和檢查碼

  1. 連線至資料庫引擎。

  2. 在標準列上,選取 [新增查詢]。

  3. 若要在 BACKUP (Transact-SQL) 陳述式中啟用備份總和檢查碼,請指定 WITH CHECKSUM 選項。 若要停用備份總和檢查碼,請指定 WITH NO_CHECKSUM 選項。 這是預設行為,但是壓縮備份除外。 下列範例指定應執行總和檢查碼。

BACKUP DATABASE AdventureWorks2022
TO DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'
WITH CHECKSUM;
GO

為還原作業啟用或停用備份總和檢查碼

  1. 連線至資料庫引擎。

  2. 在標準列上,選取 [新增查詢]。

  3. 若要在 RESTORE Statements (Transact-SQL) 陳述式中啟用備份總和檢查碼,請指定 WITH CHECKSUM 選項。 這是壓縮備份的預設行為。 若要停用備份總和檢查碼,請指定 WITH NO_CHECKSUM 選項。 這是預設行為,但是壓縮備份除外。 下列範例指定應執行備份總和檢查碼。

RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'
WITH CHECKSUM;
GO

警告

如果您明確地在還原作業中要求 CHECKSUM,而且備份包含備份總和檢查碼,就會和預設情況一樣,備份總和檢查碼及分頁總和檢查碼都會加以驗證。 然而,如果備份組沒有備份總和檢查碼,則還原作業就會失敗,並且會產生訊息指出總和檢查碼不存在。