Estou tentando adicionar mais um nó no cluster ponto a ponto. No estado atual, tenho 3 servidores A, B e C. Preciso adicionar um nó D com o nó A(somente). Para isso, usei os seguintes passos:
- Fez backup completo do Nó A
- Copiou para o Nó D
- Restaurou o backup
- Publicações adicionadas em ambos os nós.
- Adicionada assinatura para o Nó D no Nó A do editor com sync_type 'inicializar com backup'
Assim que os comandos foram executados, o Log Reader no Node A começou a lançar os erros abaixo:
- O processo não pôde executar 'sp_MSadd_replcmds' no 'Nó A'. (Fonte: MSSQLServer, número do erro: 1007) Obtenha ajuda: http://help/1007
- As transações necessárias para sincronizar a assinatura nosync criada a partir do backup especificado não estão disponíveis no Distribuidor. Repita a operação novamente com um log, diferencial ou backup completo do banco de dados mais atualizado. (Fonte: MSSQLServer, número do erro: 1007) Obtenha ajuda: http://help/1007
- A interface IDistPut foi encerrada. (Fonte: MSSQL_REPL, número do erro: MSSQL_REPL2000) Obtenha ajuda: http://help/MSSQL_REPL2000
- A última etapa não registrou nenhuma mensagem! (Fonte: MSSQL_REPL, número do erro: MSSQL_REPL22037) Obtenha ajuda: http://help/MSSQL_REPL22037
Como isso estava afetando a replicação p2p entre os nós A, B e C, removi a assinatura do nó D. Isso não resolveu o erro. Em uma investigação mais aprofundada, descobri que o trabalho de limpeza de distribuição ainda estava em execução. Provavelmente isso causou o problema.
Agora, estou apenas esperando fazer a replicação p2p entre os nós já existentes A, B e C funcionar novamente, do jeito que era antes. Mas, todas as minhas tentativas resultaram em nenhuma alteração no Log Reader Agent. Está travado no mesmo erro. - O processo não pôde executar 'sp_MSadd_replcmds' no 'Nó A'. (Fonte: MSSQLServer, número do erro: 1007) Obtenha ajuda: http://help/1007 - As transações necessárias para sincronizar a assinatura nosync criada a partir do backup especificado não estão disponíveis no Distribuidor. Repita a operação novamente com um log, diferencial ou backup completo do banco de dados mais atualizado. (Fonte: MSSQLServer, número do erro: 1007) Obtenha ajuda: http://help/1007 - A interface IDistPut foi encerrada. (Fonte: MSSQL_REPL, número do erro: MSSQL_REPL2000) Obtenha ajuda:http://help/MSSQL_REPL2000 - A última etapa não registrou nenhuma mensagem! (Fonte: MSSQL_REPL, número do erro: MSSQL_REPL22037) Obtenha ajuda: http://help/MSSQL_REPL22037
Por favor, informe sobre todas as etapas para resolver isso. Obrigado
Adicionando a resolução para o benefício de quem enfrentou esse problema no SQL 2012:
Contratamos o suporte da MS para isso. Aparentemente, seu procedimento armazenado "sp_dropsubscriber" às vezes perde algumas tabelas. No nosso caso, essa entrada não foi excluída da tabela MSnosyncsubsetup. Assim que descobriram isso após algumas horas de análise, um backup foi feito e a linha relacionada ao novo assinante foi excluída. Isso corrigiu o leitor de log e a replicação funcionou corretamente.