初識SQL Server代理&作業(yè)
當前位置:點晴教程→知識管理交流
→『 技術(shù)文檔交流 』
一、前言別人寫的程序在數(shù)據(jù)庫中生成了一些表,并且會不停更新表中數(shù)據(jù)。 現(xiàn)在有個需求,定期根據(jù)表中的數(shù)據(jù)做一些運算,然后重新生成一張表。我將新表的表名、字段給第三方使用。 關(guān)鍵是,我無法修改別人的代碼,好在我可以登錄該系統(tǒng)所運行電腦的數(shù)據(jù)庫。 經(jīng)過一番搜索后,我發(fā)現(xiàn)了觸發(fā)器和SQL Server代理這兩種工具。進一步分析后,覺得SQL Server代理可能更符合我的需求。 ?注意 本文不討論多SQL Server實例的情況。 由于使用場景較簡單,本文只簡述SQL Server代理及其組件,有關(guān)SQL Server代理安全性等拓展內(nèi)容不做介紹。 二、SQL Server代理SQL Server代理是一種微軟Windows服務(wù),用于執(zhí)行一些預先安排好的任務(wù),這些任務(wù)在SQL Server中稱為jobs(作業(yè))。 1. SQL Server代理的好處
2. SQL Server代理組件
?2.1. 作業(yè) Jobs & 作業(yè)步驟 Job Steps 作業(yè)是SQL Server代理執(zhí)行的一系列指定操作(這個一系列很重要,作業(yè)有點類似操作的容器,里面放了許多操作,所以是管理單元,而不是真正的執(zhí)行單元。而這一個個操作,就是下文的作業(yè)步驟)。使用作業(yè)可以定義各種任務(wù),并配置它們的執(zhí)行次數(shù)以及監(jiān)視它們的執(zhí)行狀態(tài)與執(zhí)行結(jié)果。作業(yè)可以在本地服務(wù)器上運行,也可以在遠程服務(wù)器上運行。 可以用以下幾種方式來執(zhí)行作業(yè):
作業(yè)中的每個操作都稱為 job step(作業(yè)步驟)。 作業(yè)步驟是作業(yè)在數(shù)據(jù)庫或服務(wù)器上執(zhí)行的操作。每個作業(yè)必須至少有一個作業(yè)步驟(不然,空有一個容器,啥也做不了)。 作業(yè)步驟可以是:
每個作業(yè)步驟都運行在專門的安全上下文(環(huán)境)中。對于使用T-SQL的作業(yè)步驟,使用EXECUTE AS語句為作業(yè)步驟設(shè)置安全上下文。其他類型的作業(yè)步驟,使用代理賬戶為作業(yè)步驟設(shè)置安全上下文。 ?2.2. 計劃 Schedules 計劃(表)(schedule,其實在計算機中,我更喜歡叫它調(diào)度)指定了作業(yè)何時運行。在一個計劃上可以運行多個作業(yè),一個作業(yè)也可以被多個計劃應(yīng)用。計劃可以定義作業(yè)運行的時間條件,如:
2.3. 警報 Alerts 警報(alert) 是對特定事件的自動響應(yīng)。事件可以是啟動的作業(yè)或達到閾值的系統(tǒng)資源。你可以定義警報發(fā)生的條件。 警報可以響應(yīng)以下條件:
警報可以執(zhí)行以下操作:
2.4. 操作員 Operators 操作員(operator) 為負責維護SQL Server實例的個人定義了聯(lián)系方式。在一些企業(yè)中,操作員職責被分配到了個人(責任到人)。尤其在有多個服務(wù)器的企業(yè)中,許多人可以分擔操作員的責任。操作員不包含安全信息,也不定義安全主體。 SQL Server能通過以下方式通知操作員:
?注意 如要使用網(wǎng)絡(luò)發(fā)送通知,必須在SQL Server代理所在的計算機上啟動Windows Messenger服務(wù)。 如果發(fā)現(xiàn)尋呼機和網(wǎng)絡(luò)發(fā)送的功能無法使用,請不要驚訝。因為微軟早就計劃從SQL Server代理中刪除這兩個功能了。 若要使用電子郵件或傳呼機向操作員發(fā)送通知,必須將SQL Server代理配置為使用數(shù)據(jù)庫郵件。可以將操作員定義成一組個人的別名。這樣,該別名的所有成員就不會同時被驗證。 ?3. 相關(guān)工作 要使SQL Server管理更加自動化,通常要做以下工作:
?注意 對于SQL Server默認實例,SQL Server服務(wù)的名稱為SQLSERVERAGENT。 對于命名了的實例,SQL Server代理服務(wù)名為SQLAgent$instancename。 在對代理有了一定了解后,再介紹一個例子,在代理中創(chuàng)建一個作業(yè),并添加一些腳本代碼。 三、創(chuàng)建并執(zhí)行作業(yè)本節(jié)講解如何在SQL Server Management Studio(SSMS)中創(chuàng)建一個SQL Server代理作業(yè),并在計劃中運行它。(創(chuàng)建作業(yè)(包括其他組件,計劃、警報等等)的方式有很多,可以用SSMS圖形化操作,可以用Transact-SQL腳本操作,也可以用SQL Server Management Objects操作,這邊介紹SSMS圖形化操作,該方式比較通用直觀) 1. 創(chuàng)建作業(yè) 在SSMS中創(chuàng)建一個作業(yè),通常經(jīng)過以下幾步:
4.在新建作業(yè)對話框中的常規(guī)頁面,修改作業(yè)的常規(guī)屬性。(一般改個名稱即可) 5.在步驟頁面,組織作業(yè)步驟。 這邊著重介紹下T-SQL類型的作業(yè)步驟。創(chuàng)建T-SQL作業(yè)步驟時,你必須:
你也可以選一個現(xiàn)有的T-SQL文件作為作業(yè)步驟的命令。 T-SQL作業(yè)步驟不使用SQL Server代理作為代理人。取而代之,作業(yè)步驟作為作業(yè)步驟的所有者運行(?)。 6.在計劃頁面,組織作業(yè)計劃。 你可以選取一個已有的計劃或新建一個計劃。當與計劃綁定后,該作業(yè)就會按計劃的時間執(zhí)行??梢?,作業(yè)和計劃是獨立的,作業(yè)定義了任務(wù)內(nèi)容,計劃定義了執(zhí)行時間。 7.在警報頁面,組織作業(yè)警報。 8.在通知頁面,設(shè)置代理在作業(yè)完成時執(zhí)行的操作。 9.在目標頁面,管理作業(yè)目標服務(wù)器。 10.配置完成, 點擊確定。 2. 執(zhí)行作業(yè) 在作業(yè)的常規(guī)頁面中,有個啟用選項: 勾選啟用后,給作業(yè)綁定計劃或警報,達到條件后(達到計劃指定時間或觸發(fā)警報),作業(yè)就會執(zhí)行。 四、結(jié)語SQL Server代理在實際開發(fā)中作用很大,許多操作都可以放到SQL Server代理中執(zhí)行,很多時候能事半功倍。 本文對SQL Server代理的基本組件和創(chuàng)建作業(yè)綁定計劃的簡單使用場景進行介紹。實際使用中的重頭戲應(yīng)該是腳本的編寫。 原文鏈接:https://blog.csdn.net/BadAyase/article/details/127241129 該文章在 2025/9/9 16:56:05 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |