有時候搭建的復制在作業比較多的時候,會因為某些情況導致代理停止或出錯,如果分發代理時間停止稍微過長可能導致復制延期,從而需要從新初始化復制,帶來問題。因此我寫了一個腳本定期檢查處于停止狀態的分發代理,將其啟動。
注:該腳本需要跑在分發服務器下的MSDB庫中。
USE [msdb]
Create PROC [dbo].[CheckToRestartStopedAgentJob]
AS
DECLARE @jobname VARCHAR(200)
DECLARE jobname CURSOR
FOR
SELECT DISTINCT
b.name AS MergeJobName
FROM distribution.dbo.MSdistribution_history a
INNER JOIN distribution.dbo.MSdistribution_agents b ON a.agent_id = b.id
WHERE comments LIKE '傳遞了%'
OPEN jobname
FETCH NEXT FROM jobname INTO @jobname
新聞熱點
疑難解答