Sql-Server

如何對 SQL Server 數據庫備份文件進行完整性測試?

  • December 12, 2016

我被指派每兩週檢查一次來自 sql server 的數據庫備份的完整性。我是這個領域的新手,所以我不知道如何正確地完成這項任務。如果有人(黑客)修改了數據庫備份中的數據,它是文件完整性的一部分嗎?有沒有辦法檢查它?

有句老話…

**>

驗證備份是否良好/可用的唯一方法是還原它。重複 - 在您恢復之前,您不知道您有一個好的備份!

**我強烈建議您比每兩週更頻繁地檢查您的備份 - 至少每週一次,最好比這更頻繁。

在我的商店,我們有一個“播放”伺服器,用於自動恢復我們認為“重要”的數據庫的最新 FULL/DIFF。我們使用 Windows 任務計劃程序來啟動一個包含多個 SQLCMD 步驟的 bat 文件。成功恢復後,我們執行完整的 DBCC CHECKDB WITH ALL_ERRORMSGS,NO_INFOMSGS 並將結果輸出到 txt 文件。然後我們將輸出的 txt 文件通過電子郵件發送到數據庫組進行評估。

這個過程測試了兩件事

  1. 我可以恢復我的備份嗎?
  2. 備份中的資料結構是否完整 (DBCC)

以下是我們的 bat 文件中的一些範例步驟

SQLCMD -S Localhost -Q "IF  EXISTS (SELECT name FROM sys.databases WHERE name = N'<YourDatabase>') DROP DATABASE [<YourDatabase>]" -E -b -d master

SQLCMD -S Localhost -Q "EXEC SCUTILITY.dbo.RestoreProdForDBCC" -E -b -d SCUTILITY 

SQLCMD -S Localhost -Q "print 'Starting DBCC ' + convert(char,getdate(),121);dbcc checkdb ('<YourDatabase>') WITH ALL_ERRORMSGS,NO_INFOMSGS;print 'Completed DBCC ' + convert(char,getdate(),121)" -E -b -d master -o "F:\DBCC\dbcc_output.txt"

SQLCMD -S Localhost -Q "EXEC msdb.dbo.sp_send_dbmail @profile_name='SqlServerEmailProfile', @recipients='<DatabaseTeam>', @subject='DBCC has completed!', @file_attachments='F:\DBCC\dbcc_output.txt';" -E -b -d msdb

查看這些優秀的文章以獲取有關數據庫完整性檢查的更多資訊:

DBCC CHECKDB / 數據庫完整性

從各個角度檢查數據庫

引用自:https://dba.stackexchange.com/questions/157874