2011-11-24 140 views
1

假設性的問題:在備份期間安排的SQL Server作業會發生什麼情況?

如果維護計劃,調度運行多個數據庫的完整備份,而他們是在網上,並在此期間其他作業計劃運行(存儲過程,SSIS包等),會發生什麼在備份期間對這些作業進行操作

我猜測之一:

  • ,直到備份完成作業被暫停,那麼他們在他們被安排在同一順序運行。

或者

  • SQL服務器使用的是哪種表將每個計劃作業受到影響,作業完成後,將它們備份?

或者

  • SQL Server創建的備份開始前,對他們進行任何更改(包括備份過程中由喬布斯運行的變化)被添加到的所有表的「快照」事務日誌,應該單獨備份。

......我的想法是否正確?

回答

3

想法#3是最接近發生的事情。關鍵是當備份操作完成時,備份文件將處於允許將數據庫恢復到一致狀態的狀態。

the documentation

執行備份操作具有對 運行數據的影響最小;因此,備份操作可以在正常的 操作期間運行。在備份操作期間,SQL Server將直接從數據庫文件中將數據 複製到備份設備。數據是 未更改,並且備份期間正在運行的事務是 從不延遲。因此,您可以使用對生產工作負載影響最小的SQL Server備份執行備份。

...

SQL Server使用聯機備份過程以允許數據庫 備份仍在使用的數據庫,同時。在備份期間,大多數操作都是可能的;例如,在備份操作期間允許INSERT,UPDATE或DELETE 語句。

+0

很好的答案。我可以問一下適用於SQL Server的版本嗎?我研究了這一點,圍繞SQLServer 2005的文檔似乎有很多警告。我的組織在午夜啓動完整備份(SQLServer 2005),並在備份仍在運行時(80 GB DB)於上午12:10開始對數據庫運行批處理作業。一切正常。我可以假設備份中的.bak文件是數據庫在批量作業在備份發生時更新之前的樣子嗎?謝謝。 – TomWalker

相關問題