Pregunta

Ya he visto algunos recursos y solo quiero aclarar y obtener una opinión.

En primer lugar, para evitar cualquier problema por completo, simplemente no podríamos molestarnos en usar columnas de identidad como claves primarias, sino que las generemos nosotros mismos y solo replicar esos valores en ambos sentidos, suponiendo que siempre sean únicos en cualquier momento de la creación.

A los fines de esta pregunta, estoy hablando de la replicación de 2 o más vías para resolver problemas de acceso global y tenemos columnas de identidad.

Ahora estamos configurando la replicación transaccional y ambas bases de datos deberían replicarse entre sí.

Según tengo entendido, asigna un rango de valores de inicialización a cada servidor de base de datos y usará estos, usted sabe que hay una causa única que le dio rangos que no se cruzan. Entonces, ¿significa esto durante la replicación que estos valores se insertan en la columna semilla?

entonces, si asigna rangos 1-10 y 11-20 a 2 servidores una vez que cada servidor ha insertado 10 filas, ¿tendrá semillas 1-20 en ambas bases de datos?

¿Fue útil?

Solución

Existe la opción " NO PARA REPLICACIÓN " que se puede aplicar a las columnas de identidad (y desencadenantes y otras restricciones).

En tu ejemplo, server1 sembraría 1-10 pero simplemente aceptaría 11-20 replicados.

Un par de formas de configurar sus semillas:

O bien: establezca su semilla / incrementos con NO PARA REPLICACIÓN como esta

  • Semilla 1, incremento 2
  • Semilla 2, incremento 2
  • Semilla -1, incremento -2
  • Semilla -2, incremento -2
  • Semilla 1000000001, incremento 2
  • Semilla 1000000002, incremento 2
  • Semilla -1000000002, incremento -2
  • Semilla -1000000001, incremento -2

Esto le da 500,000,000 por servidor para 8 servidores

O: Agregue una segunda columna llamada ServerID para dar claves compuestas, use NOT FOR REPLICATION para la columna ID

Esto escala hasta, digamos, 256 servidores para tinyint con 2 ^ 32 filas por servidor

De cualquier manera funciona ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top