找不到正在創建備份的程序
我們在客戶伺服器上安裝了一個 SQL Server 2008 實例。客戶的 IT 部門負責機器的各種備份。
SQL Server 日誌顯示每天晚上 7 點都有完整備份,但我們找不到 SQL Server 中安排的任何計劃的證據。
我們聯繫的技術人員無法告訴我們是否有某種自動備份,他們只告訴我們整台機器正在備份。
使用我在這個論壇執行緒中找到的腳本,我發現物理設備名稱是 GUID,這意味著這是一個外部備份過程:
USE [msdb] GO SELECT [bs].[database_name], [bs].[backup_start_date], [bs].[backup_finish_date], [bs].Server_name, [bs].user_name AS [BackupCreator] , [bmf].physical_device_name FROM msdb..backupset bs INNER JOIN msdb..backupmediafamily bmf ON [bs].[media_set_id] = [bmf].[media_set_id] ORDER BY [bs].[backup_start_date] DESC
這是來自上述查詢的一行:
db_name 2015-09-16 19:01:23.000 2015-09-16 19:01:28.000
SERVER_NAME NT AUTHORITY\SYSTEM
{424F084A-F35D-4A66-8FC7-072268A89A77} 5此外,備份開始和完成日期僅跨越 5 秒,所以我想很明顯這不是 sql server 的工作。
這是日誌中的一行:
2015-09-03 19:02:30.71 備份
數據庫已備份。
數據庫:db_name,創建日期(時間):2012/10/12(20:52:11),轉儲頁面:3290021,
第一個 LSN:276028:152755:172,最後一個 LSN:276028:152827:1,轉儲設備數:1、
設備資訊:
(FILE=1,TYPE=VIRTUAL_DEVICE:{’{95380B0A-D50B-408F-B95F-1AB8975BA7F8}5’})。
這只是一條資訊性消息。無需使用者操作。
那麼,既然他們無法幫助我們,我能做些什麼來追踪負責備份的過程呢?我們需要這個是因為我們想以有序的方式協調備份,並且為了使日誌保持在一個合理的大小也做事務日誌備份(現在我們每週都會收縮日誌,這不是一個好方法走)。
我想我找到了負責備份的程序。
我在 Windows 系統事件日誌中搜尋了資訊,並在備份感興趣的時間段中找到了以下行:
Informazioni 16/09/2015 19:01:28 MSSQLSERVER 18264 Backup Informazioni 16/09/2015 19:01:28 MSSQLSERVER 18264 Backup Informazioni 16/09/2015 19:01:28 MSSQLSERVER 18264 Backup Informazioni 16/09/2015 19:01:28 ESENT 2006 ShadowCopy Informazioni 16/09/2015 19:01:28 ESENT 2006 ShadowCopy Informazioni 16/09/2015 19:01:28 ESENT 2003 ShadowCopy Informazioni 16/09/2015 19:01:28 ESENT 2003 ShadowCopy Informazioni 16/09/2015 19:01:28 MSSQLSERVER 3198 Server Informazioni 16/09/2015 19:01:28 MSSQLSERVER 3198 Server Informazioni 16/09/2015 19:01:28 MSSQLSERVER 3198 Server Informazioni 16/09/2015 19:01:28 MSSQLSERVER 3198 Server Informazioni 16/09/2015 19:01:28 MSSQLSERVER 3198 Server Informazioni 16/09/2015 19:01:28 MSSQLSERVER 3198 Server Informazioni 16/09/2015 19:01:28 MSSQLSERVER 3198 Server Informazioni 16/09/2015 19:01:28 MSSQLSERVER 3198 Server Informazioni 16/09/2015 19:01:28 MSSQLSERVER 3198 Server Informazioni 16/09/2015 19:01:25 MSSQLSERVER 3197 Server Informazioni 16/09/2015 19:01:25 MSSQLSERVER 3197 Server Informazioni 16/09/2015 19:01:25 MSSQLSERVER 3197 Server Informazioni 16/09/2015 19:01:25 MSSQLSERVER 3197 Server Informazioni 16/09/2015 19:01:25 MSSQLSERVER 3197 Server Informazioni 16/09/2015 19:01:25 MSSQLSERVER 3197 Server Informazioni 16/09/2015 19:01:25 MSSQLSERVER 3197 Server Informazioni 16/09/2015 19:01:25 MSSQLSERVER 3197 Server Informazioni 16/09/2015 19:01:25 ESENT 2001 ShadowCopy Informazioni 16/09/2015 19:01:25 ESENT 2001 ShadowCopy Informazioni 16/09/2015 19:01:25 ESENT 2001 ShadowCopy Informazioni 16/09/2015 19:01:25 MSSQLSERVER 3197 Server Informazioni 16/09/2015 19:01:23 ESENT 2005 ShadowCopy Informazioni 16/09/2015 19:01:23 ESENT 2005 ShadowCopy Informazioni 16/09/2015 19:01:11 BeVssProvider 0 Nessuna Informazioni 16/09/2015 18:38:06 VSS 8224 Nessuna Informazioni 16/09/2015 18:29:01 VSS 8224 Nessuna
您可以清楚地看到 MSSQLSERVER 上的備份活動在 BeVssProvider 啟動的其他活動之前和之前很短,繼續使用 ESENT 的 ShadowCopy。
我搜尋了這些名稱,並且 BeVssProvider 連結到Symantec Backup Exec™ for Windows Servers ( http://systemexplorer.net/it/file-database/file/bevssprovider-exe )。
所以我猜這個軟體每天都在為機器拍攝快照(我不是這個領域的專家)。
2015-09-03 19:02:30.71 備份數據庫已備份。數據庫:db_name,創建日期(時間):2012/10/12(20:52:11),轉儲頁面:3290021,第一個 LSN:276028:152755:172,最後一個 LSN:276028:152827:1,轉儲設備數:1、設備資訊:(FILE=1,TYPE=VIRTUAL_DEVICE:{’{95380B0A-D50B-408F-B95F-1AB8975BA7F8}5’})。這只是一條資訊性消息。無需使用者操作。
備份消息中的事實
VIRTUAL_DEVICE
清楚地表明這不是 T-SQL 作業或 SQL Server 計劃的備份,因此您不會在 SQL Server 的任何地方找到它。您要麼有一些third party
工具或windows inbuilt backup mechanism
正在執行正在執行此備份的工具。現在,如果您真的想找出備份的來源,請諮詢 windows 團隊或儲存團隊,您會得到一個不錯的主意。如果所有利益相關者都說他們不知道備份的來源(這極不可能),您可以通過禁用
SQL Server VSS writer
from來阻止此類備份的發生Services.msc
。此類第三方備份依賴 SQL Server VSS 編寫器服務來連接到數據庫並進行備份。
在繼續上述操作之前,我建議您與備份/Windows 管理員交談,如果他們不知道任何此類備份,您可以繼續禁用此服務。否則你不能,你應該與他們協商更多關於這方面的資訊。
請閱讀有關 VSS 備份的資訊