Convalida dei dati replicati

La replica transazionale e la replica di tipo merge consentono di verificare che i dati presenti nel Sottoscrittore corrispondano ai dati nel server di pubblicazione. La convalida può essere eseguita per sottoscrizioni specifiche o per tutte le sottoscrizioni di una pubblicazione. Specificare uno dei tipi seguenti di convalida dei dati, che verrà eseguita dall'agente di distribuzione o dall'agente di merge alla successiva sincronizzazione:

  • Conteggio delle sole righe. Questo tipo di convalida verifica se la tabella nel Sottoscrittore ha lo stesso numero di righe della tabella nel server di pubblicazione, ma non verifica che il contenuto delle righe corrisponda. La convalida del conteggio delle righe rappresenta un metodo superficiale che consente di conoscere lo stato dei dati.

  • Conteggio delle righe e checksum binario. Oltre al conteggio delle righe nel server di pubblicazione e nel Sottoscrittore, viene calcolato il checksum di tutti i dati tramite lo specifico algoritmo di checksum. Se il conteggio delle righe non ha esito positivo, il checksum non viene eseguito.

Oltre a verificare che i dati nel Sottoscrittore corrispondano ai dati nel server di pubblicazione, la replica di tipo merge consente di verificare che i dati vengano partizionati correttamente per ogni Sottoscrittore. Per ulteriori informazioni, vedere Convalida delle informazioni sulle partizioni per un Sottoscrittore di tipo merge.

Per convalidare i dati

Per convalidare tutti gli articoli di una sottoscrizione, utilizzare SQL Server Management Studio, stored procedure o Replication Management Objects (RMO). Per convalidare singoli articoli di pubblicazioni snapshot e transazionali, è necessario utilizzare stored procedure.

Risultati della convalida dei dati

Al termine della convalida nell'agente di distribuzione o nell'agente di merge vengono registrati messaggi relativi all'esito positivo o negativo dell'operazione. Non vengono specificate le righe con esito negativo. È possibile visualizzare tali messaggi in SQL Server Management Studio, Monitoraggio replica e nelle tabelle di sistema di replica. Negli argomenti elencati sopra vengono illustrate le procedure di esecuzione della convalida e di visualizzazione dei risultati.

Per gestire gli errori di convalida, considerare quanto segue:

Considerazioni sulla convalida dei dati

Durante la convalida dei dati è opportuno considerare gli aspetti seguenti:

  • Prima di eseguire la convalida dei dati è necessario arrestare tutte le attività di aggiornamento nei Sottoscrittori. Non è necessario arrestare l'eventuale aggiornamento nel server di pubblicazione durante la convalida.

  • Poiché la convalida di set di dati estesi mediante checksum e checksum binari può richiedere quantità elevate di risorse di elaborazione, è opportuno pianificare la convalida in modo che venga eseguita nei periodi di attività minore nei server utilizzati per la replica.

  • La replica convalida soltanto le tabelle e non verifica che gli articoli solo schema, ad esempio le stored procedure, presenti nel server di pubblicazione e nel Sottoscrittore corrispondano.

  • Il checksum binario può essere utilizzato per qualsiasi tabella pubblicata. Non è possibile convalidare mediante il calcolo del checksum tabelle con filtri colonne o strutture di tabelle logiche con offset di colonna diversi, a causa di istruzioni di tipo ALTER TABLE che eliminano o aggiungono colonne.

  • La convalida della replica utilizza le funzioni checksum e binary_checksum. Per ulteriori informazioni sul comportamento, vedere CHECKSUM (Transact-SQL) e BINARY_CHECKSUM (Transact-SQL).

  • La convalida eseguita mediante checksum o checksum binario può segnalare erroneamente un problema se nel Sottoscrittore vi sono tipi di dati diversi rispetto al server di pubblicazione. Ciò può verificarsi se si effettua una delle operazioni indicate di seguito.

    • Impostazione esplicita delle opzioni per lo schema per l'esecuzione del mapping dei tipi di dati per versioni precedenti di SQL Server. Per ulteriori informazioni sul mapping dei tipi di dati, vedere Utilizzo di più versioni di SQL Server in una topologia di replica.

    • Impostazione del livello di compatibilità della pubblicazione per una pubblicazione di tipo merge su una versione precedente di SQL Server, qualora le tabelle pubblicate contengano uno o più tipi di dati di cui è necessario eseguire il mapping per questa versione. Per ulteriori informazioni sul mapping dei tipi di dati e sul livello di compatibilità della pubblicazione, vedere Utilizzo di più versioni di SQL Server in una topologia di replica.

    • Inizializzazione manuale di una sottoscrizione, in caso di utilizzo di tipi di dati diversi nel Sottoscrittore.

  • Le convalide mediante calcoli del checksum e checksum binario non sono supportate per la replica transazionale di sottoscrizioni trasformabili.

  • La convalida non è supportata per i dati replicati in Sottoscrittori non SQL Server.

Funzionamento della convalida dei dati

In SQL Server i dati vengono convalidati tramite il conteggio delle righe o il calcolo del checksum nel server di pubblicazione e nel Sottoscrittore e il successivo confronto dei risultati. Viene calcolato un solo valore per l'intera tabella di pubblicazione e un solo valore per l'intera tabella di sottoscrizione. I dati delle colonne di tipo text, ntext o image non vengono inclusi nei calcoli.

Durante l'esecuzione del calcolo vengono attivati temporaneamente i blocchi condivisi sulle tabelle per le quali viene eseguito il conteggio delle righe o il calcolo del checksum. Il calcolo viene comunque completato e i blocchi condivisi vengono subito rimossi.

Quando si utilizzano valori checksum binari, il controllo di ridondanza ciclico (CRC) a 32 bit viene eseguito su ogni colonna anziché sulla riga fisica di una pagina di dati. Le colonne possono essere pertanto ordinate fisicamente in qualsiasi modo nella pagina di dati e al medesimo tempo ottenere lo stesso CRC per la riga. La convalida mediante checksum binario può essere utilizzata quando alla pubblicazione sono applicati filtri di riga o di colonna.