SQL Server 2000/2005 identidade replicação coluna +
-
03-07-2019 - |
Pergunta
Eu olhei já e apenas a alguns recursos quero esclarecer e obter uma opinião.
Primeiro de tudo para evitar totalmente qualquer problemas que simplesmente não conseguia se incomode com colunas de identidade como chaves primárias em vez tê-los gerado nós mesmos e só tem esses valores replicados em ambos os sentidos presumindo que eles são sempre únicas em qualquer momento da criação.
Para efeitos da presente pergunta que eu estou falando sobre 2 ou mais replicação maneira de resolver os problemas de acesso global e nós temos colunas de identidade.
Agora estamos a criar a replicação transacional e ambos os bancos de dados devem replicar para os outros.
Pelo que entendi você alocar um intervalo de valores de sementes para cada servidor de banco de dados e ele vai usá-los, você sabe que há causa única que você deu intervalos que não se cruzam. Então, isso significa durante a replicação estes valores são inseridos na coluna semente?
Então, se você alocar intervalos de 1-10 e 11-20 para 2 servidores uma vez que cada servidor tenha inserido 10 linhas você terá sementes 1-20 em ambas as bases de dados?
Solução
Há a opção " NOT FOR REPLICATION " que pode ser aplicado a colunas de identidade (e gatilhos e outras restrições).
No seu exemplo, server1 seria semear 1-10, mas simplesmente aceitar replicado 11-20.
Um par de maneiras de configurar suas sementes:
Ou: definir suas sementes / incrementos com NOT FOR REPLICATION como este
- Semente 1, incremento de 2
- Seed 2, incremento de 2
- Semente -1, -2 incremento
- Semente -2, incremento de -2
- Semente 1000000001, incremento de 2
- Semente 1000000002, incremento de 2
- Semente -1000000002, incremento de -2
- Semente -1000000001, incremento de -2
Isto dá-lhe 500 milhões por servidor para 8 servidores
Ou: Adicionar uma segunda coluna chamada ServerID para dar chaves compostas, não use FOR REPLICATION para a coluna ID
Este escalas até, digamos, 256 servidores para tinyint com 2 ^ 32 linhas por servidor
De qualquer maneira funciona ...