none
請教database mail問題 RRS feed

  • 問題

  • 請問一下,我在sql server 2005有排了資料庫維護計劃,但最近不斷收到維護計劃排程作業完成的mail,請問各位該如何停止SQL Server Maintenance plan排程送出來成功的mail。我有check過在job的通知中我並沒有設定發送郵件的通知,但為什麼我在啟用database mail後,就不斷收到sql server message的信件呢??因為該維護排程是每6小時執行一次,所以想問一下各位,是否有什麼設定或從那裡我可以取消此送信流程呢??我有檢視過該maintenance ssis package,但也沒看到有send mail的設定。拜託各位,解答一下我的疑惑了,謝謝!!

     

    2010年10月20日 上午 03:00

解答

  • Hi rmiao:

        我覺得我已經找到了,它設定在該維護排程的報表與記錄的設定上面,雖然在維護計劃的ssis封裝上我沒看到有設定寄發mail通知,但後來我自已再重新設定一次維護計劃排程,終於看到原來它是設定在報表與記錄的設定上,所以不要勾選寄發郵件通知,就不會再寄發信件了。嗯,感謝您的耐心協助,又學到新知識了,感謝您喲,謝謝!!

    2010年11月3日 上午 06:38

所有回覆

  • Remove mail profile in sql agent properties then restart it.
    2010年10月20日 上午 03:08
  • 還是不行耶,我把設定檔都刪除,並重新啟用database mail,但還是無效,仍然一直發送信件給我....請問還有沒有什麼地方是可以check的呢??其它job都不會送mail就只有backup transaction log的維護計劃會送,這到底是那邊有問題呢??拜託各位了,謝謝!!

    2010年10月20日 上午 05:17
  • Have to restart sql agent.
    2010年10月20日 下午 01:42
  • Hi rmiao:

      因為我們該server是線上系統,所以目前沒辦法重新啟動sql agent測試。有辦法重其它設定再做更詳細check嗎??麻煩您了,謝謝!!

    2010年10月21日 上午 01:14
  • Have to restart sql agent to make change effect. Or try delete db mail profile and disable db mail completely if don't use it anywhere else.
    2010年10月21日 上午 02:13
  • Hi rmiao:

      我希望可以enable database mail ,因為其它排程若失敗時,我仍然有設定自動發mail通知....所以請問一下還有無其它設定或參數是可以控制該維護作業排程不要送發成功信件呢??謝謝!!

    2010年10月21日 上午 10:14
  • Did you uncheck notification from that job?
    2010年10月21日 下午 01:41
  • Hi rmiao:

      有,我有check過該job的設定,該排程我們沒有設定通知,因為此維護計劃是備份transaction log,目前我是先將它disable,所以mail就不會再通知了,只是覺得很納悶,為什麼我們沒設定卻會自動發郵件通知,且只有該排程。謝謝您的回覆....

    2010年10月22日 上午 06:29
  • Can you script that job out and post here?
    2010年10月22日 下午 01:07
  • And double check that plan, ensure didn't put 'notify operator task' in it.
    2010年10月22日 下午 03:14
  • Hi rmiao:

       下列就是該job寄送出來的通知且已確認過該job沒有任何的警示及通知設定了,麻煩您了,謝謝!!

    NEW COMPONENT OUTPUT
    Microsoft(R) Server Maintenance Utility (Unicode) Version 9.0.3042
    Report was generated on "ast-erp1".
    Maintenance Plan: MaintenancePlan
    Duration: 00:00:01
    Status: Succeeded.
    Details:
    Back Up Database (Transaction Log) (ast-erp1)
    Backup Database on Local server connection
    Databases: accounting,accservice,costing,material,misadm,mispub,notesgateway
    Type: Transaction Log
    Append existing
    Task start: 2010-10-18T12:00:05.
    Task end: 2010-10-18T12:00:05.
    Success
    Command:EXECUTE master.dbo.xp_create_subdir N''E:\Backup_sqlDataTran\accounting''
    GO
    EXECUTE master.dbo.xp_create_subdir N''E:\Backup_sqlDataTran\accservice''
    GO
    EXECUTE master.dbo.xp_create_subdir N''E:\Backup_sqlDataTran\costing''
    GO
    EXECUTE master.dbo.xp_create_subdir N''E:\Backup_sqlDataTran\material''
    GO
    EXECUTE master.dbo.xp_create_subdir N''E:\Backup_sqlDataTran\misadm''
    GO
    EXECUTE master.dbo.xp_create_subdir N''E:\Backup_sqlDataTran\mispub''
    GO
    EXECUTE master.dbo.xp_create_subdir N''E:\Backup_sqlDataTran\notesgateway''
    GO
    BACKUP LOG [accounting] TO  DISK = N''E:\Backup_sqlDataTran\accounting\accounting_backup_201010181200.trn'' WITH NOFORMAT, NOINIT,  NAME = N''accounting_backup_20101018120005'', SKIP, REWIND, NOUNLOAD,  STATS = 10
    GO
    BACKUP LOG [accservice] TO  DISK = N''E:\Backup_sqlDataTran\accservice\accservice_backup_201010181200.trn'' WITH NOFORMAT, NOINIT,  NAME = N''accservice_backup_20101018120005'', SKIP, REWIND, NOUNLOAD,  STATS = 10
    GO
    BACKUP LOG [costing] TO  DISK = N''E:\Backup_sqlDataTran\costing\costing_backup_201010181200.trn'' WITH NOFORMAT, NOINIT,  NAME = N''costing_backup_20101018120005'', SKIP, REWIND, NOUNLOAD,  STATS = 10
    GO
    BACKUP LOG [material] TO  DISK = N''E:\Backup_sqlDataTran\material\material_backup_201010181200.trn'' WITH NOFORMAT, NOINIT,  NAME = N''material_backup_20101018120005'', SKIP, REWIND, NOUNLOAD,  STATS = 10
    GO
    BACKUP LOG [misadm] TO  DISK = N''E:\Backup_sqlDataTran\misadm\misadm_backup_201010181200.trn'' WITH NOFORMAT, NOINIT,  NAME = N''misadm_backup_20101018120005'', SKIP, REWIND, NOUNLOAD,  STATS = 10
    GO
    BACKUP LOG [mispub] TO  DISK = N''E:\Backup_sqlDataTran\mispub\mispub_backup_201010181200.trn'' WITH NOFORMAT, NOINIT,  NAME = N''mispub_backup_20101018120005'', SKIP, REWIND, NOUNLOAD,  STATS = 10
    GO
    BACKUP LOG [notesgateway] TO  DISK = N''E:\Backup_sqlDataTran\notesgateway\notesgateway_backup_201010181200.trn'' WITH NOFORMAT, NOINIT,  NAME = N''notesgateway_backup_20101018120005'', SKIP, REWIND, NOUNLOAD,  STATS = 10

     

     

    2010年10月25日 上午 12:56
  • Did you check plan yet?
    2010年10月31日 上午 12:13
  • Hi rmiao:

       是的,我已經確認過了,該排程並未設定任何警示及通知。它送上來的mail內容就是上上篇回應,我後來是選擇將此維護計劃排程停掉,

    因為它只有做transacton log備份,考量應該不會用到它,所以就不再讓它執行了。所以mail也就沒再發送了,感謝您囉,謝謝!!

    2010年11月1日 上午 01:00
  • Not in job, check if someone added 'notify operator task' in log backup plan.
    2010年11月1日 上午 03:22
  • 請問我可以還可以從那邊檢查到是否有人新增通知操作者的記錄呢??我有檢查該維護計劃排程檢查屬性的通知,它沒有設定通知操作員,以及在sql server agent內的操作員也檢查過其屬性,並未設定該維護計劃排程寄發通知信,我同時有設定其它維護計劃的job,但就只有該job會寄發通知,其餘的job都不會。

    謝謝!!

    2010年11月1日 上午 03:36
  • Don't know anywhere else you can set that other than in the plan or in job. Possible to post job script?
    2010年11月1日 下午 02:08
  • Hi rmiao:

       相關的job script如下:

    USE [msdb]
    GO

    /****** Object:  Job [MaintenancePlan.Subplan_5]    Script Date: 11/02/2010 14:34:41 ******/
    BEGIN TRANSACTION
    DECLARE @ReturnCode INT
    SELECT @ReturnCode = 0
    /****** Object:  JobCategory [Database Maintenance]    Script Date: 11/02/2010 14:34:41 ******/
    IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'Database Maintenance' AND category_class=1)
    BEGIN
    EXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'Database Maintenance'
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback

    END

    DECLARE @jobId BINARY(16)
    EXEC @ReturnCode =  msdb.dbo.sp_add_job @job_name=N'MaintenancePlan.Subplan_5',
      @enabled=0,
      @notify_level_eventlog=2,
      @notify_level_email=0,
      @notify_level_netsend=0,
      @notify_level_page=0,
      @delete_level=0,
      @description=N'No description available.',
      @category_name=N'Database Maintenance',
      @owner_login_name=N'sa', @job_id = @jobId OUTPUT
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    /****** Object:  Step [Subplan_5]    Script Date: 11/02/2010 14:34:41 ******/
    EXEC @ReturnCode = msdb.dbo.sp_add_jobstep @job_id=@jobId, @step_name=N'Subplan_5',
      @step_id=1,
      @cmdexec_success_code=0,
      @on_success_action=1,
      @on_success_step_id=0,
      @on_fail_action=2,
      @on_fail_step_id=0,
      @retry_attempts=0,
      @retry_interval=0,
      @os_run_priority=0, @subsystem=N'SSIS',
      @command=N'/Server "$(ESCAPE_NONE(SRVR))" /SQL "Maintenance Plans\MaintenancePlan" /set "\Package\Subplan_5.Disable;false"',
      @flags=0
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    EXEC @ReturnCode = msdb.dbo.sp_update_job @job_id = @jobId, @start_step_id = 1
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    EXEC @ReturnCode = msdb.dbo.sp_add_jobserver @job_id = @jobId, @server_name = N'(local)'
    IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
    COMMIT TRANSACTION
    GOTO EndSave
    QuitWithRollback:
        IF (@@TRANCOUNT > 0) ROLLBACK TRANSACTION
    EndSave:

    GO

     

    2010年11月2日 上午 06:39
  • You checked maintenance subplan_5?
    2010年11月2日 下午 01:37
  • Hi rmiao:

        我覺得我已經找到了,它設定在該維護排程的報表與記錄的設定上面,雖然在維護計劃的ssis封裝上我沒看到有設定寄發mail通知,但後來我自已再重新設定一次維護計劃排程,終於看到原來它是設定在報表與記錄的設定上,所以不要勾選寄發郵件通知,就不會再寄發信件了。嗯,感謝您的耐心協助,又學到新知識了,感謝您喲,謝謝!!

    2010年11月3日 上午 06:38
  • Glad to know.
    2010年11月3日 下午 03:19