Domanda

Ho già esaminato alcune risorse e voglio solo chiarire e ottenere un parere.

Prima di tutto per evitare totalmente qualsiasi problema, non potremmo semplicemente preoccuparci di usare le colonne di identità come chiavi primarie invece li abbiamo generati noi stessi e abbiamo solo quei valori replicati in entrambi i modi presumendo che siano sempre unici in qualsiasi momento della creazione.

Ai fini di questa domanda sto parlando della replica in 2 o più modi per risolvere i problemi di accesso globale e abbiamo colonne di identità.

Ora stiamo impostando la replica transazionale ed entrambi i database dovrebbero replicarsi l'un l'altro.

A quanto ho capito, allocare un intervallo di valori seed a ciascun server di database e questi li utilizzerà, sapendo che esiste una causa unica che ha fornito intervalli che non attraversano. Quindi questo significa che durante la replica questi valori vengono inseriti nella colonna seed?

quindi se allocare intervalli 1-10 e 11-20 a 2 server una volta che ogni server ha inserito 10 righe avrai semi 1-20 in entrambi i database?

È stato utile?

Soluzione

C'è l'opzione " NOT FOR REPLICATION " che può essere applicato alle colonne identità (e ai trigger e altri vincoli).

Nel tuo esempio, server1 avrebbe seminato 1-10 ma avrebbe semplicemente accettato l'11-20 replicato.

Un paio di modi per impostare i tuoi semi:

O: imposta il seme / gli incrementi con NOT FOR REPLICATION come questo

  • Seme 1, incremento 2
  • Seme 2, incremento 2
  • Seme -1, incremento -2
  • Seme -2, incremento -2
  • Seme 1000000001, incremento 2
  • Semina 1000000002, incremento 2
  • Seme -1000000002, incremento -2
  • Seme -1000000001, incremento -2

Questo ti dà 500.000.000 per server per 8 server

Oppure: Aggiungi una seconda colonna chiamata ServerID per fornire chiavi composite, usa NOT FOR REPLICATION per la colonna ID

Questo può ridimensionare, ad esempio, 256 server per tinyint con 2 ^ 32 righe per server

Ad ogni modo funziona ...

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top