Sql Server 維護計劃 - 任務和調度的最佳實踐
我的任務是為我們的 Sql Server 2005 數據庫設計維護計劃。我知道對於備份,我想每 15 分鐘進行一次每日完整數據庫備份和事務日誌備份。我的問題在於弄清楚我想要執行哪些其他任務以及應該多久執行一次。
所以,到目前為止,我有這個想法。如果我的想法有任何缺陷或更好的方法,請糾正我。
- 備份 - 所有表,完全備份(每天)
- 備份 - 選定表、完整備份(每小時)
- 備份 - 事務日誌(每 15 分鐘)
- 檢查數據庫完整性(每天)
- 重組索引(每天)
- 更新統計數據(每天)
- 收縮數據庫(每週)
- 重建指數(每週)
- 維護清理(每天)
我記得前段時間(當我在另一份工作中製定類似計劃時)讀到其中一些任務不需要每天執行或不應該每天執行。至於哪些,它逃脫了我。我可以使用一些指導來創建更好的維護計劃,以減少災難中的數據失去,但不會在高峰時段執行時對系統造成負擔(並且還會提高性能)。
喬希,
對於所有 DBA 來說,這是一項非常常見的任務,並且每個人和每台伺服器的正確答案都不相同。與許多其他事情一樣,這取決於您需要什麼。
您絕對不想像已經建議的那樣執行“收縮數據庫”。它對性能的邪惡和下面的參考將告訴你為什麼。它會導致磁碟和索引碎片,這可能會導致性能問題。你最好為數據和日誌文件預先分配一個大的大小,這樣自動增長就不會啟動。
我不明白你的#2。選定的表完全備份。你能詳細說明一下嗎?
在進行索引重組、更新統計資訊和索引重建時,您需要注意如何執行此操作,否則您最終將使用更多資源並最終導致性能問題。
當您重建索引時,索引的統計資訊會使用全掃描更新,但如果您在此之後更新統計資訊,那麼這些將使用預設樣本再次更新(這取決於幾個因素,當表大小 > 8 時,通常是表的 5% MB),這可能會導致性能問題。根據您擁有的版本,您可能能夠進行線上索引重建。進行此活動的正確方法是檢查碎片量,並根據碎片量進行索引重建或索引重組+更新統計資訊。此外,您可能希望確定哪些表需要更頻繁地更新統計資訊並嘗試更頻繁地更新統計資訊。
維護計劃是可以的,但是除非您可以登錄到 SSIS 並調整 MP,否則很難在這些定制中充分利用它們。這就是為什麼我不喜歡使用它們,而是使用Ola Hallengren 的免費腳本,這些腳本比 MP 更強大。另外,我建議您閱讀 Paul Randal 關於該主題的參考文章。
參考:http ://technet.microsoft.com/en-us/magazine/2008.08.database.aspx
這不是對您問題的全面回答,而是一個很好的起點。如果您有任何其他問題/意見,請告訴我們。