SQL 2005後,提供了Database Mail的功能,可以利用SMTP MAIL設定JOB執行狀況的EMAIL通知
在SQL 2000的時代,未曾使用過SQL MAIL, 既然SQL 2005有了這麼方便的SMTP MAIL功能,那就來試看看, 因為主要是想要知道每天排程的JOB到底是成功還是失敗. 不然每次都等人客打電話來通知,實在是太沒面子了.
1.開啟SQL SERVER 2005 的Database Mail, 
   sp_configure 'show advanced', 1; 
   sp_configure 'Database Mail XPs', 1;  
   GO 
   RECONFIGURE;
  GO
2.設定Database Mail, 可以使用SSMS->Management下的Database Mail以精靈的方式設定   MSSQLTip上有完整的說明及畫面   http://www.mssqltips.com/tip.asp?tip=1100,   如果要用SCRIPT新增,可以參考MSDN上的範例,我修改後如下
  -- Create a Database Mail account
  EXECUTE msdb.dbo.sysmail_add_account_sp 
 @account_name = 'testAccount', 
 @description = 'Mail account for test e-mail.',
 @email_address = 'test@mail.test.com',
 @replyto_address = null,
 @display_name = 'testMailer',
 @mailserver_name = 'mail.test.com' ; 
 -- Create a Database Mail profile 
 EXECUTE msdb.dbo.sysmail_add_profile_sp
 @profile_name = 'testProfile',
 @description = 'Profile used for test mail.' ;
 -- Add the account to the profile (一個profile可有多個account)
 EXECUTE msdb.dbo.sysmail_add_profileaccount_sp
 @profile_name = 'testProfile',
 @account_name = 'testAccount',
 @sequence_number =1 ;
 -- Grant access to the profile to the DBMailUsers role
 EXECUTE msdb.dbo.sysmail_add_principalprofile_sp
 @principal_name = 'public',
 @profile_name = 'testProfile',
 @is_default = 1 ;
  
3.在SQL Server Agent 按右鍵選properties, 進入後在Alert System 下 勾選 Enable mail profile,挑選步驟2所設定的profile  name
4.在SQL Server  Agent 下,找到Operators目錄,按右鍵New operator, 在Name給這個operator指定一個名稱,在E-mail name 輸要發送的對象E-mail, 如果有多個就用;隔開,例如test1@mail.com.tw;test2@mail.com.tw, 以此類推
當然, 你可在此建立多個不同用途的operator, 以方不同性質的job針對不同管理者進行通知
5.最後是....記得重新啟動SQL Server Agent  服務....大功告成
做個測試....
建一個job, 隨便做一個會出錯的step, 例如讀一個不存在的table, select 1 from xxx 
在job的Notification中, 勾選E-mail, 選擇步驟4所建立的Operator, 然後指定When the job fails , 這樣當step 執行有錯誤時,就會啟動送email的機制了.
如果以上通通沒搞錯, 試跑一下job, 就收到錯誤email通知了
JOB RUN: 'test' was run on 2010/4/21 at 下午 10:05:16
DURATION: 0 hours, 0 minutes, 0 seconds
STATUS: Failed
MESSAGES: The job failed. The Job was invoked by User win2003\Administrator. The last step to run was step 1 (test).
缺點是....錯誤訊息太精簡了, 也許就只是通知(notification) .
google了一下, 看看這篇文章, 自已想辦法去讀取sysjobstepslogs的完整錯誤吧
以後再試
2010年4月21日 星期三
訂閱:
張貼留言 (Atom)
pdf.js 無法顯示部份字
有個檔案在pdf viewer套件中無法顯示內容,但下載檔案後使用工具又可以正常顯示。 本來以為是套件版本太舊的原因,於是去下載pdf viewer套件 https://github.com/mozilla/pdf.js 更新後還是一樣。 覺得應是字型缺漏的問題,於是用PDF-X...
- 
上網找了免費的白箱檢測工具,找到了 puma scan 因為支援OWASP TOP 10的檢測,所以這是一個符合客戶需求又能與Visual studio結合的工具(白話說...交差了事矣....) 更重要的是這不用錢....檢測工具都貴森森的,尤其是源碼檢測工具。 ht...
- 
建了一個工作排程,定時執行batch檔。 batch中寫了一段xcopy,主要針對有異動較新檔案時才複製。 echo off for /f "delims=" %%a in ('wmic OS Get localdatetime ^| find...
- 
政府單位近年對資安要求日益嚴格,不管是主機還是AP面都花了大錢買了一般人買不起的工具在監控稽核,但小廠商怎麼可能有預算先花幾百萬買黑白箱掃瞄或主機稽核工具,然後再每年花幾百萬買MA呢?一個專案的預算也就幾百萬甚至不到百萬,哪裡買得起。所以免費的開源的都要不斷的找尋找尋再找尋,呵...
 
沒有留言:
張貼留言