sql server的每一個版本都已經逐漸變得越來越自我調整和自我維護了。然而,對于基本維護的需求,例如刪除索引碎片,更新統計數據,檢查數據庫一致性,以及進行備份仍然是不會消失的。你可以想象一下,索引的維護就像是給你的汽車換油,備份就像是買保險。你可以沒有保險,但是一旦你需要它,它就在手邊。同樣的,你的汽車可以在沒有換油的情況下跑上幾千公里,但是經常維護會產生更好的性能,并且可以讓你的汽車壽命延續幾年。
sql server 2005把維護計劃以ssis包的方式予以實現,它為任務的定制提供更大的靈活性。現在開始計劃你要執行的transact-sql命令,以便察看,而不要用沒有文檔記載的sql server 2000中的存儲過程。另一個你可以檢查的領域是執行歷史,它可以使解決問題的維護計劃在很大程度上簡單化。
sql server 2000中的維護計劃
讓我們簡單地回顧一下sql server 2000中的數據庫維護計劃是什么樣子。你通過點擊一些向導的界面創建一個維護計劃,它讓你選擇完全備份、事務日至備份,索引維護和檢查數據庫一致性的選項。這聽起來很簡單,是嗎?是的,除非維護計劃是個“黑盒子”向導并沒有顯示給你剛才創建的任務會執行的transact-sql語句。
更進一步地講,如果你曾經檢查過通過維護計劃向導創建的任務的屬性,你就會知道任務的步驟看起來是下面這個樣子:
execute master.dbo.xp_sqlmaint n'-planid 7bccf8e2-b8f4-4b92-bc3b-
f2fa1bae25c0 -writehistory -vrfybackup -bkupmedia disk -bkupdb -usedefdir -bkext "bak"'
為了了解這個維護計劃屏幕之后的事情,你必須讓你自己熟悉xp_sqlmaint擴展存儲程序。這個程序也叫做 sqlmaint工具,大概有一打的開關。此外,你還可以從命令行調用sqlmaint。如果維護計劃任務在任務歷史中曾經失敗過,在任務歷史中顯示了如下完全沒有意義的信息片斷的話,也許這樣更重要:
|||executed as user: servernameusername. sqlmaint.exe failed. [sqlstate 42000] (error 22029). the step failed.
幸運的是,你可以瀏覽到數據庫維護計劃的文件目錄中,右擊計劃,并且選擇“維護計劃歷史”來獲得更加詳細的錯誤信息。然而,即使是這樣的解決問題的方法在碰到維護計劃任務不總是可靠的時候,也會出錯。
在nutshell sql server2000 維護計劃向導中,創建重要維護任務非常簡單,但是從可用性和支持的角度來說,就差得遠了。
與維護計劃的其他圖形一樣,在sql server2005中也有很大的改善。現在,維護計劃是以sql server集成服務(ssis)包的形式實現的;這就允許在包含在維護計劃中的任務之間創建優先約束。如果你還沒有使用ssis的話,這個消息也許會對你造成威脅——但是不要擔心,你仍然可以通過使用sql server管理套件(ssms)中的向導來建立一個維護計劃。在ssis中構建維護計劃,將會提供額外的靈活性,但是向導會幫助你開始,并且讓你構建一個可靠的維護計劃,而不需要你對ssis有任何的了解,正如你下面將要看到的。
使用向導創建一個維護計劃
要通過使用向導來創建一個維護計劃,首先瀏覽到ssms的管理目錄,右擊“維護計劃”文件夾,然后選擇維護計劃向導。注意,sql server agent服務必須要運行起來,在你創建數據庫維護計劃的時候。最開始的向導界面允許你選擇目標數據庫,并且指定連接到服務器上必需的安全信任書。接下來,你就可以選擇你想要執行的維護任務,如下圖所示:
  
屏幕截圖1: 選擇維護任務
這個屏幕給你一個有關你想要完成的每一種類型的維護任務的大概描述。
|||接下來,你可以定義維護計劃任務的執行順序。例如,你可以在查看數據庫一致性并且運行一個完全的數據庫備份之前重新構建索引。然后,你就可以指定每個任務可能會影響到的目標數據庫和對象。例如,重新構建索引可能會影響到單個的數據庫,多個數據庫,或者某個環境下的所有數據庫。此外,你還能選擇在哪個特定的表和索引視圖上面重新構建索引。你還可以為重新構建索引制定一些高級選項,例如,你想要留給索引頁面使用的空閑空間總量,無論你是否想要填充索引,還是你想要在重新構建它們的時候,還讓它們在線。指定索引選項的屏幕如下所示:
  
屏幕截圖2: 指定索引選項
接下來,為你想要執行的維護計劃定義時間表。或者你還可以根據需要來運行維護計劃。接下來的向導界面允許你指定記錄維護計劃執行過程中狀態日至的文本文件。你可以指定電子郵件地址,以便將維護計劃執行狀態發送給你。最后一個屏幕提供了你在前面幾個界面上選擇的主要的維護計劃選項。就是它了!正如我先前說過的,你不需要了解ssis就可以創建一個數據庫維護計劃。
在你的ssis包后面的內容
現在,讓我們看看實際上在構建過程中發生了什么。要查看你剛剛創建的ssis包,右擊維護計劃,然后選擇“修改”。你就可以看到類似下面的畫面:
  
屏幕截圖3:查看ssis 包
注意,藍色箭頭指出了執行的流程;藍色的表示數據庫一致性將會在“重新構建索引”任務完成之后進行檢查。這個向導指揮讓你評估是否每個任務都在執行下個任務之前完成了;所以,無論“重新構建索引”的任務成功了或者是失敗了,維護計劃都會繼續執行下一步的檢查數據庫一致性任務。但是如果你想要按照某種條件來執行不同的任務,就是前面的任務是失敗還是成功了?如果你雙擊藍色箭頭,ssis就會允許你編輯優先約束,如下圖所示:
|||新聞熱點
疑難解答