參考文獻:
1.圖文教你怎樣配置Database Mail+JOB(MS_SQL2005以上版本)(按照這個教程完成配置)
2.SQL SERVER 2008配置Database Mail –用SQL 數據庫發郵件(官方教程,從老外那邊翻譯過來的,在smtp配置上沒有文獻1有價值)
3.配置SQL Server Job運行成功或失敗時發送電子郵件通知
正文
database mail配置
具體可以參考文獻1,配置的重點是郵件的smtp服務器配置,具體參考如下圖
1.在Outgoing mail server(SMTP)中,email address地址就是你用來給別人發送郵件的數據庫郵件地址。而server name則根據每個郵件服務器來具體填寫,配置過outlook的人會很熟悉,這里填寫smtp.163.com。具體的端口號我用google查了一下,卻是是25。
2.在下面的SMTP Authentication配置,User name是郵件地址,帶有@163.com。password就是郵件密碼。
配置SQL Server Agent的Alert System
前面database配置成功以后,我們發送測試郵件成功。但是還是不能做到在作業成功完成之后發送通知信息。
1.我們首先在SQL Server Agent->Operator下創建操作者,如下圖所示,填寫操作者姓名(Name)以及郵件地址(E-mail name),其他的不需要填寫。
2.為作業(job)指定警報器,如下圖所示。右鍵Job-BackupDatabase選擇屬性,然后再Notification選項卡中指定操作者,我們這里選擇前面創建的operator:xw,條件是當這個job成功之后給操作者發送通知。
3.右鍵作業,選擇“start job at step”。job可以成功執行,但是我們並沒有收到郵件,這是為什么?那么我們查看job的執行log,如下圖所示;
從上圖倒數第二條log日志中我們發現有一個錯誤:NOTE:Failed to notify 'xw' via email。之所以會出現這樣的錯誤,是因為我們沒有配置SQL Server Agent的Alert System。我們之前配置的只是database email,但是並不是sql server的email。我們可以通過配置SQL Server Agent的Alert System來指定使用database email來發送通知信息。如下圖所示:
如上圖所示,我們在Alert System中Enable mail profile,然后選擇database mail。這樣就可以在作業執行成功之后發送通知信息了。
測試
右鍵備份數據庫的作業,選擇start job at step。在成功執行完job以后,我們發現job日志中沒有了NOTE:Failed to notify 'xw' via email。並且xw這個operator的郵箱中也收到了操作成功的信息。郵件信息如下:
JOB RUN: 'Job-BackupDatabase' was run on 2012/6/26 at 16:32:46 DURATION: 0 hours, 0 minutes, 1 seconds STATUS: Succeeded MESSAGES: The job succeeded. The Job was invoked by User xxxx. The last step to run was step 1 (Setp1-exec tsql).