日前在災難復原演練過程中,將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的預設行為。
參考資料來源 : RESTORE 陳述式 - 引數 (Transact-SQL)
我是ROCK
rockchang@mails.fju.edu.tw