在備份或還原期間啟用或停用備份總和檢查碼 (SQL Server)
適用於:SQL Server
本文說明當您使用 SQL Server Management Studio 或 Transact-SQL 在 SQL Server 中備份或還原資料庫時,如何啟用或停用備份總和檢查碼。
權限
備份
BACKUP DATABASE
和 BACKUP LOG
權限預設為 系統管理員固定伺服器角色以及 db_owner 和 db_backupoperator 固定資料庫角色的成員。
備份裝置實體檔案的擁有權和權限問題可能會干擾備份作業。 SQL Server 必須能夠讀取和寫入裝置;執行 SQL Server 服務的帳戶必須具備寫入權限。 不過,在系統資料表中加入備份裝置項目的 sp_addumpdevice 並不會檢查檔案存取權限。 在嘗試備份或還原時存取實體資源之前,備份裝置實體檔案上的這類問題可能不會出現。
RESTORE
如果還原的資料庫不存在,用戶必須具有 CREATE DATABASE
能夠執行 RESTORE
的許可權。 如果資料庫存在,RESTORE
則許可權預設為 sysadmin 和 dbcreator 固定伺服器角色的成員,以及資料庫的擁有者 (dbo) (針對 FROM DATABASE_SNAPSHOT
選項,資料庫一律存在)。
RESTORE
許可權會授與伺服器隨時可用的成員資格資訊的角色。 因為固定資料庫角色成員資格只有在資料庫可存取且未損及未損及的情況下才能檢查,因此執行時RESTORE
不一定如此,因此db_owner固定資料庫角色的成員沒有RESTORE
許可權。
使用 SQL Server Management Studio
在備份作業期間啟用或停用總和檢查碼
請依照< 建立資料庫備份>的步驟執行。
在 [選項] 頁面上的 [可靠性] 區段中,選取 [在寫入媒體之前執行總和檢查碼]。
使用 Transact-SQL
啟用或停用備份作業的備份總和檢查碼
連線至資料庫引擎。
在標準列上,選取 [新增查詢]。
若要在 BACKUP (Transact-SQL) 語句中啟用備份總和檢查碼,請指定
WITH CHECKSUM
選項。 若要停用備份總和檢查碼,請指定WITH NO_CHECKSUM
選項。 這是預設行為,但是壓縮備份除外。 下列範例指定應執行總和檢查碼。
BACKUP DATABASE AdventureWorks2022
TO DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'
WITH CHECKSUM;
GO
啟用或停用還原作業的備份總和檢查碼
連線至資料庫引擎。
在標準列上,選取 [新增查詢]。
若要在 RESTORE 語句 (Transact-SQL) 語句中啟用備份總和檢查碼,請指定
WITH CHECKSUM
選項。 這是壓縮備份的預設行為。 若要停用備份總和檢查碼,請指定WITH NO_CHECKSUM
選項。 這是預設行為,但是壓縮備份除外。 下列範例指定應執行備份總和檢查碼。
RESTORE DATABASE AdventureWorks2022
FROM DISK = 'Z:\SQLServerBackups\AdvWorksData.bak'
WITH CHECKSUM;
GO
警告
如果您明確要求 CHECKSUM
還原作業,而且備份包含備份總和檢查碼,則備份總和檢查碼和分頁總和檢查碼都會驗證,如默認情況所示。 不過,如果備份集缺少備份總和檢查碼,還原作業會失敗,並出現指出總和檢查碼不存在的訊息。
相關內容
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應