Sintomas
Suponha que você use a replicação de mesclagem que o Publicador está executando no Microsoft SQL Server 2012 ou SQL Server 2012 Service Pack 1 (SP1). Após atualizar o editor para o SQL Server 2012 Service Pack 2 (SP2), não será possível reiniciar o agente de mesclagem. Além disso, você recebe a seguinte mensagem de erro:
O processo de mesclagem não pôde executar a limpeza de metadados baseada em retenção no banco de dados ' MergePub '. Se essa falha persistir, tente aumentar o tempo limite da consulta para esse processo ou tente reduzir o período de retenção. Ao solucionar o problema, reinicie a sincronização com o log de histórico detalhado e especifique um arquivo de saída no qual deseja gravar.
Quando você executa a sp_mergemetadataretentioncleanup procedimento armazenado manualmente no editor, o procedimento armazenado falha e você recebe a seguinte mensagem de erro:
MSG 206, nível 16, estado 2, procedimento sp_mergemetadataretentioncleanup, linha 63Operand tipo conflitante: bigint é incompatível com uniqueidentifierMsg 206, nível 16, estado 2, procedimento sp_mergemetadataretentioncleanup, linha 65Operand tipo de conflito: int é incompatível com uniqueidentifier
Resolução
O problema foi corrigido primeiro na atualização cumulativa a seguir do SQL Server.
Atualização cumulativa 3 para SQL Server 2012 SP2 /en-us/help/3002049
Cada nova atualização cumulativa do SQL Server contém todos os hotfixes e todas as correções de segurança incluídas na atualização cumulativa anterior. Confira as atualizações cumulativas mais recentes do SQL Server:
Solução alternativa
Para contornar esse problema, execute a seguinte consulta no banco de dados publicado:if exists (select * from sys.columns sc inner join sys.types st on sc.system_type_id = st.system_type_id where object_id = object_id('dbo.sysmergesubscriptions') and sc.name = 'last_local_recgen' and st.name = 'uniqueidentifier') begin alter table dbo.sysmergesubscriptions drop column last_local_recgen alter table dbo.sysmergesubscriptions add last_local_recgen bigint null end
Status
A Microsoft confirmou que este é um problema nos produtos Microsoft listados na seção "Aplicável a".