Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Per comprendere in che modo i conflitti vengono risolti in base ai valori di priorità assegnati e se una sottoscrizione è un server o una sottoscrizione client, considerare l'esempio seguente, che descrive una serie di aggiornamenti di una riga in più sincronizzazioni di tipo merge.
Ecco i valori di priorità iniziali per quattro siti in una topologia di replica di tipo merge di base (un server di pubblicazione, due Sottoscrittori con sottoscrizioni server e un Sottoscrittore con una sottoscrizione client).
Sito | TIPO | Valore priorità |
---|---|---|
A | Editore | 100,00 |
B | Sottoscrizione server | 75.00 (assegnato) |
C | Abbonamento server | 50.00 (assegnato) |
D | Sottoscrizione cliente | 0.00 (impostazione predefinita) |
Fase 1: Valori iniziali
Inizialmente, site A (il server di pubblicazione) crea la versione 1 della riga contenente value='Nebraska', che viene replicata in Siti B, C e D durante la sincronizzazione di merge successiva. Dopo la sincronizzazione, ecco i valori per la riga.
Sito | TIPO | Valore riga |
---|---|---|
A (server di pubblicazione) | 100,00 | Nebraska |
B (abbonamento server) | 75,00 | Nebraska |
C (sottoscrizione server) | 50.00 | Nebraska |
D (Sottoscrizione Client) | 0,00 | Nebraska |
Fase 2: Pubblicazione e sottoscrittore con sottoscrizione al server aggiornano entrambe la riga.
Site A aggiorna il valore della riga in Texas e il sito B aggiorna il valore della riga in New Jersey. Quando si verifica la sincronizzazione di merge successiva, si verifica un conflitto tra i siti A e B. Il sito A vince il conflitto. Il valore vincitore del conflitto dal sito A viene propagato ai siti B, C e D.
Sito | Valore priorità | Valore riga |
---|---|---|
A (server di pubblicazione) | 100,00 | Texas |
B (sottoscrizione server) | 75,00 | Texas |
C (sottoscrizione server) | 50.00 | Texas |
D (sottoscrizione client) | 0,00 | Texas |
Fase 3: Più modifiche apportate alla stessa riga
Supponiamo che il sito C aggiorni la riga (la modifica in Carolina del Nord) e si sincronizza con il Publisher. Questo non costituisce un conflitto perché C ha già unito con successo l'ultimo aggiornamento da A (con il valore della riga='Texas' correttamente unito). Si supponga quindi che Site B aggiorni la riga (lo modifica in Idaho).
Sito | Valore priorità | Valore riga |
---|---|---|
A (server di pubblicazione) | 100,00 | Carolina del Nord |
B (abbonamento server) | 75,00 | Idaho |
C (sottoscrizione Server) | 50.00 | Carolina del Nord |
D (sottoscrizione Client) | 0,00 | Texas |
Quando il sito B si sincronizza con il server di pubblicazione, si verifica un conflitto di aggiornamento. Poiché sia B che C sono sottoscrizioni server e la priorità di B è maggiore di quella di C, il sito B vince il conflitto. Dopo l'unione degli altri due siti, il valore di B viene propagato agli altri Sottoscrittori.
Sito | Valore priorità | Valore riga |
---|---|---|
A (server di pubblicazione) | 100,00 | Idaho |
B (Abbonamento Server) | 75,00 | Idaho |
C (abbonamento al server) | 50.00 | Idaho |
D (sottoscrizione client) | 0,00 | Idaho |
Fase 4: I sottoscrittori con sottoscrizioni sia server che client aggiornano la riga.
Si supponga che il sito D aggiorni la riga (cambiandola in Nuovo Messico) e si sincronizzi con l'editore. Si supponga che a questo punto il sito B aggiorni la riga modificandola in California.
Sito | Valore priorità | Valore riga |
---|---|---|
A (server di pubblicazione) | 100,00 | Nuovo Messico |
B (sottoscrizione del server) | 75,00 | California |
C (sottoscrizione server) | 50.00 | Idaho |
D (sottoscrizione client) | 0,00 | Nuovo Messico |
Quando il sito B si sincronizza con il server di pubblicazione, si verifica un conflitto di aggiornamento. A differenza dell'esempio precedente, poiché D ha una sottoscrizione client, presuppone il valore di priorità del server di pubblicazione (sito A) al momento della sincronizzazione. Poiché la priorità di A è maggiore di B, B perde il conflitto; il valore immesso inizialmente in D vince. Se il Sottoscrittore B fosse sincronizzato con A prima che il Sottoscrittore D lo facesse, il sito B avrebbe vinto il conflitto. Il fatto che il sito D vinca il conflitto dipende dal server di pubblicazione che non ha apportato una modifica né ricevuto un'altra modifica dall'ultima sincronizzazione della versione della riga aggiornata nel sito D. Se un Sottoscrittore con una sottoscrizione server o qualsiasi altro Sottoscrittore con una sottoscrizione client viene sincronizzato per primo, viene seguita la regola di priorità più alta o "vince il primo che arriva al Publisher".
I valori finali dopo la sincronizzazione di tutti i siti vengono visualizzati qui.
Sito | Valore priorità | Valore della riga |
---|---|---|
A (server di pubblicazione) | 100,00 | Nuovo Messico |
B (Sottoscrizione Server) | 75,00 | Nuovo Messico |
C (Sottoscrizione Server) | 50.00 | Nuovo Messico |
D (sottoscrizione client) | 0,00 | Nuovo Messico |
L'ordine di sincronizzazione e il valore di priorità determinano il risultato dei conflitti durante la combinazione di sottoscrizioni server e client allo stesso livello nella topologia. Questo ultimo set di aggiornamenti illustra il motivo per cui è necessario prestare attenzione. Anche se il Sottoscrittore ha il valore di priorità più basso dei tre Sottoscrittori, ha vinto il conflitto perché è sincronizzato con il server di pubblicazione (presupponendo quindi il valore di priorità del server di pubblicazione 100,00) per primo. Il sito C (sottoscrizione server con un valore di priorità pari a 50,00), se fosse entrato nel Nuovo Messico anziché il sito D, il sito B (sottoscrizione server con un valore di priorità pari a 75,00) avrebbe vinto il conflitto e il risultato sarebbe stato la California.