Recentemente, atualizei meu distribuidor remoto para 2008r2. Estou obtendo bloqueios completos do sistema ao tentar gerar um novo instantâneo no dia em que adicionamos um artigo à publicação (poderíamos fazer isso no passado com muito poucos problemas).
Eu verifiquei sp_Helppublication
e estamos usando o método de sincronização 3 (concorrente), portanto, nenhum bloqueio deve ser mantido até o final.
Tenho tentado seguir este link porque estou apenas adicionando uma tabela adicional com 26 linhas, mas não quero reinicializar e ter todo o instantâneo entregue.
http://deepakrangarajan.blogspot.co.uk/2009/01/sql-2005-transaction-replication-adding.html
Eu tentei executar este código
EXEC sp_changepublication
@publication = 'statics',
@property = N'immediate_sync',
@value = 'false'
GO
mas isso também está bloqueando o sistema completamente. Acho que terei que executar no meio da noite, mas pensei que você poderia executar isso apenas como uma alteração de configuração na publicação.
Além disso, quando tento a última etapa no link para adicioná-lo à assinatura
EXEC sp_addsubscription
@publication = 'statics',
@article = 'dbo.SupplierCorporatePayAccountLink_tbl',
@subscriber = 'PEARLJAM',
@destination_db = 'MLT-Replicated',
@reserved='Internal'
Eu recebi a seguinte mensagem de erro
Msg 14058, nível 16, estado 1, procedimento sp_MSrepl_addsubscription_article, linha 331 Não é possível criar a assinatura porque ela já existe no banco de dados de assinaturas. Apenas uma assinatura para a mesma publicação é permitida em cada banco de dados de assinatura. Elimine a assinatura e adicione-a novamente, se necessário. Se o problema persistir, os metadados de replicação podem estar incorretos; consulte os Manuais Online para obter informações sobre solução de problemas.
Após o instantâneo, como posso adicionar o novo artigo ao assinante?
Para que isso funcione, agendei o desligamento da 'sincronização imediata' para um período de tráfego muito baixo
Em seguida, executei um instantâneo que levou apenas uma fração do tempo em 6 minutos.
Então, tive que cancelar a assinatura atual apenas para esse artigo
e execute novamente o instantâneo. Então eu poderia adicionar a assinatura de volta à publicação
mas não permitiria isso sem o cenário bastante obscuro
ou recebi uma mensagem de erro dizendo que precisava assinar todos os artigos.... a replicação então sincronizou automaticamente a nova tabela. Eu sou um homem feliz porque isso tem me causado longas noites!
Às vezes, isso acontece se alguma limpeza não for concluída corretamente.
Execute o procedimento de descarte de assinatura no assinante para limpeza.
Para o caso de Merge Replication, fique assim:
Mais informações:
http://technet.microsoft.com/en-us/library/ms184385.aspx
http://technet.microsoft.com/en-us/library/ms176045.aspx
Você precisa remover a publicação existente. Use o código abaixo para guiá-lo, como você pode remover publicações existentes. Eu espero que dê certo.