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

来源:http://www.cnblogs.com/woodytu/archive/2016/01/20/5137714.html
-Advertisement-
Play Games

SQL Server代理是所有實時資料庫的核心。代理有很多不明顯的用法,因此系統的知識,對於開發人員還是DBA都是有用的。這系列文章會通俗介紹它的很多用法。SQL Server代理是SQL Server作業調度和報警服務,使用得當的話,會大大簡化資料庫管理員(DBA)的工作。SQL Server代理...


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代理沒有運行,現在就啟動這個服務。

插圖 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代理服務的配置。你可以在微軟線上幫助瞭解更多服務賬號選擇的信息:伺服器配置 - 服務帳戶

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

創建你的第一個作業

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

作業

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

為了創建作業,打開SSMS連接到你的SQL Server實例。展開SQL Server代理節點,右擊作業,選擇【新建作業】,如插圖1.3所示。

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

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

插圖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)。

插圖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所示,點擊【確定】創建作業步驟。

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

作業計劃

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

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

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

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

插圖1.7——新建作業計劃

運行剛創建的作業

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

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

下篇預告

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

感謝關註!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 文章內容大綱1、NSMutableAttributedString的基本使用2、NSMutableAttributedString的簡易封裝3、使用開源代碼GOBMarkupPaser處理富文本4、UITextKit簡介5、編程思想的相關思考前言富文本使用案例:這裡我自己也用了富文本實現了簡單的卻也...
  • 一、沙盒(SandBox) 1.沙盒機制 1> 每個應用都有屬於自己的存儲空間,即沙盒。 2> 應用只能訪問自己的沙盒,不可訪問其他區域。 3> 如果應用需要進行文件操作,則必須將文件存放在沙盒中,尤其是資料庫文件,在電腦上操作時,可以去訪問,但是如果要裝在真機上可以使用,必須將資料庫文件...
  • 最近有學生做畢業設計,想使用懸浮窗這種效果,其實很簡單,我們可以通過系統服務WindowManager來實現此功能,本章我們來試驗一下在當前Activity之上創建一個懸浮的view。第一步:認識WindowManagerl 這個介面用於與 window manager (視窗管理器, 應用框架.....
  • 使用Microsoft SQL SERVER 2014 Management Studio訪問Azure SQL Database時,查看存儲過程時遇到下麵錯誤信息: TITLE: Microsoft SQL Server Management Studio --------------------...
  • 在SQL標準中定義了四種隔離級別,每一種級別都規定了一個事務中所做的修改,哪些是在事務內和事務間可見的,哪些是不可見的。較低級別的隔離通常可以執行更高的併發,系統的開銷也更低。1、未提交讀(Read uncommitted)在未提交讀級別,事務中的修改,即使沒有提交,對其他事務也都是可見的。事務可以...
  • 功能說明:備份和恢復SQL Server資料庫* 作者: 劉功勛;* 版本:V0.1(C#2.0);時間:2007-1-1* 當使用SQL Server時,請引用 COM組件中的,SQLDMO.dll組件* 當使用Access中,請瀏覽添加引用以下兩個dll* 引用C:/Program Files/...
  • 標簽:utf8概述本篇文章介紹mycat怎樣在分庫分表的情況下保證主鍵的全局唯一方法,接下來就來分析三種方法各自的優缺點。配置文件方式獲取1.修改server配置文件vim server.xml0註:sequnceHandlerType 配置為0表示使用本地文件讀取。2.配置sequence_con...
  • 前言 我們知道任何一種關係型資料庫管理系統都支持SQL(Structured Query Language),相對於文件管理系統,用戶不用關心數據在資料庫內部如何存取,也不需要知道底層的存儲結構,熟悉SQL,就能熟練使用資料庫。SQL的引入,使得資料庫系統需要將SQL轉換為內部的數據結構,然後與.....
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...