Convalida dei dati replicatiValidate Replicated Data

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.Transactional and merge replication allow you to validate that data at the Subscriber matches data at the Publisher. La convalida può essere eseguita per sottoscrizioni specifiche o per tutte le sottoscrizioni di una pubblicazione.Validation can be performed for specific subscriptions or for all subscriptions to a publication. Specificare uno dei tipi seguenti di convalida dei dati, che verrà eseguita dall'agente di distribuzione o dall'agente di merge alla successiva sincronizzazione:Specify one of the following validation types and the Distribution Agent or Merge Agent will validate data the next time it runs:

  • Conteggio delle sole righe.Row count only. 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.This validates whether the table at the Subscriber has the same number of rows as the table at the Publisher, but does not validate that the content of the rows matches. La convalida del conteggio delle righe è un controllo non approfondito che consente comunque di evidenziare eventuali problemi dei dati.Row count validation provides a lightweight approach to validation that can make you aware of issues with your data.

  • Conteggio delle righe e checksum binario.Row count and binary checksum. 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.In addition to taking a count of rows at the Publisher and Subscriber, a checksum of all the data is calculated using the checksum algorithm. In caso di esito negativo durante il conteggio delle righe il checksum non viene eseguito.If the row count fails, the checksum is not performed.

    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.In addition to validating that data at the Subscriber and Publisher match, merge replication provides the ability to validate that data is partitioned correctly for each Subscriber. Per altre informazioni, vedere Convalidare le informazioni sulle partizioni per un Sottoscrittore di tipo merge.For more information, see Validate Partition Information for a Merge Subscriber.

    Per convalidare i datiTo validate data

    Per convalidare tutti gli articoli di una sottoscrizione, utilizzare SQL Server Management StudioSQL Server Management Studio, stored procedure o Replication Management Objects (RMO).To validate all articles in a subscription, use SQL Server Management StudioSQL Server Management Studio, stored procedures or Replication Management Objects (RMO). Per altre informazioni, vedere Validate Data at the Subscriber.For more information, see Validate Data at the Subscriber. Per convalidare singoli articoli di pubblicazioni snapshot e transazionali, è necessario utilizzare stored procedure.To validate individual articles in snapshot and transactional publications, you must use stored procedures.

Risultati della convalida dei datiData Validation Results

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.When validation is complete, the Distribution Agent or Merge Agent logs messages regarding success or failure (replication does not report which rows failed). È possibile visualizzare tali messaggi in SQL Server Management StudioSQL Server Management Studio, Monitoraggio replica e nelle tabelle di sistema di replica.These messages can be viewed in SQL Server Management StudioSQL Server Management Studio, Replication Monitor, and replication system tables. Nell'argomento elencato sopra vengono illustrate le procedure di esecuzione della convalida e di visualizzazione dei risultati.The how-to topic listed above demonstrates how to run validation and view the results.

Per gestire gli errori di convalida, considerare quanto segue:To handle validation failures, consider the following:

Considerazioni sulla convalida dei datiConsiderations for Data Validation

Durante la convalida dei dati è opportuno considerare gli aspetti seguenti:Take the following issues into consideration when validating data:

  • 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.You must stop all update activity at Subscribers before validating data (it is not necessary to stop activity at the Publisher when validation is occurring).

  • 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.Because checksums and binary checksums can require large amounts of processor resources when validating a large data set, you should schedule validation to occur when there is the least activity on the servers used in replication.

  • 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.Replication validates tables only; it does not validate whether schema only articles (such as stored procedures) are the same at the Publisher and Subscriber.

  • Il checksum binario può essere utilizzato per qualsiasi tabella pubblicata.Binary checksum can be used with any published table. 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 tramite cui vengono eliminate o aggiunte colonne.Checksum cannot validate tables with column filters, or logical table structures where column offsets differ (due to ALTER TABLE statements that drop or add columns).

  • Per la convalida della replica vengono utilizzate le funzioni checksum e binary_checksum .Replication validation uses the checksum and binary_checksum functions. Per informazioni sul comportamento, vedere CHECKSUM (Transact-SQL) e BINARY_CHECKSUM (Transact-SQL).For information about their behavior, see CHECKSUM (Transact-SQL) and 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.Validation by using binary checksum or checksum can incorrectly report a failure if data types are different at the Subscriber than they are at the Publisher. Ciò può verificarsi se si effettua una delle operazioni indicate di seguito.This can occur if you do any one of the following:

    • Impostazione esplicita delle opzioni per lo schema per l'esecuzione del mapping dei tipi di dati per versioni precedenti di SQL ServerSQL Server.Explicitly set schema options to map data types for earlier versions of SQL ServerSQL Server.

    • Impostazione del livello di compatibilità della pubblicazione per una pubblicazione di tipo merge su una versione precedente di SQL ServerSQL Server, qualora le tabelle pubblicate contengano uno o più tipi di dati di cui è necessario eseguire il mapping per questa versione.Set the publication compatibility level for a merge publication to an earlier version of SQL ServerSQL Server, and published tables contain one or more data types that must be mapped for this version.

    • Inizializzazione manuale di una sottoscrizione, in caso di utilizzo di tipi di dati diversi nel Sottoscrittore.Manually initialize a subscription and are using different data types at the Subscriber.

  • Le convalide mediante calcoli del checksum e checksum binario non sono supportate per la replica transazionale di sottoscrizioni trasformabili.Binary checksum and checksum validations are not supported for transformable subscriptions for transactional replication.

  • La convalida non è supportata per i dati replicati in Sottoscrittori non SQL ServerSQL Server .Validation is not supported for data replicated to non- SQL ServerSQL Server Subscribers.

Funzionamento della convalida dei datiHow Data Validation Works

In SQL ServerSQL 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. validates data by calculating a row count or a checksum at the Publisher and then comparing those values to the row count or checksum calculated at the Subscriber. 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, ntexto image non vengono inclusi nei calcoli.One value is calculated for the entire publication table and one value is calculated for the entire subscription table, but data in text, ntext, or image columns is not included in the calculations.

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.While the calculations are performed, shared locks are placed temporarily on tables for which row counts or checksums are being run, but the calculations are completed quickly and the shared locks removed, usually in a matter of seconds.

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.When binary checksums are used, 32-bit redundancy check (CRC) occurs on a column-by-column basis rather than a CRC on the physical row on the data page. 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.This allows the columns with the table to be in any order physically on the data page, but still compute to the same CRC for the row. La convalida mediante checksum binario può essere utilizzata quando alla pubblicazione sono applicati filtri di riga o di colonna.Binary checksum validation can be used when there are row or column filters on the publication.

Vedere ancheSee Also

Best Practices for Replication AdministrationBest Practices for Replication Administration