Compartir a través de


Validar datos replicados

En este tema se describe cómo validar los datos en el suscriptor de SQL Server 2014 mediante SQL Server Management Studio, Transact-SQL o Replication Management Objects (RMO).

La replicación transaccional y de mezcla le permite validar que los datos del suscriptor coinciden con los datos del publicador. La validación se puede realizar para suscripciones específicas o para todas las suscripciones a una publicación. Especifique uno de los siguientes tipos de validación y el Agente de distribución o el Agente de mezcla validará los datos la próxima vez que se ejecute:

  • Recuento de filas solo. Esto valida si la tabla del suscriptor tiene el mismo número de filas que la tabla en el publicador, pero no valida que el contenido de las filas coincida. La validación del recuento de filas proporciona un enfoque ligera para la validación que le permite reconocer problemas con sus datos.
  • Recuento de filas y checksum binario. Además de tomar un recuento de filas en el publicador y el suscriptor, se calcula una suma de verificación de todos los datos mediante el algoritmo de comprobación. Si se produce un error en el recuento de filas, no se realiza la suma de comprobación.

Además de validar que los datos en el Suscriptor y el Publicador coinciden, la replicación de mezcla proporciona la capacidad de validar que los datos están particionados correctamente para cada Suscriptor. Para obtener más información, vea Validar información de partición para un suscriptor de mezcla.

Funcionamiento de la validación de datos

SQL Server valida los datos calculando un recuento de filas o una suma de comprobación en el publicador y comparando esos valores con el recuento de filas o la suma de comprobación calculadas en el suscriptor. Se calcula un valor para toda la tabla de publicación y se calcula un valor para toda la tabla de suscripción, pero los datos de text, ntexto image columnas no se incluyen en los cálculos.

Mientras se realizan los cálculos, los bloqueos compartidos se colocan temporalmente en tablas para las que se ejecutan recuentos de filas o sumas de comprobación, pero los cálculos se completan rápidamente y los bloqueos compartidos se quitan, normalmente en cuestión de segundos.

Cuando se usan sumas de comprobación binarias, la comprobación de redundancia de 32 bits (CRC) se produce en una columna por columna en lugar de un CRC en la fila física de la página de datos. Esto permite que las columnas de la tabla estén en cualquier orden físico en la página de datos, pero aún calculan el mismo CRC para la fila. La validación de suma de comprobación binaria se puede usar cuando hay filtros de fila o columna en la publicación.

La validación de datos es un proceso de tres partes:

  1. Una sola suscripción o todas las suscripciones a una publicación se marcan para la validación. Marque las suscripciones para la validación en los cuadros de diálogo Validar suscripción, Validar suscripciones y Validar todas las suscripciones , que están disponibles en la carpeta Publicaciones locales y en la carpeta Suscripciones locales de MicrosoftSQL Server Management Studio. También puede marcar las suscripciones en la pestaña Todas las suscripciones, la pestaña Lista de observación de suscripciones y el nodo de publicaciones en el Monitor de replicación. Para obtener información sobre cómo iniciar el Monitor de replicación, consulte Iniciar el Monitor de replicación.

  2. Una suscripción se valida la próxima vez que se sincronice mediante el Agente de distribución (para la replicación transaccional) o el Agente de mezcla (para la replicación de mezcla). El Agente de distribución normalmente se ejecuta continuamente, en cuyo caso la validación se produce inmediatamente; El Agente de mezcla normalmente se ejecuta a petición, en cuyo caso se produce la validación después de ejecutar el agente.

  3. Vea los resultados de validación:

    • En las ventanas detalladas del Monitor de replicación: en la pestaña Historial de distribuidor a suscriptor para la replicación transaccional y la pestaña Historial de sincronización para la replicación de mezcla.
    • En el cuadro de diálogo Ver estado de sincronización en Management Studio.

Consideraciones y restricciones

  • Los procedimientos para el Monitor de replicación son solo para suscripciones de inserción porque las suscripciones de extracción no se pueden sincronizar en el Monitor de replicación. Sin embargo, puede marcar una suscripción para la validación y ver los resultados de validación de las suscripciones pull en Replication Monitor.
  • Los resultados de la validación indican si la validación se realizó correctamente o no, pero no especifica qué filas no se pudieron validar si se produjo un error. Para comparar los datos en el publicador y el suscriptor, use la utilidad tablediff. Para obtener más información sobre el uso de esta utilidad con datos replicados, vea Comparar tablas replicadas para diferencias (programación de replicación).

Tenga en cuenta los siguientes problemas al validar los datos:

  • Debe detener toda la actividad de actualización en los suscriptores antes de validar los datos (no es necesario detener la actividad en el publicador cuando se produce la validación).

  • Dado que las sumas de comprobación y las sumas de comprobación binarias pueden requerir grandes cantidades de recursos de procesador al validar un conjunto de datos grande, debe programar la validación para que se produzca cuando haya la menor actividad en los servidores usados en la replicación.

  • La replicación solo valida las tablas; no valida si los artículos solo de esquema (como los procedimientos almacenados) son los mismos en el Publicador y el Suscriptor.

  • La suma de comprobación binaria se puede usar con cualquier tabla publicada. El checksum no puede validar tablas con filtros de columna ni estructuras de tablas lógicas en las que los desplazamientos de columna difieren, debido a declaraciones ALTER TABLE que eliminan o añaden columnas.

  • La validación de replicación usa las funciones checksum y binary_checksum. Para obtener información sobre su comportamiento, vea CHECKSUM (Transact-SQL) y BINARY_CHECKSUM (Transact-SQL).

  • La validación mediante la suma de comprobación binaria o estándar puede notificar incorrectamente un error si los tipos de datos son diferentes en el suscriptor que en el publicador. Esto puede ocurrir si realiza alguna de las siguientes acciones:

    • Establezca explícitamente las opciones de esquema para mapear tipos de datos en versiones anteriores de SQL Server.
    • Establezca el nivel de compatibilidad de publicación para una publicación de combinación en una versión anterior de SQL Server, y las tablas publicadas deben contener uno o varios tipos de datos que deben asignarse para esta versión.
    • Inicialice manualmente una suscripción y use diferentes tipos de datos en el suscriptor.
  • Las validaciones de checksum binario y de checksum no se admiten para suscripciones transformables en la replicación transaccional.

  • No se admite la validación para los datos replicados en suscriptores que no son de SQL Server.

Resultados de validación de datos

Cuando se completa la validación, el Agente de distribución o el Agente de mezcla registra los mensajes relacionados con el éxito o el error (la replicación no notifica qué filas han fallado). Estos mensajes se pueden ver en las tablas del sistema de replicación, el Monitor de replicación y SQL Server Management Studio. El tema de procedimientos indicado anteriormente muestra cómo ejecutar la validación y ver los resultados.

Para controlar los errores de validación, tenga en cuenta lo siguiente:

  • Configure la alerta de replicación denominada Replicación: el suscriptor ha producido un error en la validación de datos para que se le notifique el error. Para obtener más información, vea [Configurar alertas de replicación predefinidas (SQL Server Management Studio)(administration/configure-predefined-replication-alerts-sql-server-management-studio.md).

  • ¿Es un problema para tu aplicación que la validación haya fallado? Si el error de validación es un problema, actualice manualmente los datos para que se sincronice o reinicialice la suscripción:

Artículos de replicación transaccional

Uso de SQL Server Management Studio

  1. Conéctese al publicador en SQL Server Management Studio y, a continuación, expanda el nodo del servidor.

  2. Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales .

  3. Haga clic con el botón derecho en la publicación para la que desea validar las suscripciones y, a continuación, haga clic en Validar suscripciones.

  4. En el cuadro de diálogo Validar suscripciones , seleccione qué suscripciones validar:

    • Seleccione Validar todas las suscripciones de SQL Server.
    • Seleccione Validar las siguientes suscripciones y, a continuación, seleccione una o varias suscripciones.
  5. Para especificar el tipo de validación que se va a realizar (recuento de filas o recuento de filas y suma de comprobación), haga clic en Opciones de validación y, a continuación, especifique las opciones en el cuadro de diálogo Opciones de validación de suscripciones.

  6. Haz clic en Aceptar.

  7. Vea los resultados de validación en el Monitor de replicación o en el cuadro de diálogo Ver estado de sincronización . Para cada suscripción:

    1. Expanda la publicación, haga clic con el botón derecho en la suscripción y, a continuación, haga clic en Ver estado de sincronización.
    2. Si el agente no se está ejecutando, haga clic en Iniciar en el cuadro de diálogo Ver estado de sincronización . El cuadro de diálogo mostrará mensajes informativos relacionados con la validación.

    Si no ve ningún mensaje relacionado con la validación, el agente ya ha registrado un mensaje posterior. En este caso, vea los resultados de validación en el Monitor de replicación. Para obtener más información, consulte el artículo sobre procedimientos del Monitor de replicación en este tema.

Uso de Transact-SQL (T-SQL)

Todos los artículos

  1. En la base de datos de publicación del publicador, ejecute sp_publication_validation (Transact-SQL). Especifique @publication y uno de los siguientes valores para @rowcount_only:

    • 1 - comprobación de recuento de filas solo (el valor predeterminado)
    • 2 - recuento de filas y suma de comprobación binaria.

    Nota:

    Al ejecutar sp_publication_validation (Transact-SQL), se ejecuta sp_article_validation (Transact-SQL) para cada artículo de la publicación. Para ejecutar correctamente sp_publication_validation (Transact-SQL), debe tener permisos SELECT en todas las columnas de las tablas base publicadas.

  2. (Opcional) Inicie el Agente de distribución para cada suscripción si aún no se está ejecutando. Para obtener más información, consulte Synchronize a Pull Subscription (Sincronizar una suscripción de extracción ) y Synchronize a Push Subscription (Sincronizar una suscripción de inserción).

  3. Revise la salida del agente para obtener el resultado de la validación. Para obtener más información, consulte Validar datos replicados.

Artículo único

  1. En el publicador de la base de datos de publicación, ejecute sp_article_validation (Transact-SQL). Especifique @publication, el nombre del artículo para @article y uno de los siguientes valores para @rowcount_only:

    • 1 - Comprobación de recuento de filas solo (valor predeterminado)
    • 2 - Recuento de filas y suma de comprobación binaria.

    Nota:

    Para ejecutar correctamente sp_article_validation (Transact-SQL), debe tener permisos SELECT en todas las columnas de la tabla base publicada.

  2. (Opcional) Inicie el Agente de distribución para cada suscripción si aún no se está ejecutando. Para obtener más información, consulte Synchronize a Pull Subscription (Sincronizar una suscripción de extracción ) y Synchronize a Push Subscription (Sincronizar una suscripción de inserción).

  3. Compruebe la salida del agente para obtener el resultado de la validación. Para obtener más información, consulte Validar datos replicados.

Suscriptor único

  1. En la base de datos de publicación del publicador, abra una transacción explícita mediante BEGIN TRANSACTION (Transact-SQL).

  2. En la base de datos de publicación del publicador, ejecute sp_marksubscriptionvalidation (Transact-SQL). Especifique la publicación para @publication, el nombre del suscriptor para @subscriber y el nombre de la base de datos de suscripciones para @destination_db.

  3. (Opcional) Repita el paso 2 para cada suscripción que se valide.

  4. En el publicador de la base de datos de publicación, ejecute sp_article_validation (Transact-SQL). Especifique @publication, el nombre del artículo para @article y uno de los siguientes valores para @rowcount_only:

    • 1 - Comprobación de recuento de filas solo (valor predeterminado)
    • 2 - Recuento de filas y suma de comprobación binaria.

    Nota:

    Para ejecutar correctamente sp_article_validation (Transact-SQL), debe tener permisos SELECT en todas las columnas de la tabla base publicada.

  5. En la base de datos de publicación del publicador, confirme la transacción mediante COMMIT TRANSACTION (Transact-SQL).

  6. (Opcional) Repita los pasos del 1 al 5 para cada artículo que se valide.

  7. (Opcional) Inicie el Agente de distribución si aún no se está ejecutando. Para obtener más información, consulte Synchronize a Pull Subscription (Sincronizar una suscripción de extracción ) y Synchronize a Push Subscription (Sincronizar una suscripción de inserción).

  8. Compruebe la salida del agente para obtener el resultado de la validación. Para obtener más información, vea Validación de datos en el suscriptor.

Todas las suscripciones push a una Publicación Transaccional

Uso del Monitor de replicación

  1. En el Monitor de replicación, expanda un grupo publicador en el panel izquierdo y, a continuación, expanda un publicador.
  2. Haga clic con el botón derecho en la publicación para la que desea validar las suscripciones y, a continuación, haga clic en Validar suscripciones.
  3. En el cuadro de diálogo Validar suscripciones , seleccione qué suscripciones validar:
    • Seleccione Validar todas las suscripciones de SQL Server.
    • Seleccione Validar las siguientes suscripciones y, a continuación, seleccione una o varias suscripciones.
  4. Para especificar el tipo de validación que se va a realizar (recuento de filas o recuento de filas y suma de comprobación), haga clic en Opciones de validación y, a continuación, especifique las opciones en el cuadro de diálogo Opciones de validación de suscripciones.
  5. Haz clic en Aceptar.
  6. Haga clic en la pestaña Todas las suscripciones .
  7. Ver los resultados de la validación. Para cada suscripción push:
    1. Si el agente no se está ejecutando, haga clic con el botón derecho en la suscripción y, a continuación, haga clic en Iniciar sincronización.
    2. Haga clic con el botón derecho en la suscripción y, a continuación, haga clic en Ver detalles.
    3. Consulte la información en la pestaña Historial del distribuidor al suscriptor en las Acciones de la sesión seleccionada.

Para una sola suscripción a una publicación de combinación

Uso de SQL Server Management Studio

  1. Conéctese al publicador en SQL Server Management Studio y, a continuación, expanda el nodo del servidor.

  2. Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales .

  3. Expanda la publicación para la que desea validar las suscripciones, haga clic con el botón derecho en la suscripción y, a continuación, haga clic en Validar suscripción.

  4. En el cuadro de diálogo Validar suscripción , seleccione Validar esta suscripción.

  5. Para especificar el tipo de validación que se va a realizar (recuento de filas o recuento de filas y suma de comprobación), haga clic en Opciones y, a continuación, especifique las opciones en el cuadro de diálogo Opciones de validación de suscripciones.

  6. Haz clic en Aceptar.

  7. Ver los resultados de la validación en el Monitor de replicación o en el cuadro de diálogo Ver estado de sincronización :

    1. Expanda la publicación, haga clic con el botón derecho en la suscripción y, a continuación, haga clic en Ver estado de sincronización.
    2. Si el agente no se está ejecutando, haga clic en Iniciar en el cuadro de diálogo Ver estado de sincronización . El cuadro de diálogo mostrará mensajes informativos relacionados con la validación.

    Si no ve ningún mensaje relacionado con la validación, el agente ya ha registrado un mensaje posterior. En este caso, vea los resultados de validación en el Monitor de replicación. Para obtener más información, consulte los procedimientos de uso del Monitor de replicación en este tema.

Uso de Transact-SQL (T-SQL)

  1. En la base de datos de publicación del publicador, ejecute sp_validatemergesubscription (Transact-SQL). Especifique @publication, el nombre del suscriptor para @subscriber, el nombre de la base de datos de suscripciones para @subscriber_db y uno de los siguientes valores para @level:

    • 1 - Validación de solo recuento de filas.
    • 3 - Validación de la suma de verificación binaria del recuento de filas.

    Esto marca la suscripción seleccionada para la validación.

  2. Inicie el agente de combinación para cada suscripción. Para obtener más información, consulte Synchronize a Pull Subscription (Sincronizar una suscripción de extracción ) y Synchronize a Push Subscription (Sincronizar una suscripción de inserción).

  3. Revise la salida del agente para ver el resultado de la validación.

  4. Repita los pasos del 1 al 3 para cada suscripción que se valide.

Nota:

Una suscripción a una publicación de combinación también se puede validar al final de una sincronización especificando el parámetro -Validate al ejecutar el Agente de combinación de replicación.

Para todas las suscripciones a una Publicación combinada

Uso de SQL Server Management Studio

  1. Conéctese al publicador en SQL Server Management Studio y, a continuación, expanda el nodo del servidor.

  2. Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales .

  3. Haga clic con el botón derecho en la publicación para la que desea validar las suscripciones y, a continuación, haga clic en Validar todas las suscripciones.

  4. En el cuadro de diálogo Validar todas las suscripciones , especifique el tipo de validación que se va a realizar (recuento de filas o recuento de filas y suma de comprobación).

  5. Haz clic en Aceptar.

  6. Vea los resultados de validación en el Monitor de replicación o en el cuadro de diálogo Ver estado de sincronización . Para cada suscripción:

    1. Expanda la publicación, haga clic con el botón derecho en la suscripción y, a continuación, haga clic en Ver estado de sincronización.
    2. Si el agente no se está ejecutando, haga clic en Iniciar en el cuadro de diálogo Ver estado de sincronización . El cuadro de diálogo mostrará mensajes informativos relacionados con la validación.

    Si no ve ningún mensaje relacionado con la validación, el agente ya ha registrado un mensaje posterior. En este caso, vea los resultados de validación en el Monitor de replicación. Para obtener más información, consulte el artículo sobre procedimientos del Monitor de replicación en este tema.

Uso de Transact-SQL (T-SQL)

  1. En el publicador de la base de datos de publicación, ejecute sp_validatemergepublication (Transact-SQL). Especifique @publication y uno de los siguientes valores para @level:

    • 1 - Validación de recuento de filas solamente.
    • 3 - Validación de recuento de filas de suma de comprobación binaria.

    Esto marca todas las suscripciones para validación.

  2. Active el agente de mezcla para cada suscripción. Para obtener más información, consulte Synchronize a Pull Subscription (Sincronizar una suscripción de extracción ) y Synchronize a Push Subscription (Sincronizar una suscripción de inserción).

  3. Compruebe la salida del agente para obtener el resultado de la validación. Para obtener más información, consulte la sección Validar datos en el suscriptor.

Para una única suscripción de inserción a una publicación de combinación

Uso del Monitor de replicación

  1. En el Monitor de replicación, expanda un grupo publicador en el panel izquierdo, expanda un publicador y, a continuación, haga clic en una publicación.
  2. Haga clic en la pestaña Todas las suscripciones .
  3. Haga clic con el botón derecho en la suscripción que desea validar y, a continuación, haga clic en Validar suscripción.
  4. En el cuadro de diálogo Validar suscripción , seleccione Validar esta suscripción.
  5. Para especificar el tipo de validación que se va a realizar (recuento de filas o recuento de filas y suma de comprobación), haga clic en Opciones y, a continuación, especifique las opciones en el cuadro de diálogo Opciones de validación de suscripciones.
  6. Haz clic en Aceptar.
  7. Haga clic en la pestaña Todas las suscripciones .
  8. Ver los resultados de la validación:
    1. Si el agente no se está ejecutando, haga clic con el botón derecho en la suscripción y, a continuación, haga clic en Iniciar sincronización.
    2. Haga clic con el botón derecho en la suscripción y, a continuación, haga clic en Ver detalles.
    3. Consulte la información en la pestaña Historial de sincronización en el área de texto del último mensaje de la sesión seleccionada.

Para todas las suscripciones push a publicación de combinación

Uso del Monitor de replicación

  1. En el Monitor de replicación, expanda un grupo publicador en el panel izquierdo y, a continuación, expanda un publicador.
  2. Haga clic con el botón derecho en la publicación para la que desea validar las suscripciones y, a continuación, haga clic en Validar todas las suscripciones.
  3. En el cuadro de diálogo Validar todas las suscripciones , especifique el tipo de validación que se va a realizar (recuento de filas o recuento de filas y suma de comprobación).
  4. Haz clic en Aceptar.
  5. Haga clic en la pestaña Todas las suscripciones .
  6. Ver los resultados de la validación. Para cada suscripción de notificación push:
    1. Si el agente no se está ejecutando, haga clic con el botón derecho en la suscripción y, a continuación, haga clic en Iniciar sincronización.
    2. Haga clic con el botón derecho en la suscripción y, a continuación, haga clic en Ver detalles.
    3. Vea información en la pestaña Historial de sincronización, en el área de texto del último mensaje de la sesión seleccionada.

Validación de datos mediante parámetros del Agente de mezcla

  1. Inicie el Agente de mezcla en el suscriptor (suscripción de extracción) o en el distribuidor (suscripción de inserción) desde la línea de comandos de una de las formas siguientes.

    • Especificar un valor de 1 (rowcount) o 3 (rowcount y suma de comprobación binaria) para el parámetro -Validate .
    • Especificar la validación de recuento de filas o el recuento de filas y la validación de suma de comprobación para el parámetro -ProfileName .

    Para obtener más información, consulte Synchronize a Pull Subscription (Sincronizar una suscripción de extracción ) o Synchronize a Push Subscription (Sincronizar una suscripción de inserción).

El uso de Replication Management Objects (RMO)

La replicación permite usar Replication Management Objects (RMO) para validar mediante programación que los datos del suscriptor coinciden con los datos del publicador. Los objetos que use dependen del tipo de topología de replicación. La replicación transaccional requiere la validación de todas las suscripciones a una publicación.

Nota:

Para obtener un ejemplo, vea Ejemplo (RMO), más adelante en esta sección.

Para validar los datos de todos los artículos de una publicación transaccional

  1. Cree una conexión al publicador mediante la clase ServerConnection .

  2. Cree una instancia de la clase TransPublication. Establezca las propiedades Name y DatabaseName de la publicación. Establezca la ConnectionContext propiedad en la conexión creada en el paso 1.

  3. Llame al LoadProperties método para obtener las propiedades restantes del objeto. Si este método devuelve false, las propiedades de publicación del paso 2 se definieron incorrectamente o la publicación no existe.

  4. Llame al método ValidatePublication. Pase lo siguiente:

    Esto señala los artículos para su validación.

  5. Si aún no se está ejecutando, inicie el Agente de distribución para sincronizar cada suscripción. Para obtener más información, consulte Sincronizar una suscripción de inserción o Sincronizar una suscripción de extracción. El resultado de la operación de validación se escribe en el historial del agente. Para obtener más información, consulte Supervisión de la replicación.

Para validar los datos de todas las suscripciones a una publicación de combinación

  1. Cree una conexión al publicador mediante la clase ServerConnection .
  2. Cree una instancia de la clase MergePublication. Establezca las propiedades Name y DatabaseName de la publicación. Establezca la ConnectionContext propiedad en la conexión creada en el paso 1.
  3. Llame al LoadProperties método para obtener las propiedades restantes del objeto. Si este método devuelve false, las propiedades de publicación del paso 2 se definieron incorrectamente o la publicación no existe.
  4. Llame al método ValidatePublication. Pase el objeto deseado ValidationOption.
  5. Ejecute el Agente de mezcla para cada suscripción para iniciar la validación o espere a que se ejecute el siguiente agente programado. Para obtener más información, consulte Synchronize a Pull Subscription (Sincronizar una suscripción de extracción ) y Synchronize a Push Subscription (Sincronizar una suscripción de inserción). El resultado de la operación de validación se escribe en el historial del agente, que se ve mediante el Monitor de replicación. Para obtener más información, consulte Supervisión de la replicación.

Para validar los datos de una sola suscripción a una publicación de combinación

  1. Cree una conexión al publicador mediante la clase ServerConnection .
  2. Cree una instancia de la clase MergePublication. Configura las propiedades Name y DatabaseName de la publicación. Establezca la ConnectionContext propiedad en la conexión creada en el paso 1.
  3. Llame al LoadProperties método para obtener las propiedades restantes del objeto. Si este método devuelve false, las propiedades de publicación del paso 2 se definieron incorrectamente o la publicación no existe.
  4. Llame al método ValidateSubscription. Pase el nombre de la base de datos de suscriptor y suscripción que se va a validar y el deseado ValidationOption.
  5. Ejecute el Agente de mezcla para que la suscripción inicie la validación o espere a que se ejecute el siguiente agente programado. Para obtener más información, consulte Synchronize a Pull Subscription (Sincronizar una suscripción de extracción ) y Synchronize a Push Subscription (Sincronizar una suscripción de inserción). El resultado de la operación de validación se escribe en el historial del agente, que se ve mediante el Monitor de replicación. Para obtener más información, consulte Supervisión de la replicación.

Ejemplo (RMO)

En este ejemplo, se señalan todas las suscripciones a una publicación transaccional para la validación del recuento de filas.

// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksProductTran";
string publicationDbName = "AdventureWorks2012";

TransPublication publication;

// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);

try
{
    // Connect to the Publisher.
    conn.Connect();

    // Set the required properties for the publication.
    publication = new TransPublication();
    publication.ConnectionContext = conn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;

    // If we can't get the properties for this publication, 
    // throw an application exception.
    if (publication.LoadProperties())
    {
        // Initiate validataion for all subscriptions to this publication.
        publication.ValidatePublication(ValidationOption.RowCountOnly,
            ValidationMethod.ConditionalFast, false);

        // If not already running, start the Distribution Agent at each 
        // Subscriber to synchronize and validate the subscriptions.
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Settings could not be retrieved for the publication. " +
            "Ensure that the publication {0} exists on {1}.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Do error handling here.
    throw new ApplicationException(
        "Subscription validation could not be initiated.", ex);
}
finally
{
    conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksProductTran"
Dim publicationDbName As String = "AdventureWorks2012"

Dim publication As TransPublication

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the publication.
    publication = New TransPublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' If we can't get the properties for this publication, 
    ' throw an application exception.
    If publication.LoadProperties() Then

        ' Initiate validataion for all subscriptions to this publication.
        publication.ValidatePublication(ValidationOption.RowCountOnly, _
         ValidationMethod.ConditionalFast, False)

        ' If not already running, start the Distribution Agent at each 
        ' Subscriber to synchronize and validate the subscriptions.
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException( _
     "Subscription validation could not be initiated.", ex)
Finally
    conn.Disconnect()
End Try

En este ejemplo se marca una suscripción específica para una publicación tipo merge con el fin de validar el recuento de filas.

// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2012";
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2012Replica";

MergePublication publication;

// Create a connection to the Publisher.
ServerConnection conn = new ServerConnection(publisherName);

try
{
    // Connect to the Publisher.
    conn.Connect();

    // Set the required properties for the publication.
    publication = new MergePublication();
    publication.ConnectionContext = conn;
    publication.Name = publicationName;
    publication.DatabaseName = publicationDbName;


    // If we can't get the properties for this merge publication, then throw an application exception.
    if (publication.LoadProperties())
    {
        // Initiate validation of the specified subscription.
        publication.ValidateSubscription(subscriberName,
            subscriptionDbName, ValidationOption.RowCountOnly);
        
        // Start the Merge Agent to synchronize and validate the subscription.
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Settings could not be retrieved for the publication. " +
            "Ensure that the publication {0} exists on {1}.",
            publicationName, publisherName));
    }
}
catch (Exception ex)
{
    // Do error handling here.
    throw new ApplicationException(String.Format(
        "The subscription at {0} to the {1} publication could not " +
        "be validated.", subscriberName, publicationName), ex);
}
finally
{
    conn.Disconnect();
}
' Define the server, database, and publication names
Dim publisherName As String = publisherInstance
Dim publicationName As String = "AdvWorksSalesOrdersMerge"
Dim publicationDbName As String = "AdventureWorks2012"
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2012Replica"

Dim publication As MergePublication

' Create a connection to the Publisher.
Dim conn As ServerConnection = New ServerConnection(publisherName)

Try
    ' Connect to the Publisher.
    conn.Connect()

    ' Set the required properties for the publication.
    publication = New MergePublication()
    publication.ConnectionContext = conn
    publication.Name = publicationName
    publication.DatabaseName = publicationDbName

    ' If we can't get the properties for this merge publication, then throw an application exception.
    If publication.LoadProperties() Then
        ' Initiate validation of the specified subscription.
        publication.ValidateSubscription(subscriberName, _
         subscriptionDbName, ValidationOption.RowCountOnly)

        ' Start the Merge Agent to synchronize and validate the subscription.
    Else
        Throw New ApplicationException(String.Format( _
         "Settings could not be retrieved for the publication. " + _
         "Ensure that the publication {0} exists on {1}.", _
         publicationName, publisherName))
    End If
Catch ex As Exception
    ' Do error handling here.
    Throw New ApplicationException(String.Format( _
     "The subscription at {0} to the {1} publication could not " + _
     "be validated.", subscriberName, publicationName), ex)
Finally
    conn.Disconnect()
End Try