KB2861456 – KORJAUS: Käyttövirhe replikoinnin jakeluagentissa SQL Server tapahtuman replikoinnissa

Käytetään kohteeseen
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Ongelman ilmenemistapa

Oletetaan, että käytössäsi on Microsoft SQL Server 2008 R2-, SQL Server 2012- tai SQL Server 2014 -tapahtumareplikointiympäristö. Ympäristössä on useita SQL Server -jakeluesiintymiä. Tässä tapauksessa saattaa tapahtua käyttöoikeusrikkomus ja SQL Server -replikoinnin jakeluagentti kaatuu. Lisäksi luodaan pienoisvedostiedosto.

Ratkaisu

Kun olet asentanut hotfix-korjauksen, agentti sammuu sulavasti sen sijaan, että se kaatuisi yhdessä vedostiedoston kanssa. Voit lisätä ylimääräisen työvaiheen jakeluagenttityöhön, jos haluat käynnistää agentin uudelleen automaattisesti, kun palvelupaketti on pysähtynyt ja sen tilana on ajoitettu uudelleenkäynnistykseen.

Lisätietoja siitä, miten voit lisätä toisen työvaiheen Jakeluagentti-työhön, on Lisätietoja-osassa.

Ongelma korjattiin ensimmäisen kerran seuraavassa SQL Server kumulatiivisessa päivityksessä.

SQL Server 2014:n kumulatiivinen päivitys 1 /en-us/help/2931693

Kumulatiivinen päivitys 9 SQL Server 2012 SP1:lle /en-us/help/2931078

SQL Server 2012:n kumulatiivinen päivitys 11 /en-us/help/2908007

Kumulatiivinen päivitys 9, SQL Server 2008 R2 SP2 /en-us/help/2887606

Tietoja SQL Serverin kumulatiivisista päivityksistä

Jokainen uusi SQL Server -kumulatiivinen päivitys sisältää kaikki edelliseen kumulatiiviseen päivitykseen sisältyvät hotfix-korjaukset ja tietoturvakorjaukset. Tutustu SQL Serverin uusimpiin kumulatiivisiin päivityksiin:

      

SQL Server 2008 R2 Service Pack 1:n hotfix-päivityspaketti Tämän ongelman korjaus julkaistiin ensimmäisen kerran SQL Server 2008 R2 Service Pack 1:n hotfix-päivityspaketissa.

Tila

Microsoft on vahvistanut tämän olevan ongelma niissä Microsoftin tuotteissa, jotka ovat listattuna Koskee seuraavia tuotteita -osiossa.

Lisätietoja

Kun olet asentanut hotfix-korjauksen, lisää jakeluagenttityöhön seuraava komentosarja:DECLARE @JobID BINARY(16)
DECLARE @AgentID int
DECLARE @command varchar(max)
MÄÄRITTELE JOBCUR-KOHDISTIN SELECT Job.job_id:LLE Agent.id FROM msdb.dbo.sysjobs TYÖKSI
        INNER JOIN msdb.dbo.syscategories AS Cat ON Job.category_id = Cat.category_id
        INNER JOIN msdb.dbo.sysjobsteps AS Steps ON Job.job_id = Steps.job_id
        INNER JOIN distribution.dbo.MSdistribution_agents AS Agent ON Job.job_id = Agent.job_id
        WHERE Job.name like '%Put Text Mask To Identify Your Publisher DB Jobs Here%' AND Cat.name = 'REPL-Distribution'
        RYHMITTELYPERUSTE Job.job_id, Agent.id
        HAVING LASKE(step_id) = 3
AVAA JobCur
NOUDA SEURAAVA KOHTEESTA JobCur INTO @JobID, @AgentID
WHILE @@FETCH_STATUS = 0 BEGIN
        IF (@JobID is not NULL) BEGIN
                set @command = N'if (valitse top 1 suoritustila MSdistribution_history, jossa agent_id = ' + convert(varchar, @AgentID)+ N' order by timestamp desc) = 5
        raiserror(''Agent was scheduled for retry. Suoritetaan uudelleenkäynnistystä nyt'',16,1)'
                EXEC msdb.dbo.sp_add_jobstep @job\_id=@JobID, @database\_name=N'jakelu', @step\_name=N'Tarkista uudelleenyrityksessä', @step\_id=4, @on\_fail\_action=4, @on\_fail\_step\_id=1, , @command=@command
                EXEC msdb.dbo.sp_update_jobstep @job\_id=@JobID, @step\_id=2, @on\_success\_action=4, @on\_success\_step\_id=4
        END
        NOUDA SEURAAVA JobCur INTO @JobID, @AgentID;
END
SULJE JobCur;
POISTA JOBCUR;
SIIRRY