国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > SQL Server > 正文

6. SQL Server數(shù)據(jù)庫監(jiān)控

2024-08-31 00:55:22
字體:
供稿:網(wǎng)友
6. SQL Server數(shù)據(jù)庫監(jiān)控 - 如何告警

常用的告警方式大致有:短信、郵件、應(yīng)用程序 (beep提示,圖標(biāo)提示,升窗提示等),可是不能一直坐在電腦前看著應(yīng)用程序,或者用腳本部署監(jiān)控,根本沒有程序界面,所以通常用短信、郵件兩種方式告警。

. 告警方式

1. 短信

用程序發(fā)短信的方式一般有這兩種:

(1) 硬件

需要1張SIM卡,1個(gè)SIM卡讀卡設(shè)備 (比如:短信貓),然后把設(shè)備連接到電腦,應(yīng)用程序根據(jù)設(shè)備的軟件接口,傳參并發(fā)送短信。記得把SIM卡設(shè)備放在信號(hào)好,無干擾的地方;

如果有大量短信要發(fā),1張SIM卡是不夠用的,而且發(fā)送過度頻繁,可能被運(yùn)營(yíng)商視為惡意短信,把SIM卡號(hào)加入黑名單,那么就需要多張SIM卡甚至多個(gè)讀卡設(shè)備。

顯示號(hào)碼為當(dāng)前SIM卡號(hào)碼,大多供應(yīng)商都支持DLL、HTTP等多種接口,當(dāng)然也可以基于接口二次開發(fā)。

DLL接口方法參考:SmsManager.sendTextMessage(…)

(2) 第三方短信接口

有多種接口形式提供,比如:Web Service形式,HTTP形式,還有郵件接口:往1380013900@xxx.com發(fā)個(gè)短小的郵件,這個(gè)郵件會(huì)以短信的形式轉(zhuǎn)發(fā)到手機(jī)上,等等。只要往接口傳參數(shù),告訴它發(fā)給誰,發(fā)什么內(nèi)容,就可以了。

顯示號(hào)碼為某個(gè)SIM卡號(hào)碼,或者為固定號(hào)碼 (如:106開頭的),這取決于短信平臺(tái)和運(yùn)營(yíng)商的實(shí)現(xiàn)方式,因?yàn)檫\(yùn)營(yíng)商發(fā)短信是不要卡的,直接可以發(fā)給目標(biāo)號(hào)碼,而且可以顯示為固定的某個(gè)號(hào)碼。

Web Service接口地址參考:http://123.456.789.000/SmsManager.asmx?wsdl

Http接口地址參考:http://api.abc.xyz/sms/send.html

2. 郵件

凡是實(shí)現(xiàn)了SMTP協(xié)議的組件,都可以發(fā)送郵件。

在Windows環(huán)境下,有系統(tǒng)自帶的組件CDO (Collaboration Data Objects,以前叫OLE Messaging 或者Active Messaging),是MAPI庫的COM封裝。不管是自己開發(fā)程序,使用VBS,還是SQL Server的SQL Mail/Database Mail,通常都是調(diào)用的這個(gè)組件。

SMTP協(xié)議要求的參數(shù)大致如下:

SMTP Hostname: SMTP服務(wù)器名,如mail.test.com或者IP

SMTP Port: SMTP服務(wù)端口,25

SMTP Username: 通過SMTP發(fā)送郵件用來驗(yàn)證的用戶名, 如果不要求身份驗(yàn)證,留空

SMTP PassWord: 通過SMTP發(fā)送郵件用來驗(yàn)證的密碼, 如果不要求身份驗(yàn)證,留空

. 選擇告警方式并配置

1. 短信

不管是選擇硬件,還是第三方接口,都需要一個(gè)程序來調(diào)用,可以是監(jiān)控工具、腳本、甚至數(shù)據(jù)庫。

(1) 監(jiān)控工具/應(yīng)用程序中,通常都留有短信接口的配置,配置接口地址即可;

(2) 在腳本中配置,Windows環(huán)境通常要借助OLE Automation;

OLE Automation后來改名叫Automation,是Windows上基于COM,用于腳本語言實(shí)現(xiàn)進(jìn)程間通訊的機(jī)制,腳本如:VBS, SQL, Powershell,不包括BAT(BAT可以調(diào)用VBS)。

SQL Server中使用OLE Automation調(diào)用Web Service短信接口如下:

exec sp_configure 'show advanced options', 1;RECONFIGURE;exec sp_configure 'Ole Automation PRocedures', 1;RECONFIGURE;declare @text_message nvarchar(180)       ,@phone_number nvarchar(15)       ,@soap_object  int       ,@status       int       ,@output       nvarchar(255)set @text_message = N'Testing Mail'set @phone_number = N'138000139000'--Create MSSOAP.SoapClient objectexec @status=sp_OACreate 'MSSOAP.SoapClient', @soap_object out--SmsManager is Web Service nameexec @status = sp_OAMethod @object, 'mssoapinit', null, 'http://123.456.789.000/SmsManager.asmx?wsdl', 'SmsManager'--SendTextMessage is webservice methodexec @status = sp_OAMethod @object, 'SendTextMessage', @output OUT, @phone_number, @text_messageif @status <> 0begin   exec sp_OAGetErrorInfo @soap_object      select @soap_objectendelsebegin   select @outputend--Destroy MSSOAP.SoapClient objectexec @status = sp_OADestroy @soap_objectGO

對(duì)于HTTP, DLL接口,和SOAP接口類似,用OLE Automation也都可以調(diào)用,主要區(qū)別就是在CreateObject() 時(shí)。

以VBS為例,調(diào)用HTTP, DLL時(shí)CreateObject()如下:

Dim http Set http = CreateObject("Msxml2.xmlhttp") Dim dllSet dll = CreateObject("工程名.類名")

2. 郵件

(1) 監(jiān)控工具/應(yīng)用程序中,通常都留有SMTP配置項(xiàng),配置SMTP參數(shù)即可;

(2) 在腳本中配置,Windows環(huán)境通常要借助OLE Automation;

VBS發(fā)送郵件如下:

Dim nsns = "http://schemas.microsoft.com/cdo/configuration/"Dim title, contenttitle = "db_maint_alert"content = ""content = content&"Hi All,"content = content&chr(13)&chr(10)content = content&" "content = content&chr(13)&chr(10)content = content&"----test mail----"Msgbox('~1~')Set cm = CreateObject("CDO.Message")cm.from = "from_user_name@abc.com"    cm.to = "to_user_name@abc.com"cm.cc = "cc_user_name@abc.com"cm.subject = titlecm.textbody = content'cm.AddAttachment ""Msgbox('~2~')'sendusing: 1 = pickup, 2 = port'smtpauthenticate: 0 = anonymous,1 = common,2 = NTLM'smtpusessl: 0 = no,1 = yesWith cm.configuration.fields    .item(ns & "sendusing") = 2    .item(ns & "smtpserver") = "xxx.xxx.xxx.xxx"    .item(ns & "smtpserverport") = 25    .item(ns & "smtpauthenticate") = 1    .item(ns & "sendusername") = "user_name@abc.com"    .item(ns & "sendpassword") = "*****************"    .item(ns & "smtpconnectiontimeout") = 10    .item(ns & "smtpusessl") = 0    .updateEnd WithMsgbox('~3~')cm.sendSet cm = nothingMsgbox('~success~')

SQL Server 2000發(fā)送郵件如下:

SQL Server 2000有SQL Mail,不過必須要同服務(wù)器上安裝一個(gè)實(shí)現(xiàn)了MAPI的郵件程序,如:Outlook,因?yàn)镾QL Mail需要借用郵件應(yīng)用程序的MAPI來發(fā)送郵件,配置起來不太方便,所以使用類似上面VBS的OLE Automation方法。

use master;if OBJECT_ID('sp_SendDatabaseMail') is not null     drop proc sp_SendDatabaseMailgoCREATE PROCEDURE sp_SendDatabaseMail        @recipients varchar(8000), --'001@abc.com; 002@abc.com;'        @Subject    varchar(400) = '',        @HtmlBody   varchar(8000) = ''asDeclare @From varchar(100)Declare @To varchar(100)Declare @Bcc varchar(500)Declare @AddAttachment varchar(100)Declare @object intDeclare @hr intDeclare @source varchar(255) Declare @description varchar(500) Declare @output varchar(1000)    set @From = 'SqlAlert@abc.com'    set @To = @recipients    set @Bcc = ''    set @AddAttachment = ''    --set @HtmlBody= '<body><h1><font color=Red>' +@HtmlBody+'</font></h1></body>'    EXEC @hr = sp_OACreate 'CDO.Message', @object OUT    EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusing").Value','2'     EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserver").Value', 'xxx.xxx.xxx.xxx'     EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport").Value','25'     EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate").Value','1'     EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendusername").Value','user_name@abc.com'     EXEC @hr = sp_OASetProperty @object, 'Configuration.fields("http://schemas.microsoft.com/cdo/configuration/sendpassword").Value','*****************'     EXEC @hr = sp_OAMethod @object, 'Configuration.Fields.Update', null     EXEC @hr = sp_OASetProperty @object, 'To', @To     EXEC @hr = sp_OASetProperty @object, 'Bcc', @Bcc     EXEC @hr = sp_OASetProperty @object, 'From', @From     EXEC @hr = sp_OASetProperty @object, 'Subject', @Subject     EXEC @hr = sp_OASetProperty @object, 'HtmlBody', @HtmlBody --add attachment    if @AddAttachment<>''    EXEC @hr = sp_OAMethod @object, 'AddAttachment',NULL,@AddAttachment    IF @hr <>0     select @hr         BEGIN             EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT             IF @hr = 0                 BEGIN                     SELECT @output = ' Source: ' + @source                     PRINT @output                     SELECT @output = ' Description: ' + @description                     PRINT @output                 END             ELSE                 BEGIN                     PRINT ' sp_OAGetErrorInfo failed.'                     RETURN                 END         END --send mailEXEC @hr = sp_OAMethod @object, 'Send', NULL IF @hr <>0     select @hr         BEGIN             EXEC @hr = sp_OAGetErrorInfo NULL, @source OUT, @description OUT             IF @hr = 0                 BEGIN                     SELECT @output = ' Source: ' + @source                     PRINT @output                     SELECT @output = ' Description: ' + @description                     PRINT @output                 END             ELSE                 BEGIN                     PRINT ' sp_OAGetErrorInfo failed.'                     RETURN                 END endPRINT 'Send Success!!!' --destroy objectEXEC @hr = sp_OADestroy @object

調(diào)用上面這個(gè)SP來發(fā)郵件:

EXEC sp_SendDatabaseMail         @recipients = '001@test.com; 002@test.com;',         @body = 'This is a testing mail',        @HtmlBody = 'Testing Database Mail'

SQL Server 2005起,使用Database Mail,腳本如下:

--1. 啟用database mailuse masterGOexec sp_configure 'show advanced opt
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 武宣县| 龙江县| 武城县| 合肥市| 盈江县| 惠东县| 舟山市| 固始县| 三门县| 中方县| 米泉市| 湛江市| 灵丘县| 体育| 龙游县| 乌拉特中旗| 潍坊市| 香格里拉县| 利辛县| 黑龙江省| 荆州市| 定远县| 黄大仙区| 兰考县| 宣城市| 准格尔旗| 三江| 金阳县| 集安市| 深圳市| 平武县| 桑日县| 平利县| 台前县| 隆德县| 五寨县| 府谷县| 东乡族自治县| 株洲市| 弋阳县| 丁青县|