還原msdb時發生資料庫中未啟用 Service Broker 的錯誤訊息

日前在災難復原演練過程中,將msdb資料庫備份還原到另一台新建立的測試主機時發生

訊息 14650,層級 16,狀態 1,程序 msdb.dbo.sp_send_dbmail,行 73 [批次開始行 0]
在此資料庫中未啟用 Service Broker 訊息傳遞。請使用 ALTER DATABASE 陳述式來啟用 Service Broker 訊息傳遞。

整個msdb還原是有成功的,但出現如下圖中的錯誤訊息

經了解來源主機的msdb是有開啟Service Broker功能(因為有用到Database Mail功能),但還原到新主機時基於安全性考量SQL預設會把該功能關閉,除非您在還原語法上指定ENABLE_BROKER,這樣指定在還原結束時啟用 Service Broker 訊息傳遞,以便立即傳送訊息。

但由於我還原時並沒有指定ENABLE_BROKER所以當還原完成後執行下面語法開啟Service Broker功能。

USE [master]
GO
ALTER DATABASE [msdb] SET  SINGLE_USER WITH ROLLBACK IMMEDIATE
GO
ALTER DATABASE [msdb] SET  SINGLE_USER 
GO
ALTER DATABASE [msdb] SET NEW_BROKER 
GO
ALTER DATABASE [msdb] SET  MULTI_USER 
GO 

 

下圖為官方文件,說明Restore Database時SQL的預設行為。

我是ROCK

rockchang@mails.fju.edu.tw