Estou enfrentando algum problema com minha assinatura (replicação transacional) recentemente, pois sempre que tentei adicionar uma nova assinatura à minha publicação existente de qualquer maneira, uso Inicializar quando imediatamente ou na primeira sincronização, sempre encontrei problemas resultando em assinatura malsucedida.
Quando seleciono inicializar quando Imediatamente, depois de apertar o botão Concluir, encontrei este erro:
Mensagem: Tempo limite de execução expirou. O período de tempo limite decorrido antes da conclusão da operação ou o servidor não está respondendo. Texto do comando: sp_MSreplupdateschema Parâmetros: @object_name = [dbo].[myTableName]
Replication.Snapshot.SqlServerSnapshotProvider.GenerateSnapshot() em Microsoft.SqlServer.Replication.SnapshotGenerationAgent.InternalRun() em Microsoft.SqlServer.Replication.AgentCore.Run() (Fonte: MSSQLServer, número do erro: -2) Obtenha ajuda: http:/ /help/-2 Servidor MyServerName, Nível 11, Estado 0, Procedimento, Linha 0 Tempo limite de execução expirado. O período de tempo limite decorrido antes da conclusão da operação ou o servidor não está respondendo. (Fonte: MSSQLServer, Número do erro: -2) Obtenha ajuda: http://help/-2 Fonte: Site de destino: Mensagem: A operação de espera expirou Pilha: (Fonte:, Número do erro: 0) Obtenha ajuda: http: //ajuda/0 //help/-2 Servidor MyServerName, Nível 11, Estado 0, Procedimento, Linha 0 Tempo limite de execução expirado. O período de tempo limite decorrido antes da conclusão da operação ou o servidor não está respondendo. (Fonte: MSSQLServer, Número do erro: -2) Obtenha ajuda: http://help/-2 Fonte: Site de destino: Mensagem: A operação de espera expirou Pilha: (Fonte:, Número do erro: 0) Obtenha ajuda: http: //ajuda/0 //help/-2 Servidor MyServerName, Nível 11, Estado 0, Procedimento, Linha 0 Tempo limite de execução expirado. O período de tempo limite decorrido antes da conclusão da operação ou o servidor não está respondendo. (Fonte: MSSQLServer, Número do erro: -2) Obtenha ajuda: http://help/-2 Fonte: Site de destino: Mensagem: A operação de espera expirou Pilha: (Fonte:, Número do erro: 0) Obtenha ajuda: http: //ajuda/0
No entanto, se eu selecionar Inicializar quando na primeira sincronização, isso me dará o status de O instantâneo inicial do artigo myTableName ainda não está disponível.
Além disso, se eu reinicializar a assinatura, nada acontece
Observação:
Estou usando o SQL Server Standard 2019 Edition, Microsoft SQL Server Management Studio 2019
Aqui também está a especificação do meu servidor: HP Proliant Gen10 +
e minha utilização atual do sistema via gerenciador de tarefas
Seu SQL Server está atualmente com mais de 20 patches atrasados. Considere atualizar pelo menos para CU19. Tive uma experiência em que a replicação transacional não funcionava (gerando alguns erros) até instalarmos o patch mais recente. Verifique este link para a compilação do SQL Server 2019 .
Esse é o comportamento correto.
Siga os passos abaixo:
Você precisa iniciar o trabalho de instantâneo. veja o comentário acima.
Verificações adicionais que você precisa fazer:
REPL-
prefixo da categoria para ver se o proprietário do trabalho está definido corretamente. O trabalho deve estar emsa
oudistributor_admin
ou falhará.At least: 72hrs
eBut not more than: 72hrs
. Eu aplico a mesma configuração de 72 horas parahistory retention
.CommitBatchSize
1000CommitBatchThreshold
10.000Polling Interval
1Query Timeout
9600Max Text Replication Size
como -1Esta não é uma lista abrangente, mas é um bom ponto de partida para a configuração da replicação transacional.