偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

數(shù)據(jù)庫 SQL Server 數(shù)據(jù)庫運(yùn)維 自動(dòng)化
在我們的生產(chǎn)環(huán)境中,大部分情況下需要有自己的運(yùn)維體制,包括自己健康狀態(tài)的檢測(cè)等。如果發(fā)生異常,需要提前預(yù)警的,通知形式一般為發(fā)郵件告知。郵件作為一種非常便利的預(yù)警實(shí)現(xiàn)方式,在及時(shí)性和易用性方面也有著不可替代的優(yōu)點(diǎn)。所以,在本篇中將詳細(xì)的分析下在SQL Server中的郵件通知功能及使用方式等。

需求描述

在我們的生產(chǎn)環(huán)境中,大部分情況下需要有自己的運(yùn)維體制,包括自己健康狀態(tài)的檢測(cè)等。如果發(fā)生異常,需要提前預(yù)警的,通知形式一般為發(fā)郵件告知。

郵件作為一種非常便利的預(yù)警實(shí)現(xiàn)方式,在及時(shí)性和易用性方面也有著不可替代的優(yōu)點(diǎn)。

所以,在本篇中將詳細(xì)的分析下在SQL Server中的郵件通知功能及使用方式等。

本篇實(shí)現(xiàn)

1、通過SQL Server自帶的郵件功能實(shí)現(xiàn)運(yùn)維的預(yù)警及檢測(cè)

2、利用數(shù)據(jù)庫郵件組件代替?zhèn)鹘y(tǒng)的C#發(fā)送郵件的弊端

3、實(shí)現(xiàn)Job任務(wù)運(yùn)行狀態(tài)的檢測(cè)

4、利用PowerShell實(shí)現(xiàn)Job任務(wù)計(jì)劃的檢測(cè)

<1>基礎(chǔ)配置

首先,我們來配置下SQL Server中的郵件組件的基礎(chǔ)服務(wù)項(xiàng)。SQL Server自從05版本起,郵件功能就不需要開啟外配配置管理器了,它有著自己的組件,實(shí)現(xiàn)郵件發(fā)送的功能。

如果,沒使用過,可以按照以下步驟進(jìn)行配置,步驟很簡(jiǎn)單。

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

右鍵,配置數(shù)據(jù)庫郵件

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

然后直接下一步就行,然后新建一個(gè)賬戶

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

然 后,下一步完成就可以,步驟很簡(jiǎn)單,這里面有幾個(gè)概念需要理清楚,對(duì)于SQL Server的郵件賬戶是由權(quán)限控制的,目的是實(shí)現(xiàn)不同的人使用不同的郵件賬戶,比如大型數(shù)據(jù)庫的管理一般有好幾個(gè)DBA負(fù)責(zé)運(yùn)維,分職責(zé)之后的運(yùn)行,發(fā) 送預(yù)警郵件也就產(chǎn)生了區(qū)分,總不能模塊中出現(xiàn)了任何問題都發(fā)送給一個(gè)人。

跟你一毛錢關(guān)系都沒有的異常,天天給你發(fā)郵件,是不是很不爽??....這種管理方式是灰常暴力的!

為了解決上述問題,SQL Server對(duì)郵件的賬戶進(jìn)行了分類:

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

分為公共賬戶和專用賬戶。

一般如果管理人員少,就配置一個(gè)公共賬戶就可以,有問題都發(fā)送到該郵箱就可以。

至此,你已經(jīng)完成了數(shù)據(jù)庫郵件模塊的配置,步驟很簡(jiǎn)單。這里可以發(fā)送一封測(cè)試郵件,來測(cè)試下郵件的連通性。

提示:SQL Server郵件組件的運(yùn)行需呀SQL Server Age運(yùn)行執(zhí)行,所以需要確保此服務(wù)正在運(yùn)行。

在“數(shù)據(jù)庫郵件”上右鍵,發(fā)送測(cè)試電子郵件,輸入目標(biāo)郵箱的地址,然后單擊發(fā)送就可以。

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

至此,你的SQL Server已經(jīng)完成郵件組件的基礎(chǔ)配置,然后剩下的工作就是如何利用該組件進(jìn)行部分工作的完成了。

#p#

<2>c#調(diào)用數(shù)據(jù)庫郵件組件進(jìn)行郵件的發(fā)送

還記得當(dāng)年剛畢業(yè)的時(shí)候,對(duì)于發(fā)送郵件這塊功能當(dāng)時(shí)是異常的癡迷,各種的研究和各種的調(diào)試。

后來的終歸在廢了九牛二虎之力之后,終于在一個(gè)午夜夢(mèng)回之時(shí)看到了我夢(mèng)寐以求的測(cè)試郵件發(fā)送通知,想想一個(gè)字描述:草!

大體我記得需要引用以下幾個(gè)命名空間:

using System.Net; using System.Net.Mail;

然后利用C#提供的SmtpClient類進(jìn)行組裝成郵件實(shí)體,而后一個(gè)Send()方法,這其中的痛苦點(diǎn)在于各種編碼規(guī)范等。

我相信現(xiàn)在也有很多程序猿依然再采用著這種方式。

今天提供另外一種靈活的實(shí)現(xiàn)方式,利用SQL Server數(shù)據(jù)庫的郵件組件進(jìn)行郵件的發(fā)送。

關(guān)于上面***個(gè)步驟提供的郵件組件的調(diào)用,其實(shí)在SQL Server中是提供系統(tǒng)自帶的存儲(chǔ)過程進(jìn)行實(shí)現(xiàn)的。方法如下:

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

該存儲(chǔ)過程提供了發(fā)送郵件的的各種參數(shù),完全滿足發(fā)送郵件的各種需求,比如:主題、內(nèi)容、附件、CC、秘密CC....等等吧

調(diào)用該存儲(chǔ)過程的方法如下:

  1.     --存儲(chǔ)過程調(diào)用發(fā)郵件 
  2.     EXEC msdb.dbo.sp_send_dbmail 
  3.     @profile_name = 'testMail'
  4.     @recipients = '787449667@qq.com'
  5.     @body = '這是測(cè)試郵件'
  6.     @subject = '我發(fā)的',  
  7.     @file_attachments='C:\temp\3-26-2015-16-20-21.png' 

上面一個(gè)簡(jiǎn)單的方法執(zhí)行既可以實(shí)現(xiàn),郵件的發(fā)送。

然后,你需要的就是c#調(diào)用該存儲(chǔ)過程了。

關(guān)于寫C#代碼通過Ado.net調(diào)用存儲(chǔ)過程的過程這里就不贅述了,我相信這是入門級(jí)別的小白也能搞定的事情了。

而后,這里捎帶分析一下郵件組件的原理和性能問題。我相信這是很多人關(guān)心的,其實(shí)SQL Server的郵件發(fā)送時(shí)通過一個(gè)底層的JOB輪詢執(zhí)行的,所以根本不用擔(dān)心其執(zhí)行順序和性能問題。

并且SQL Server為此還提供了幾個(gè)系統(tǒng)的視圖來查看歷史運(yùn)行狀態(tài)和當(dāng)前郵件的隊(duì)列狀態(tài):

 

  1. --郵件內(nèi)容 
  2.   SELECT * FROM msdb.dbo.sysmail_allitems

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

 

  1. --郵件發(fā)送日志 
  2.  
  3. SELECT * FROM msdb.dbo.sysmail_event_log 

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

并且SQL Server提供了郵件重新發(fā)送的功能以及其它默認(rèn)參數(shù),具體設(shè)置參照此畫面:

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

至此,已經(jīng)完成了利用C#進(jìn)行發(fā)送郵件的功能。

我相信基本上用C#就會(huì)搭配微軟自己的SQL Server數(shù)據(jù)庫,而使用它之后就可以少量的代碼實(shí)現(xiàn)郵件發(fā)送的功能。

#p#

<3>實(shí)現(xiàn)Job任務(wù)運(yùn)行狀態(tài)的檢測(cè)

在我們使用SQL Server的時(shí)候,很多情況下都需要自定義Job進(jìn)行部分功能的實(shí)現(xiàn),而大部分時(shí)間是采取凌晨或者非業(yè)務(wù)期進(jìn)行工作。

而此Job的運(yùn)行結(jié)果的檢測(cè)便形成了一個(gè)需要跟蹤的問題,比如有時(shí)候N個(gè)Job的運(yùn)行,只有幾個(gè)出現(xiàn)問題,并且不確定的此Job發(fā)生在那個(gè)機(jī)器上,所以自動(dòng)化運(yùn)維的重要性就不言而喻了。

對(duì)于上面問題的解決,SQL Server提供了很簡(jiǎn)單的配置就可以實(shí)現(xiàn)。

(1)首先,需要定義幾個(gè)操作員,說到底就是幾個(gè)人值班運(yùn)維此數(shù)據(jù)庫的

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

上面,我就定義了一個(gè)人,其實(shí)可以定義多個(gè)人,幾個(gè)運(yùn)維人員幾個(gè)...

(2)其次,需要定義警報(bào),說到底就是將產(chǎn)生的預(yù)警發(fā)送給上面的幾個(gè)運(yùn)維人員。

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

這里面的嚴(yán)重性選項(xiàng)其實(shí)是一個(gè)很重要的功能,一些簡(jiǎn)單的問題警告有時(shí)候是不需要及時(shí)關(guān)注的,或者說不需要暫時(shí)處理的。

但是有些問題則需要里面去解決,比如服務(wù)器宕機(jī)....

然后,我們來將此預(yù)警關(guān)聯(lián)之操作員

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

到此,我們已經(jīng)完成了預(yù)警的檢測(cè)配置,然后需要的就是關(guān)聯(lián)下Job代理的任務(wù)屬性值。

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

經(jīng)過上面的配置,任何我們自定義的Job工作狀態(tài)都可以進(jìn)行自動(dòng)化檢測(cè)了。

比如:某個(gè)Job跑批成功了,某個(gè)Job跑批失敗了。我們來新建一個(gè)自定義的Job來測(cè)試下:

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

然后設(shè)置警告

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

然后,在運(yùn)行此Job出現(xiàn)異常的時(shí)候,就可以自動(dòng)的報(bào)告到相應(yīng)的運(yùn)維人員了。

這里我們就設(shè)置了一個(gè)運(yùn)維人員,所以這里只發(fā)送給一個(gè)人。

我們來手動(dòng)運(yùn)行下,來測(cè)試一下效果

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

嘿嘿,果然,發(fā)出了警報(bào),看起來很貼心的樣子

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

SQL Server自動(dòng)化運(yùn)維——關(guān)于郵件通知那點(diǎn)事

至此,此功能已經(jīng)配置完成,自己可以靈活的實(shí)現(xiàn)。

結(jié)語

本來打算將利用Power Shell腳本檢測(cè)的功能實(shí)現(xiàn)方式也加上的,但文章已經(jīng)稍有點(diǎn)篇幅了,后續(xù)再完成吧。此篇的關(guān)于SQL Server的郵件功能算作拋磚引玉了,自己另有需求可以自己靈活實(shí)現(xiàn)。

其實(shí),在本篇所介紹的Job任務(wù)的檢測(cè)在幾臺(tái)服務(wù)器上存在還問題不大,但是如果多臺(tái)服務(wù)器,如果每臺(tái)服務(wù)器上都有幾個(gè)Job異常的話,每天早上打開郵件多的估計(jì)會(huì)令你頭皮發(fā)麻,并且在自帶的異常報(bào)警中,沒有給出詳細(xì)的錯(cuò)誤信息,其實(shí)這是一個(gè)很不爽弊端。

所以,為了優(yōu)雅的進(jìn)行自動(dòng)化運(yùn)維的工作,我們將會(huì)每次將我們所有檢測(cè)的服務(wù)器Job運(yùn)行狀態(tài)進(jìn)行掃描,而后將其匯總至一封郵件,然后按照重要性發(fā)送至固定的運(yùn)維人員。

聽起來是不是還有點(diǎn)小激動(dòng)的樣子,下一篇我們來實(shí)現(xiàn)此功能。有興趣的童鞋,可以提前關(guān)注。

關(guān)于SQL Server自動(dòng)化運(yùn)維和檢測(cè)的內(nèi)容很廣泛,其中很多都是從日常的經(jīng)驗(yàn)中出發(fā),一步步的從手動(dòng)到自動(dòng)的過程。

博文出處:http://www.cnblogs.com/zhijianliutang/p/4421556.html
 

責(zé)任編輯:Ophira 來源: cnblogs
相關(guān)推薦

2012-10-22 14:54:48

2014-08-04 10:10:35

IT運(yùn)維自動(dòng)化運(yùn)維

2018-06-23 07:31:05

2017-10-13 13:14:35

互聯(lián)網(wǎng)

2018-10-22 13:34:24

SD-WAN運(yùn)維網(wǎng)絡(luò)

2012-11-20 17:22:57

2015-10-08 10:55:23

云服務(wù)自動(dòng)化運(yùn)維 ANSIBLE

2018-07-26 13:50:37

IT架構(gòu)運(yùn)維

2013-04-16 14:55:21

自動(dòng)化運(yùn)維Puppet實(shí)戰(zhàn)

2014-09-22 11:24:18

運(yùn)維

2014-07-26 15:11:20

WOT2014自動(dòng)化運(yùn)維

2013-04-11 17:31:28

運(yùn)維自動(dòng)化Cobbler

2012-05-05 21:28:44

2015-10-09 13:14:10

clip自動(dòng)化運(yùn)維工具

2015-11-05 18:03:15

虛擬化云計(jì)算資源池

2024-06-11 10:41:14

2010-08-12 17:39:07

網(wǎng)站運(yùn)維自動(dòng)化管理

2014-06-20 18:26:45

WOT2014自動(dòng)化運(yùn)維

2012-05-05 21:22:40

2012-05-05 21:48:43

puppet自動(dòng)化運(yùn)維
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)