Temos a replicação de mesclagem do SQL Server 2008 R2 configurada.
Temos mais de 20 assinaturas push.
De vez em quando, recebo a seguinte mensagem de erro durante a sincronização:
Error messages: The merge process could not set the status of the subscription correctly.
(Source: MSSQL_REPL, Error number: MSSQL_REPL-2147200963)
Could not find stored procedure 'dbo.sp_MScheckIsPubOfSub'.
(Source: MSSQLServer, Error number: 2812)
Encontrei o código para o SP mencionado e executei-o no banco de dados do assinante e tudo funcionou bem.
Minha pergunta é: por que esse procedimento armazenado está sendo excluído de vez em quando por si só? E como posso solucionar esse problema?
Verifique se há linhas órfãs para assinaturas excluídas em sysmergesubscriptions e exclua-as. Por exemplo, o assinante em que isso está falhando pode ter entradas duplicadas em sysmergesubscriptions, sendo uma delas órfã de uma assinatura excluída anteriormente.
Esta foi a causa deste erro e solução para clientes meus no passado, ymmv. Eu espero que isso ajude.