Pregunta

Estoy creando una aplicación web de intranet con un back-end de Oracle. Oracle DB se replicará en otro servidor por razones que no son importantes para esta discusión. Estoy razonablemente seguro de que utilizaremos Oracle Basic Replication, no Advanced.

¿Puede alguien explicarme por qué la mayoría de las discusiones sobre las claves principales son algo así como:

  • El uso de entradas de incremento automático para PK está bien el 99% del tiempo
  • EXCEPTO si estás haciendo replicación. Luego use GUID para sus PK.

Nadie parece explicar por qué la excepción para la replicación, y no entiendo por qué.

¿Fue útil?

Solución

Creo que el argumento GUID para replicación solo se aplica realmente si ambos servidores recibirán nuevos datos. Entonces no desea que las nuevas filas entren en conflicto, así que use GUID como PK - la replicación puede ir en ambos sentidos.

Replicamos tablas de aumento automático todo el tiempo, pero es una réplica estricta maestro / esclavo donde los datos solo se escriben en el Maestro.

Otros consejos

Una palabra: FUSIÓN

La única forma en que puede funcionar la replicación de mezcla es si todos los " master " los cuadros pueden crear una nueva clave sin que entre en conflicto con las demás.

Si considera lo que sucede cuando dos servidores se replican entre sí y se les agregan datos entre la sincronización, el problema se hace evidente:

Time  Server  NewID
001   A       1
002   A       2
003 <sync of server A and B>
004   A       3
005   B       3
006 <sync of server A and B>

< --- dos registros diferentes tienen la misma ID ahora, ¡así que hay un conflicto!

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