Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Base de datos de Azure SQL
En este tema se describe cómo validar datos en el Suscriptor de SQL Server mediante el uso de SQL Server Management Studio, Transact-SQL o Replication Management Objects (RMO).
La replicación transaccional y la replicación de mezcla le permiten validar que los datos del suscriptor coinciden con los del publicador. Es posible realizar la validación de determinadas suscripciones o de 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án los datos la próxima vez que se ejecuten:
- Solo recuento de filas. Esta opción valida si la tabla del suscriptor tiene las mismas filas que la tabla del publicador pero no valida la coincidencia del contenido de las filas. La validación del conteo de filas ofrece un enfoque ligero de validación que puede alertarle de problemas en sus datos.
- Recuento de filas y suma de comprobación binaria. Además de llevar a cabo un recuento de filas en el publicador y en el suscriptor, se calcula una suma de comprobación de todos los datos utilizando el algoritmo de suma de comprobación. Si falla el recuento de filas, no se realiza la comprobación de suma.
Además de validar que los datos del suscriptor y del publicador coincidan, la replicación de mezcla ofrece la posibilidad de validar que los datos estén particionados correctamente para cada suscriptor. Para más información, consulte Validar la información de la partición para un suscriptor de mezcla.
Nota:
Azure SQL Managed Instance puede ser un publicador, un distribuidor y un suscriptor para la replicación transaccional y de instantáneas. Las bases de datos de Azure SQL Database solo pueden ser suscriptores de extracción para la replicación transaccional y de instantáneas. Para obtener más información, vea Replicación transaccional con Azure SQL Database y Azure SQL Managed Instance.
Cómo funciona 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, a continuación, compara estos valores con el recuento de filas o suma de comprobación calculado en el suscriptor. Se calcula un valor para toda la tabla de publicación y otro valor para toda la tabla de suscripción, pero en los cálculos no se incluyen los datos de las columnas text, ntextni image .
Mientras se realizan los cálculos, se colocan bloqueos compartidos temporalmente en las tablas en las que se ejecutan los recuentos de filas y sumas de comprobación, pero los cálculos se completan rápidamente y los bloqueos compartidos se quitan normalmente en unos segundos.
Cuando se utilizan sumas de comprobación binarias, se realiza una comprobación cíclica de redundancia (CRC) de 32 bits 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 puedan estar físicamente en cualquier orden en la página de datos y, aun así, seguir dando como resultado el mismo CRC para la fila. Es posible utilizar la validación de suma de comprobación binaria cuando hay filtros de fila o de columna en la publicación.
La validación de datos es un proceso de tres partes:
Una suscripción individual o todas las suscripciones de una publicación se marcan para su 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 en Microsoft SQL Server Management Studio. También puede marcar suscripciones desde la pestaña Todas las suscripciones , la pestaña Lista de supervisión de suscripciones y el nodo de publicaciones del Monitor de replicación. Para información sobre cómo iniciar el Monitor de replicación, vea Iniciar el Monitor de replicación.
Una suscripción se valida la próxima vez que la sincroniza el Agente de distribución (en la replicación transaccional) o el Agente de mezcla (en la replicación de mezcla). El Agente de distribución normalmente se ejecuta de forma continua, en cuyo caso la validación se produce inmediatamente; el Agente de mezcla normalmente se ejecuta a petición, en cuyo caso la validación se produce después de ejecutar el agente.
Vea los resultados de la validación:
- En las ventanas de detalles del Monitor de replicación: en la pestaña Historial del distribuidor al suscriptor para la replicación transaccional y en 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
Tenga en cuenta las siguientes cuestiones a la hora de validar los datos:
- Debe detener todas las actividades de actualización en los suscriptores antes de validar los datos (no es necesario detener todas las actividades en el publicador durante la validación).
- Dado que las sumas de comprobación y las sumas de comprobación binarias requieren grandes cantidades de recursos del procesador para validar un conjunto de datos de gran tamaño, debe programar la validación para que se produzca cuando la actividad sea mínima en los servidores que se utilizan en la replicación.
- La replicación solo valida las tablas; no valida que los artículos de solo esquema (como los procedimientos almacenados) sean iguales en el publicador y el suscriptor.
- La suma de comprobación binaria se puede utilizar en cualquier tabla publicada. La suma de verificación no puede validar tablas con filtros de columna o estructuras lógicas de tabla en las que los desplazamientos de columna difieren (debido a las instrucciones 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 este comportamiento, consulte CHECKSUM (Transact-SQL) y BINARY_CHECKSUM (Transact-SQL).
- La validación mediante suma de comprobación binaria o suma de comprobación puede indicar erróneamente un error si los tipos de datos del Suscriptor son distintos de los del Publicador. Esto se puede producir si lleva a cabo una de las siguientes acciones:
- Establecer de forma explícita opciones del esquema para asignar tipos de datos de versiones anteriores de SQL Server.
- Establecer el nivel de compatibilidad de una publicación de combinación en una versión anterior de SQL Server, cuando las tablas publicadas contienen uno o más tipos de datos que deben asignarse a esta versión.
- Inicializar manualmente una suscripción y usar diferentes tipos de datos en el suscriptor.
- No se admiten la suma de comprobación binaria ni las validaciones de suma de comprobación para las suscripciones transformables en la replicación transaccional.
- La validación no se admite para los datos replicados en suscriptores que no son de SQL Server.
- Los procedimientos para Replication Monitor se aplican solo a las suscripciones push, porque las suscripciones pull no se pueden sincronizar en Replication Monitor. No obstante, en el Monitor de replicación puede marcar una suscripción para validarla y consultar los resultados de validación de las suscripciones de extracción.
- Los resultados de la validación indican si la validación se ha realizado correctamente o si ha tenido errores, pero no se especifica en qué filas se produjo el error de validación si se ha producido. Para comparar datos entre el Publicador y el Suscriptor, use la utilidad tablediff Utility. Para más información sobre el uso de esta utilidad con datos replicados, consulte Compare Replicated Tables for Differences (Programación de la replicación).
Resultados de la validación de datos
Cuando la validación se ha completado, el Agente de distribución o el Agente de mezcla registran mensajes sobre si ha sido correcta o se han producido errores (la replicación no informa sobre las filas que han dado error). Estos mensajes se pueden ver en SQL Server Management Studio, en el Monitor de replicación y en las tablas del sistema de replicación. En el tema de procedimientos indicado anteriormente se explica cómo ejecutar la validación y ver los resultados.
Para controlar errores de validación, tenga en cuenta lo siguiente:
Configure la alerta de replicación Replicación: el suscriptor no ha superado la validación de datos para recibir una notificación del error. Para más información, vea Configurar alertas de replicación predefinidas (SQL Server Management Studio).
¿Son los errores de validación un problema para su aplicación? Si los errores de validación suponen un problema, actualice manualmente los datos para que se sincronicen o reinicialice la suscripción:
Los datos se pueden actualizar con la utilidad tablediff. Para más información sobre el uso de esta utilidad, consulte Comparar tablas replicadas para buscar diferencias (Programación de la replicación).
Para obtener más información sobre la reinicialización, vea Reinicializar suscripciones.
Artículos de la replicación transaccional
Uso de SQL Server Management Studio
- Conéctese al publicador en SQL Server Management Studio y, a continuación, expanda el nodo de servidor.
- Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales .
- Haga clic con el botón secundario en la publicación en la que desea validar las suscripciones y, a continuación, haga clic en Validar suscripciones.
- En el cuadro de diálogo Validar suscripciones, seleccione las suscripciones que desea validar:
- Seleccione Validar todas las suscripciones de SQL Server.
- Seleccione Validar las siguientes suscripciones:y, a continuación, seleccione una o varias suscripciones.
- 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óny, a continuación, especifique las opciones en el cuadro de diálogo Opciones de validación de suscripciones .
- Seleccione Aceptar.
- Vea los resultados de la validación en el Monitor de replicación o en el cuadro de diálogo Ver estado de sincronización . Para cada suscripción:
- Expanda la publicación, haga clic con el botón secundario en la suscripción y, a continuación, haga clic en Ver estado de sincronización.
- Si el agente no se está ejecutando, haga clic en Iniciar en el cuadro de diálogo Ver estado de sincronización . En el cuadro de diálogo se mostrarán 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 la validación en el Monitor de replicación. Para obtener más información, vea los procedimientos del Monitor de replicación en este tema.
Uso de Transact-SQL
Todos los artículos
En el publicador de la base de datos de publicaciones, ejecute sp_publication_validation (Transact-SQL). Especifique
@publicationy uno de los valores siguientes para@rowcount_only:- 1 : solo comprobación del recuento de filas (el valor predeterminado)
- 2 - recuento de filas y suma de comprobación binaria.
Nota:
Cuando se ejecuta sp_publication_validation (Transact-SQL), se ejecuta sp_article_validation (Transact-SQL) para todos los artículos de la publicación. Para ejecutar correctamente sp_publication_validation (Transact-SQL), debe tener los permisos establecidos en SELECT en todas las columnas de las tablas base publicadas.
(Opcional) Inicie el Agente de distribución para cada suscripción si no está ya en ejecución. Para obtener más información, consulte Synchronize a Pull Subscription y Synchronize a Push Subscription.
Consulte la salida del agente para ver el resultado de la validación.
Artículo único
En la base de datos de publicación del publicador, ejecute sp_article_validation (Transact-SQL). Especifique
@publication, el nombre del artículo para@articley uno de los valores siguientes para@rowcount_only:- 1 : solo comprobación del recuento de filas (el valor predeterminado)
- 2 - Recuento de filas y suma de comprobación binaria.
Nota:
Para ejecutar correctamente sp_article_validation (Transact-SQL), debe tener los permisos establecidos en SELECT en todas las columnas de la tabla base publicada.
(Opcional) Inicie el Agente de distribución para cada suscripción si no está ya en ejecución. Para obtener más información, consulte Synchronize a Pull Subscription y Synchronize a Push Subscription.
Consulte la salida del agente para ver el resultado de la validación.
Suscriptor único
En el Publicador, en la base de datos de publicación, abra una transacción explícita mediante BEGIN TRANSACTION (Transact-SQL).
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@subscribery el nombre de la base de datos de suscripciones para@destination_db.(Opcional) Repita el paso 2 para cada suscripción que se está validando.
En la base de datos de publicación del publicador, ejecute sp_article_validation (Transact-SQL). Especifique
@publication, el nombre del artículo para@articley uno de los valores siguientes para@rowcount_only:- 1 : solo comprobación del recuento de filas (el valor predeterminado)
- 2 - Recuento de filas y suma de comprobación binaria.
Nota:
Para ejecutar correctamente sp_article_validation (Transact-SQL), debe tener los permisos establecidos en SELECT en todas las columnas de la tabla base publicada.
En la base de datos de publicación del publicador, confirme la transacción mediante COMMIT TRANSACTION (Transact-SQL).
(Opcional) Repita los pasos 1 a 5 para cada artículo que se está validando.
(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 y Synchronize a Push Subscription.
Consulte la salida del agente para ver el resultado de la validación. Para más información, consulte Validar datos en el suscriptor.
Todas las suscripciones push de una publicación transaccional
Uso del Monitor de replicación
En el Monitor de replicación, expanda un grupo de publicador en el panel izquierdo y, a continuación, expanda un publicador.
Haga clic con el botón secundario en la publicación en la que desea validar las suscripciones y, a continuación, haga clic en Validar suscripciones.
En el cuadro de diálogo Validar suscripciones , seleccione las suscripciones que desea validar:
- Seleccione Validar todas las suscripciones de SQL Server.
- Seleccione Validar las siguientes suscripciones:y, a continuación, seleccione una o varias suscripciones.
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óny, a continuación, especifique las opciones en el cuadro de diálogo Opciones de validación de suscripciones .
Seleccione Aceptar.
Haga clic en la pestaña Todas las suscripciones .
Vea los resultados de la validación. Para cada suscripción push:
- Si no se está ejecutando el agente, haga clic con el botón secundario en la suscripción y, a continuación, haga clic en Iniciar sincronización.
- Haga clic con el botón secundario en la suscripción y, a continuación, haga clic en Ver detalles.
- Vea información en la pestaña Historial del distribuidor al suscriptor del área de texto Acciones en la sesión seleccionada.
Para una sola suscripción a una publicación Merge
Uso de SQL Server Management Studio
Conéctese al publicador en SQL Server Management Studio y, a continuación, expanda el nodo de servidor.
Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales .
Expanda la publicación en la que desea validar las suscripciones, haga clic con el botón secundario en la suscripción y, a continuación, haga clic en Validar suscripción.
En el cuadro de diálogo Validar suscripción , seleccione Validar esta suscripción.
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 Opcionesy, a continuación, especifique las opciones en el cuadro de diálogo Opciones de validación de suscripciones .
Seleccione Aceptar.
Vea los resultados de la validación en el Monitor de replicación o en el cuadro de diálogo Ver estado de sincronización :
- Expanda la publicación, haga clic con el botón secundario en la suscripción y, a continuación, haga clic en Ver estado de sincronización.
- Si el agente no se está ejecutando, haga clic en Iniciar en el cuadro de diálogo Ver estado de sincronización . En el cuadro de diálogo se mostrarán 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 la validación en el Monitor de replicación. Para obtener más información, vea los procedimientos del Monitor de replicación en este tema.
Para todas las suscripciones de una publicación combinada
Uso de SQL Server Management Studio
Conéctese al publicador en SQL Server Management Studio y, a continuación, expanda el nodo de servidor.
Expanda la carpeta Replicación y, a continuación, expanda la carpeta Publicaciones locales .
Haga clic con el botón secundario en la publicación en la que desea validar las suscripciones y, a continuación, haga clic en Validar todas las suscripciones.
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).
Seleccione Aceptar.
Vea los resultados de la validación en el Monitor de replicación o en el cuadro de diálogo Ver estado de sincronización . Para cada suscripción:
- Expanda la publicación, haga clic con el botón secundario en la suscripción y, a continuación, haga clic en Ver estado de sincronización.
- Si el agente no se está ejecutando, haga clic en Iniciar en el cuadro de diálogo Ver estado de sincronización . En el cuadro de diálogo se mostrarán 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 la validación en el Monitor de replicación. Para obtener más información, vea los procedimientos del Monitor de replicación en este tema.
Para una suscripción push individual a una publicación de mezcla
Uso del Monitor de replicación
- En el Monitor de replicación, expanda un grupo de publicador en el panel izquierdo, expanda un publicador y, a continuación, haga clic en una publicación.
- Haga clic en la pestaña Todas las suscripciones .
- Haga clic con el botón secundario en la suscripción que desea validar y, a continuación, haga clic en Validar suscripción.
- En el cuadro de diálogo Validar suscripción , seleccione Validar esta suscripción.
- 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 Opcionesy, a continuación, especifique las opciones en el cuadro de diálogo Opciones de validación de suscripciones .
- Seleccione Aceptar.
- Haga clic en la pestaña Todas las suscripciones .
- Vea los resultados de la validación:
- Si no se está ejecutando el agente, haga clic con el botón secundario en la suscripción y, a continuación, haga clic en Iniciar sincronización.
- Haga clic con el botón secundario en la suscripción y, a continuación, haga clic en Ver detalles.
- Vea información en la pestaña Historial de sincronizaciones en el área de texto Último mensaje de la sesión seleccionada: .
Uso de Transact-SQL
En el publicador de la base de datos de publicaciones, ejecute sp_validatemergesubscription (Transact-SQL). Especifique
@publication, el nombre del suscriptor para@subscriber, el nombre de la base de datos de suscripciones para@subscriber_dby uno de los valores siguientes para@level:- 1 : validación solo del recuento de filas.
- 3 : validación de la suma de comprobación binaria del recuento de filas.
Esto marca la suscripción seleccionada para validación.
Inicie el agente de mezcla para cada suscripción. Para obtener más información, consulte Synchronize a Pull Subscription y Synchronize a Push Subscription.
Consulte la salida del agente para ver el resultado de la validación.
Repita los pasos 1 a 3 para cada suscripción que se está validando.
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 Replication Agente de mezcla.
Para todas las suscripciones push a una publicación de mezcla
Uso del Monitor de replicación
- En el Monitor de replicación, expanda un grupo de publicador en el panel izquierdo y, a continuación, expanda un publicador.
- Haga clic con el botón secundario en la publicación en la que desea validar las suscripciones y, a continuación, haga clic en Validar todas las suscripciones.
- 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).
- Seleccione Aceptar.
- Haga clic en la pestaña Todas las suscripciones .
- Vea los resultados de la validación. Para cada suscripción push:
- Si no se está ejecutando el agente, haga clic con el botón secundario en la suscripción y, a continuación, haga clic en Iniciar sincronización.
- Haga clic con el botón secundario en la suscripción y, a continuación, haga clic en Ver detalles.
- Vea información en la pestaña Historial de sincronizaciones en el área de texto Último mensaje de la sesión seleccionada: .
Uso de Transact-SQL
En el publicador de la base de datos de publicaciones, ejecute sp_validatemergepublication (Transact-SQL). Especifique
@publicationy uno de los valores siguientes para@level:- 1 : validación solo del recuento de filas.
- 3 : validación de la suma de comprobación binaria del recuento de filas.
Esto marca todas las suscripciones para su validación.
Inicie el agente de mezcla para cada suscripción. Para obtener más información, consulte Synchronize a Pull Subscription y Synchronize a Push Subscription.
Consulte la salida del agente para ver el resultado de la validación. Para más información, consulte Validar datos en el suscriptor.
Validación de datos mediante parámetros del Agente de mezcla
Inicie el Agente de mezcla en el suscriptor (suscripción de extracción) o en el distribuidor (suscripción de inserción) desde el símbolo del sistema de una de las siguientes maneras.
- Especificando un valor de 1 (número de filas) o 3 (número de filas y suma de comprobación binaria) para el parámetro -Validate .
- Especificar la validación del recuento de filas o la validación del recuento de filas y la suma de comprobación para el parámetro -ProfileName.
Para obtener más información, consulte Synchronize a Pull Subscription o Synchronize a Push Subscription.
Uso de Replication Management Objects (RMO)
La replicación permite usar Replication Management Objects (RMO) para validar mediante programación si los datos del suscriptor coinciden con los datos del publicador. Los objetos que se usan 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
Cree una conexión al publicador mediante la clase ServerConnection .
Cree una instancia de la clase TransPublication. Establezca las propiedades Name y DatabaseName de la publicación. Establezca la propiedad ConnectionContext en la conexión creada en el paso 1.
Llame al método LoadProperties para obtener las propiedades restantes del objeto. Si este método devuelve false, significa que las propiedades de publicación del paso 2 se definieron incorrectamente, o bien que la publicación no existe.
Llame al método ValidatePublication. Pase lo siguiente:
Un valor booleano que indique si se debe detener el Agente de distribución una vez completada la validación.
De esta forma se marcan los artículos para la validación.
Si no se está ejecutando, inicie el Agente de distribución para sincronizar cada suscripción. Para obtener más información, consulte Synchronize a Push Subscription o Synchronize a Pull Subscription. El resultado de la operación de la validación se escribe en el historial del agente. Para más información, consulte Monitoring Replication.
Para validar los datos de todas las suscripciones a una publicación de combinación
Cree una conexión al publicador mediante la clase ServerConnection .
Cree una instancia de la clase MergePublication. Establezca las propiedades Name y DatabaseName de la publicación. Establezca la propiedad ConnectionContext en la conexión creada en el paso 1.
Llame al método LoadProperties para obtener las propiedades restantes del objeto. Si este método devuelve false, significa que las propiedades de publicación del paso 2 se definieron incorrectamente, o bien que la publicación no existe.
Llame al método ValidatePublication. Pase el valor de ValidationOptionque desee.
Ejecute el Agente de mezcla en cada suscripción para iniciar la validación o espere hasta la siguiente ejecución programada del agente. Para obtener más información, consulte Synchronize a Pull Subscription y Synchronize a Push Subscription. El resultado de la operación de la validación se escribe en el historial del agente, que se puede consultar con el Monitor de replicación. Para más información, consulte Monitoring Replication.
Para validar los datos de una única suscripción a una publicación de combinación
Cree una conexión al publicador mediante la clase ServerConnection .
Cree una instancia de la clase MergePublication. Establezca las propiedades Name y DatabaseName de la publicación. Establezca la propiedad ConnectionContext en la conexión creada en el paso 1.
Llame al método LoadProperties para obtener las propiedades restantes del objeto. Si este método devuelve false, significa que las propiedades de publicación del paso 2 se definieron incorrectamente, o bien que la publicación no existe.
Llame al método ValidateSubscription. Pase el nombre del Suscriptor y la base de datos de suscripción que se están validando, y el ValidationOption deseado.
Ejecute el Agente de mezcla en la suscripción para iniciar la validación o espere hasta la siguiente ejecución programada del agente. Para obtener más información, consulte Synchronize a Pull Subscription y Synchronize a Push Subscription. El resultado de la operación de la validación se escribe en el historial del agente, que se puede consultar con el Monitor de replicación. Para más información, consulte Monitoring Replication.
Ejemplo (RMO)
Este ejemplo marca 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 = "AdventureWorks2022";
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 = "AdventureWorks2022"
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
Este ejemplo señala una suscripción específica a una publicación de combinación para la validación del recuento de filas.
// Define the server, database, and publication names
string publisherName = publisherInstance;
string publicationName = "AdvWorksSalesOrdersMerge";
string publicationDbName = "AdventureWorks2022";
string subscriberName = subscriberInstance;
string subscriptionDbName = "AdventureWorks2022Replica";
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 = "AdventureWorks2022"
Dim subscriberName As String = subscriberInstance
Dim subscriptionDbName As String = "AdventureWorks2022Replica"
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
Consulte también
Procedimientos recomendados para la administración de replicación