Sql-Server
如何對 SQL Server 數據庫備份文件進行完整性測試?
我被指派每兩週檢查一次來自 sql server 的數據庫備份的完整性。我是這個領域的新手,所以我不知道如何正確地完成這項任務。如果有人(黑客)修改了數據庫備份中的數據,它是文件完整性的一部分嗎?有沒有辦法檢查它?
有句老話…
**>
驗證備份是否良好/可用的唯一方法是還原它。重複 - 在您恢復之前,您不知道您有一個好的備份!
**我強烈建議您比每兩週更頻繁地檢查您的備份 - 至少每週一次,最好比這更頻繁。
在我的商店,我們有一個“播放”伺服器,用於自動恢復我們認為“重要”的數據庫的最新 FULL/DIFF。我們使用 Windows 任務計劃程序來啟動一個包含多個 SQLCMD 步驟的 bat 文件。成功恢復後,我們執行完整的 DBCC CHECKDB WITH ALL_ERRORMSGS,NO_INFOMSGS 並將結果輸出到 txt 文件。然後我們將輸出的 txt 文件通過電子郵件發送到數據庫組進行評估。
這個過程測試了兩件事
- 我可以恢復我的備份嗎?
- 備份中的資料結構是否完整 (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
查看這些優秀的文章以獲取有關數據庫完整性檢查的更多資訊: