SQL復制訂閱日志讀取器代理自動停止,同步作業被DBAAdmin用戶拒絕這個問題困擾鄙人半月有余,百度千百回也沒能解決。
闡述一下鄙人的解決方法:
1、首先確認SQL復制訂閱日志讀取器代理用戶是否為數據庫DBA用戶(DBA用戶如果沒有就是默認的sa用戶),如果是本地用戶或者其它用戶則更改為DBA用戶。
USE [msdb]GO
/****** Object: Job [發布作業名稱] ******/BEGIN TRANSACTIONDECLARE @ReturnCode INTSELECT @ReturnCode = 0/****** Object: JobCategory [REPL-Distribution] ******/IF NOT EXISTS (SELECT name FROM msdb.dbo.syscategories WHERE name=N'REPL-Distribution' AND category_class=1)BEGINEXEC @ReturnCode = msdb.dbo.sp_add_category @class=N'JOB', @type=N'LOCAL', @name=N'REPL-Distribution'IF (@@ERROR <> 0 OR @ReturnCode <> 0) GOTO QuitWithRollback
END
DECLARE @jobId BINARY(16)EXEC @ReturnCode = msdb.dbo.sp_add_job @job_name=N'發布作業名稱', @enabled=1, @notify_level_eventlog=0, @notify_level_email=0, @notify_level_netsend=0, @notify_level_page=0, @delete_level=0, @description=N'無描述。', @category_name=N'REPL-Distribution', @owner_login_name=N'DBA用戶名', @job_id = @jobId OUTPUT
2、檢查SQL復制訂閱日志讀取器代理的復制計劃的計劃類型***這是關鍵***
----------- 復制代理計劃類型必須為"SQL代理啟動時自動啟動"。
3、此時訂閱狀態還是未運行,且狀態“嚴重或差”,完成以上步驟后重新初始化訂閱或者重新啟動日志讀取代理即可解決問題。
|
新聞熱點
疑難解答