Falha na sincronização da replicação; Publicador fora dos intervalos de identidade

3

Eu tenho o Merge Replication configurado com um Publicador / Distribuidor do SQL 2005 e aproximadamente 100 Assinantes do SQL 2005 Express. Tudo estava funcionando bem por meses e agora, de repente, todo mundo está recebendo os erros abaixo.

Eu tenho pesquisado, mas sem sucesso. Alguém pode oferecer alguma introspecção? Eu até tentei apagar a assinatura de um usuário. Eu também tentei correr - >

sp_adjustpublisheridentityrange @publication='MyDB'

De qualquer forma, aqui estão os erros - >

Error messages:
The Publisher failed to allocate a new set of identity ranges for the subscription. This can occur when a Publisher or a republishing Subscriber has run out of identity ranges to allocate to its own Subscribers or when an identity column data type does not support an additional identity range allocation. If a republishing Subscriber has run out of identity ranges, synchronize the republishing Subscriber to obtain more identity ranges before restarting the synchronization. If a Publisher runs out of identit (Source: MSSQL_REPL, Error number: MSSQL_REPL-2147199417)
Get help: http://help/MSSQL_REPL-2147199417
Not enough range available to allocate a new range for a subscriber. (Source: MSSQLServer, Error number: 20668)
Get help: http://help/20668
Failed to allocate new identity range. (Source: MSSQLServer, Error number: 21197)
Get help: http://help/21197
    
por Refracted Paladin 18.02.2010 / 22:54

1 resposta

2

Primeiro, as suas máquinas estão com pelo menos o Service Pack 3? Esse erro foi muitas vezes causado por um bug corrigido pela Atualização Cumulativa 4 do Service Pack 2. Esse pode ser um lugar para começar.

Se você estiver com tudo corrigido, verificarei em seguida o tipo de dados de suas colunas de identidade. Se eles são atualmente INTs, por exemplo, e o editor está tentando alocar um intervalo que excede o valor INT máximo (2.147.483.647), você obteria esse erro. Você poderia resolvê-lo alterando seu campo de identidade para um BIGINT. Com 100 inscritos, seu editor precisou alocar um grande número de intervalos, o que pode ser provável.

Espero que isso ajude.

    
por 22.02.2010 / 17:56