天天看點

SQL Server代理(1/12):配置和概況

SQL Server代理是所有實時資料庫的核心。代理有很多不明顯的用法,是以系統的知識,對于開發人員還是DBA都是有用的。這系列文章會通俗介紹它的很多用法。

SQL Server代理是SQL Server作業排程和報警服務,使用得當的話,會大大簡化資料庫管理者(DBA)的工作。

SQL Server代理的核心是運作批處理作業(batch jobs),“批”是簡單的“一系列操作”,通常用T-SQL腳本定義。這些可以作為作業(job)運作,在特定計劃(schedule)上,你會選擇安排在少數使用者通路資料庫的時候;換句話說,它們以批處理作業使用SQL Server代理進行計劃。這些批處理作業可以是任何東西,從零碎的T-SQL任務,到複雜的,在多個SQL Server執行個體和多個計算機間運作的多個系統作業。SQL Server也允許你通知使用者,例如通過郵件,當特定批處理作業完成時,或當錯誤發生時(通知引擎會在第3篇文章談到)。

很可能,作為DBA的你,希望能立即在新部署的SQL Server上使用SQL Server代理來計劃作業。例如,你的第一個任務會是備份系統資料,使用電子郵件警報來告訴你備份作業成功還是失敗。接下來的任務會包括你的使用者資料庫的配置和計劃備份,索引維護操作(重建或重組)等等。如果你管理相當簡單的SQL Server系統,那麼你會啟用維護計劃來計劃作業安排,例如,使用SSMS資料庫維護計劃向導。

這篇文章是探索SQL Server代理功能的第1篇,讨論下如何充分利用SQL Server代理。它包括介紹主要的元件和SQL Server代理的功能,展示如何讓這個服務運作起來,并示範下如何從SSMS建立和執行簡單的批處理作業。接下來的文章會深入每個元件,包括如何使用SQL Server代理結合使用SMO,PowerShell和T-SQL。

這系列文章會集中于SQL Server 2005, SQL Server 2008和SQL Server 2008 R2;但是,在這個系列裡的大部分資訊同樣适用于SQL Server 2000。

讓SQL Server代理運作起來

在SQL Server初始配置期間,SQL Server代理預設是不啟用,是以使用SQL Server代理的第一個步驟,是讓SQL Server代理運作起來。

設定代理和SQL Server自動啟動

為了設定SQL Server代理自動啟動,點選【開始】【Microsoft SQL Server 2008 R2】【配置工具】,打開【SQL Server 配置管理器】。你需要是本地Windows管理者賬戶來運作這個工具。

一旦啟動後,這個工具會自動連接配接你的本地電腦。在樹型裡點選【SQL Server 服務】,在右側的面闆裡,你會看到安裝的SQL Server服務清單。其中應該是“SQL Server 代理(執行個體名稱)”,執行個體名稱要麼是你安裝的SQL Server執行個體名稱,或者是“MSSQLSERVER”,如果你配置了預設執行個體。如果【自動模式】已經設定為【自動】,太好了,在安裝期間這已經正确配置。如果沒有,輕按兩下【SQL Server代理】,在出現的屬性對話框裡點選【服務】标簽,點選【啟動模式】,下拉裡選擇【自動】,然後點選【應用】(如插圖1.1所示)。現在當伺服器重新開機的時候,SQL Server代理會自動啟動,SQL Server也是運作的。如果SQL Server代理沒有運作,現在就啟動這個服務。

SQL Server代理(1/12):配置和概況

插圖 1.1——為SQL Server代理配置SQL Server配置管理器

服務賬号選擇

基于你要在SQL Server代理上計劃要做的,你需要保證你已經配置了合适的服務賬号。如果你按部就班來的話,你應該在SQL Server代理屬性的【服務】标簽頁。點回【登入】标簽頁。對于SQL Server代理的基本操作,你可以使用内置賬号,例如Network Service(在SQL Server安裝期間,這個服務賬号會被預設選擇,不管選了什麼服務)。插圖2就是選擇對話框。直接從内置賬戶裡選擇【Network Service】。如果你想讓SQL Server代理連接配接到遠端電腦(複制檔案,例如管理多個系統)那麼你會切換使用域使用者賬号(在插圖1.2裡,本賬戶已被下拉框覆寫);很有可能有一個特定的賬号來指定。這是你要文你的域管理者。你會需要從域管理者角度來索取一個原始賬号。不管怎樣,選擇正确的服務賬号後,一旦你做出任何修改,你會需要選擇【重新啟動】來讓新的改動生效。一旦你完成這個,點選【确定】來完成SQL Server代理服務的配置。你可以在微軟線上幫助了解更多服務賬号選擇的資訊:伺服器配置 - 服務帳戶。

SQL Server代理(1/12):配置和概況

插圖1.2:為SQL Server代理選擇服務賬号

建立你的第一個作業

選擇SQL Server代理已經運作,你可以建立你的第一個作業。通過示範,我們會配置一個作業來進行一些DBA的職責,備份你的系統資料庫,不必手動記得備份這些資料庫,你可以建立會為你完成的自動化作業。

作業

作業是單個邏輯任務的核心容器,例如備份資料庫。這個任務會包含一個或多個作業步驟。這個作業會包括提醒(例如,如果作業失敗提醒DBA),計劃(什麼時候你想運作這個作業),甚至在多個系統裡運作。對于我們的第一個備份作業,不管怎樣,我們會保持它簡單。

為了建立作業,打開SSMS連接配接到你的SQL Server執行個體。展開SQL Server代理節點,右擊作業,選擇【建立作業】,如插圖1.3所示。

SQL Server代理(1/12):配置和概況

插圖1.3——運作【建立作業】對話框

一個作業有多個元件,如你在插圖1.4所示。

SQL Server代理(1/12):配置和概況

插圖1.4——【建立作業】對話框

我們命名作業名為“備份Mater資料庫”。這個名稱會在SSMS圖形使用者界面裡的作業或PowerShell裡引用。作業【類别】會是組織你作業的有效方式,但對于你的第一個作業設定類别并不重要。你會在接下來的文章學習指定【類别】。在【說明】文本框裡,寫些可以幫助你記住為什麼你建立這個作業和它應該做什麼。記住其他人以後也會管理這個系統。因為他們沒有建立這個作業,他們不會知道這個應該實作啥,這個作業是否重要。

做完這些,你已經基本完成建立作業的“外殼”,對于你在建立作業對話框裡看到的所有元件,它隻是“外殼的容器”。作業的最重要部分是其他标簽裡的元件。

作業步驟

SQL Server代理裡的作業至少要有一個作業步驟組成。當大多數人想SQL Server代理進行一些工作時,他們真正的意思是作業步驟。作業步驟是你定義的想要進行的行動類型,包括一下能運作的作業子系統:

  • ActiveX
  • 作業系統(CMD的運作)
  • PowerShell
  • 各種複制任務
  • SQL Server分析服務(SSAS)指令(例如XML/A)
  • SQL Server分析服務(SSAS)查詢(MDX)
  • SQL Server內建服務(SSIS)包(SQL Server 2000li de DTS包)
  • T-SQL腳本

對于大多數SQL Server的DBA來說,你的主要工作是使用作業步驟的最後一類,T-SQL。作業可以作為作業所有者運作,也可以使用另一個安全上下文,取決于作業所有者的權限和代理配置。作業步驟和子系統會在下篇文章詳細介紹。

如你在SSMS圖形使用者界面裡所見,控制作業步驟的标簽頁為“步驟”。現在點選它,我們來建立一個作業步驟,點選對話框底部的【建立】按鈕,【建立作業步驟】對話框會被打開(如插圖1.5)。

SQL Server代理(1/12):配置和概況

插圖1.5——建立作業步驟

給作業步驟去個有用的名稱——在我們的情況裡,作業名稱和步驟名稱可以是一緻的——“備份Master資料庫”。作業步驟會是T-SQL,因為我們使用簡單的BACKUP指令做資料庫備份。現在你可以忽略【運作身份】,預設情況我們作為作業擁有者來運作作業步驟。對于我們的操作,資料庫預設設定正确,是在master裡運作的。

對于【指令】本身,你可以打開一個檔案,或者複制粘貼一些合法在查詢視窗的T-SQL。簡單起見,我們進行一個簡單的備份指令。如果你不是在C安裝的SQL Server,你需要修改檔案位置到指定位置。我這裡預設安裝在C槽,在生産資料庫裡系統資料庫和使用者資料庫不會放在同個硬碟。

1 BACKUP DATABASE master
2     TO DISK='C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\Backup\master.bak'
3     WITH INIT      

完成後的樣子如插圖1.6所示,點選【确定】建立作業步驟。

SQL Server代理(1/12):配置和概況

插圖1.6——完成的作業步驟

作業計劃

作業計劃控制着什麼時候作業會自動啟動。作業計劃有四個類型:

  • SQL Server代理啟動的自動啟動
  • CPU空閑時啟動
  • 循環執行
  • 執行一次

大部分的作業排程會循環執行(例如,在每周日下午7點運作一次我的備份)。計劃在SQL Server代理裡是獨立的對象,一個計劃可以關聯到多個作業步驟。

對于我們的作業,我們希望資料庫每周備份。是以,點選計劃标簽頁,點選【建立】來建立作業計劃,如插圖1.7所示。命名計劃有意義的名稱(因為它們會在作業間共享)。我命名它為“每周系統備份”。幸運的是,這個頁面的預設設定就可以了!我們一個星期運作一次,在周日,0點運作。點選【确定】,再次點選【确定】完成作業的建立。

SQL Server代理(1/12):配置和概況

插圖1.7——建立作業計劃

運作剛建立的作業

現在偶們已經建立好我們的作業,我們運作來驗證下是否正确。即使我們計劃這個作業每周運作,我們還是按需要人為運作它。在SSMS裡,在【作業】檔案夾下,現在你會看到你的作業。右擊作業,選擇【作業開始步驟】,如插圖1.8所示。作業會運作,現在你的master資料庫已經備份。

SQL Server代理(1/12):配置和概況

插圖1.8——在SSMS裡啟動作業

下篇預告

在接下來的文章裡我們逐漸深入探索SQL Server代理的每個領域,伴随特定場景的例子,作業和警告可大大增強你的SQL Server資料庫的功能,讓你的生活更加輕松。下篇文章會聚焦建立和配置作業步驟,了解不同的作業子系統和作業步驟安全。

感謝關注!

原文連結:http://www.sqlservercentral.com/articles/Stairway+Series/72267/

注:此文章為

WoodyTu

學習MS SQL技術,收集整理相關文檔撰寫,歡迎轉載,請在文章頁面明顯位置給出此文連結!

若您覺得這篇文章還不錯請點選下右下角的推薦,有了您的支援才能激發作者更大的寫作熱情,非常感謝!