Sunteți pe pagina 1din 26

Replicacin de una Base de Datos (SQL Server) La replicacin

La replicacin es un conjunto de tecnologas destinadas a la copia y distribucin de datos y objetos de base de datos desde una base de datos a otra, para luego sincronizar ambas bases de datos y mantener su coherencia. La replicacin permite distribuir datos entre diferentes ubicaciones y entre usuarios remotos o mviles mediante redes locales y de rea extensa, conexiones de acceso telefnico, conexiones inalmbricas e Internet. La replicacin transaccional se usa normalmente en escenarios servidor a servidor que requieren un alto rendimiento, como por ejemplo: La replicacin de mezcla se ha diseado principalmente para las aplicaciones mviles o de servidores distribuidos que pueden encontrarse con conflictos de datos. Los escenarios ms frecuentes son: El intercambio de datos con usuarios mviles, las aplicaciones de punto de venta (POS) a consumidores, y la integracin de datos de varios sitios. La replicacin de datos se usa para proporcionar el conjunto de datos inicial para la replicacin transaccional y de mezcla; tambin se puede usar cuando est indicada una actualizacin completa de los datos. Con estos tres tipos de replicacin, SQL Server proporciona un sistema eficaz y flexible para la sincronizacin de datos en toda la organizacin.

El Monitor de replicacin incluye las siguientes mejoras en cuanto a facilidad de uso:

En la mayora de las cuadrculas del Monitor de replicacin, ahora puede hacer lo siguiente: seleccionar las columnas que quiere ver, ordenar por varias columnas, y filtrar las filas de la cuadrcula basndose en los valores de las columnas. El nombre de la ficha Trabajos comunes del nodo de publicador se ha cambiado a Agentes. La ficha Agentes ahora proporciona una ubicacin centralizada para ver informacin sobre todos los agentes y trabajos relacionados con las publicaciones del publicador seleccionado. Entre los agentes y los trabajos relacionados con las publicaciones se incluyen los siguientes:

El Agente de instantneas, utilizado por todas las publicaciones. El Agente de registro del LOG, utilizado por todas las publicaciones transaccionales. El Agente de lectura de cola, utilizado por publicaciones transaccionales que admiten suscripciones de actualizacin en cola. Tareas de mantenimiento, utilizadas por todas las publicaciones.

Ingeniera Informtica y de Sistemas.

Pgina 1

Replicacin de una Base de Datos (SQL Server)


El Agente de distribucin y el Agente de mezcla estn relacionados con las suscripciones a publicaciones. Para obtener ms informacin, vea Cmo ver informacin y realizar tareas para los agentes asociados a una suscripcin (Monitor de replicacin).

La ficha Advertencias y agentes del nodo de publicacin se ha dividido en dos fichas independientes: Advertencias y Agentes. El hecho de dividir las fichas pone de relieve las diferencias entre administrar las advertencias de rendimiento y supervisar los agentes de replicacin. La ficha Agentes se actualiza automticamente, pero no ocurre lo mismo con la ficha Advertencias.

La replicacin de instantneas
De forma predeterminada, los tres tipos de replicacin utilizan una instantnea para inicializar suscriptores. El Agente de instantneas de SQL Server siempre genera los archivos de instantneas, pero el agente que entrega los archivos vara segn el tipo de replicacin que se utilice. La replicacin de instantneas y la replicacin transaccional utilizan el Agente de distribucin para entregar los archivos, mientras que la replicacin de mezcla utiliza el Agente de mezcla de SQL Server. El Agente de instantneas se ejecuta en el distribuidor. El Agente de distribucin y el Agente de mezcla se ejecutan en el distribuidor para las suscripciones de insercin o en los suscriptores para las suscripciones de extraccin. Las instantneas se pueden generar y aplicar inmediatamente tras la creacin de la suscripcin o de acuerdo con una programacin establecida en el momento de crear la publicacin. El Agente de instantneas prepara archivos de instantneas que contienen el esquema y los datos de las tablas y objetos de base de datos publicados, almacena los archivos en la carpeta de instantneas del publicador y registra la informacin de seguimiento en la base de datos de distribucin del distribuidor. Al configurar un distribuidor se especifica la carpeta de instantneas predeterminada, pero puede especificar una ubicacin alternativa para una publicacin en lugar de, o adems de, la predeterminada.

Ingeniera Informtica y de Sistemas.

Pgina 2

Replicacin de una Base de Datos (SQL Server)


Agente de instantneas
En la replicacin de mezcla se genera una instantnea cada vez que se ejecuta el Agente de instantneas. En la replicacin transaccional, la generacin de instantneas depende de la configuracin de la propiedad immediate_sync de la publicacin. Si la propiedad est establecida en TRUE (el valor predeterminado con el Asistente para nueva publicacin), se genera una instantnea cada vez que se ejecuta el Agente de instantneas. sta se puede aplicar al suscriptor en cualquier momento. Si est establecida en FALSE (el valor predeterminado con sp_addpublication), la instantnea slo se genera si se ha agregado una nueva suscripcin desde la ltima vez que se ejecut el Agente de instantneas; los suscriptores deben esperar a que el Agente de instantneas termine antes de poder sincronizarse. El Agente de instantneas ejecuta los pasos siguientes: 1. Establece una conexin del distribuidor al publicador y, a continuacin, si fuera necesario, adopta bloqueos en las tablas publicadas: Para las publicaciones de mezcla, el Agente de instantneas no adopta ningn bloqueo. Para las publicaciones transaccionales, el Agente de instantneas adopta bloqueos de manera predeterminada nicamente durante la fase inicial de la generacin de instantneas. Para las publicaciones de instantneas, adopta bloqueos durante todo el proceso de generacin de instantneas. 2. Escribe una copia del esquema de la tabla para cada artculo en un archivo .SCH. Si se publican otros objetos de base de datos, como ndices, restricciones, procedimientos almacenados, vistas, funciones definidas por el usuario, etc., se generan archivos de scripts adicionales. 3. Copia los datos de la tabla publicada en el publicador y escribe los datos en la carpeta de instantneas. La instantnea se genera como un conjunto de archivos de programa de copia masiva (BCP). 4. En las publicaciones de instantneas y transaccionales, el Agente de instantneas anexa filas a las tablas MSrepl_commands y MSrepl_transactions de la base de datos de distribucin. Las entradas de la tabla MSrepl_commands son comandos que indican la ubicacin de los archivos .SCH y .bcp, de cualquier otro archivo de instantneas y de las referencias a cualquier script anterior o posterior a la instantnea. Las entradas de la tabla MSrepl_transactions son comandos importantes para sincronizar el suscriptor. 5. Libera los bloqueos de las tablas publicadas. Durante la generacin de instantneas, no es posible realizar cambios en el esquema de las tablas publicadas. Despus de generar los archivos de instantneas, podr verlos en la carpeta de instantneas mediante el Explorador de Windows.

Ingeniera Informtica y de Sistemas.

Pgina 3

Replicacin de una Base de Datos (SQL Server)


Agente de distribucin y Agente de mezcla
En las publicaciones de instantneas, cada vez que el Agente de distribucin se ejecuta para la publicacin, mueve una nueva instantnea a cada suscriptor que an no se ha sincronizado, se ha marcado para volver a inicializarse o incluye nuevos artculos. En la replicacin de instantneas y transaccional, el Agente de distribucin realiza los siguientes pasos: 1. Establece una conexin con el distribuidor. 2. Examina las tablas MSrepl_commands y MSrepl_transactions de la base de datos de distribucin del distribuidor. El agente lee la ubicacin de los archivos de instantneas de la primera tabla y los comandos de sincronizacin del suscriptor de ambas tablas. 3. Aplica el esquema y los comandos a la base de datos de suscripciones. En una publicacin de replicacin de mezcla sin filtrar, el Agente de mezcla realiza los siguientes pasos: 1. Establece una conexin con el publicador. 2. Examina la tabla sysmergeschemachange del publicador y determina si existe una nueva instantnea que deba aplicarse a ste. 3. Si hay una nueva instantnea disponible, el Agente de mezcla aplica los archivos de instantneas de la ubicacin especificada en sysmergeschemachange a la base de datos de suscripciones.

Replicacin transaccional
La replicacin transaccional se implementa con el Agente de instantneas, el Agente de registro del LOG y el Agente de distribucin de SQL Server. El Agente de instantneas prepara archivos de instantneas que contienen esquemas y datos de las tablas y objetos de base de datos publicados, almacena los archivos en la carpeta de instantneas y registra los trabajos de sincronizacin en la base de datos de distribucin del distribuidor. El Agente de registro del LOG supervisa el registro de transacciones de cada base de datos configurada para la replicacin transaccional y copia las transacciones marcadas para ser replicadas desde el registro de transacciones a la base de datos de distribucin, que acta como una cola de almacenamiento y reenvo confiable. El Agente de distribucin copia los archivos de instantneas iniciales de la carpeta de instantneas y las transacciones almacenadas en las tablas de la base de datos de distribucin a los suscriptores. Los cambios incrementales realizados en el publicador se transfieren a los suscriptores de acuerdo con la programacin del Agente de distribucin, que se puede ejecutar continuamente para que la latencia sea mnima o a intervalos programados. Puesto que los datos deben cambiarse en el publicador (cuando se utiliza la replicacin
Ingeniera Informtica y de Sistemas. Pgina 4

Replicacin de una Base de Datos (SQL Server)


transaccional sin las opciones de actualizacin inmediata ni de actualizacin en cola), se evita que se produzcan conflictos de actualizacin. Al final, todos los suscriptores disponen de los mismos valores que el publicador. Si se utilizan las opciones de actualizacin inmediata o de actualizacin en cola con la replicacin transaccional, las actualizaciones pueden realizarse en el suscriptor y, con la actualizacin en cola, pueden producirse conflictos.

Replicacin de mezcla
El Agente de instantneas y el Agente de mezcla de SQL Server implementan la replicacin de mezcla. Si la publicacin no se filtra o utiliza filtros estticos, el Agente de instantneas crea una sola instantnea. Si la publicacin utiliza filtros con parmetros, el Agente de instantneas crea una instantnea para cada particin de datos. El Agente de mezcla aplica las instantneas iniciales a los suscriptores. Tambin mezcla los cambios incrementales de los datos que tienen lugar en el publicador o en los suscriptores despus de la creacin de la instantnea inicial y detecta y resuelve los conflictos segn las reglas que configure. En el siguiente diagrama se muestran los componentes que se utilizan en la replicacin de mezcla.

Ingeniera Informtica y de Sistemas.

Pgina 5

Replicacin de una Base de Datos (SQL Server)

Informacin general del modelo de publicacin de replicacin


La replicacin utiliza una metfora del sector editorial para representar los componentes de una topologa de replicacin, que incluyen el publicador, el distribuidor, los suscriptores, las publicaciones, los artculos y las suscripciones. Resulta til pensar en la replicacin de Microsoft SQL Server como si fuera una revista:

El publicador (editor) de una revista produce una o ms publicaciones. Una publicacin contiene artculos. El publicador distribuye la revista directamente o a travs de un distribuidor. Los suscriptores reciben las publicaciones a las que se han suscrito.

Aunque la metfora de la revista es til para comprender la replicacin, es importante sealar que la replicacin de SQL Server incluye funciones que no estn representadas en esta metfora, en particular, la posibilidad de que un suscriptor realice actualizaciones y de que un publicador enve cambios incrementales a los artculos de una publicacin. Una topologa de replicacin define la relacin entre los servidores y las copias de los datos, y aclara la lgica que determina cmo fluyen los datos entre los servidores. Hay varios procesos de replicacin (denominados agentes) que son responsables de copiar y mover los datos entre el publicador y los suscriptores. En la siguiente ilustracin se muestra informacin general acerca de los componentes y procesos que participan en la replicacin.

Ingeniera Informtica y de Sistemas.

Pgina 6

Replicacin de una Base de Datos (SQL Server)

Publicador
El publicador es una instancia de base de datos que permite que los datos estn disponibles para otras ubicaciones a travs de la replicacin. El publicador puede tener una o ms publicaciones, cada una de las cuales representa un conjunto de objetos y datos relacionados lgicamente para replicar.

Distribuidor
El distribuidor es una instancia de base de datos que funciona como almacn para datos especficos de replicacin asociados con uno o ms publicadores. Cada publicador est asociado con una sola base de datos (conocida como la base de datos de distribucin) en el distribuidor. La base de datos de distribucin almacena los datos de estado de la replicacin, metadatos acerca de la publicacin y, en algunos casos, funciona como cola para los datos que se transfieren del publicador a los suscriptores. En muchos casos, una sola instancia de servidor de bases de datos funciona como publicador y como distribuidor Esto se conoce como un distribuidor local. Cuando el publicador y el distribuidor se configuran en instancias distintas del servidor de bases de datos, el distribuidor se denomina un distribuidor remoto.

Suscriptores
Un suscriptor es una instancia de base de datos que recibe datos replicados. Un suscriptor puede recibir datos de varios publicadores y publicaciones. En funcin del tipo de replicacin elegida, el suscriptor tambin puede devolver los datos modificados al publicador o volver a publicar los datos en otros suscriptores.

Artculo
Un artculo identifica un objeto de base de datos incluido en una publicacin. Una publicacin puede contener diferentes tipos de artculos, como tablas, vistas, procedimientos almacenados y otros objetos. Cuando las tablas se publican como artculos, se pueden usar filtros para restringir las columnas y filas de datos que se envan a los suscriptores.

Ingeniera Informtica y de Sistemas.

Pgina 7

Replicacin de una Base de Datos (SQL Server)


Publicacin
Una publicacin es un conjunto de uno o ms artculos de una base de datos. La agrupacin de varios artculos en una publicacin permite especificar ms fcilmente un conjunto de objetos y datos de bases de datos relacionados lgicamente, que se replican como una unidad.

Suscripcin
Una suscripcin es una solicitud de una copia de una publicacin que se entrega a un suscriptor. La suscripcin define qu publicacin se recibir, dnde y cundo. Hay dos tipos de suscripciones: de insercin y de extraccin.

Informacin general sobre los agentes de replicacin


La replicacin utiliza varios programas independientes, llamados agentes, para realizar las tareas asociadas con el seguimiento de los cambios y la distribucin de los datos. De forma predeterminada, los agentes de replicacin se ejecutan como trabajos programados en el Agente SQL Server y es necesario que se est ejecutando el Agente SQL Server para que puedan ejecutarse los trabajos. Los agentes de replicacin tambin se pueden ejecutar desde la lnea de comandos y en aplicaciones que utilizan Objetos de administracin de replicacin (RMO). Los agentes de replicacin se pueden administrar desde el Monitor de replicacin de SQL Server y SQL Server Management Studio.

Agente SQL Server


El Agente SQL Server aloja y programa los agentes utilizados en la replicacin, y proporciona una manera sencilla de ejecutar los agentes de replicacin. El Agente SQL Server tambin controla y supervisa las operaciones fuera de la replicacin.

Agente de instantneas
Por lo general, el Agente de instantneas se utiliza con todos los tipos de replicacin. Prepara esquemas y archivos de datos iniciales de tablas publicadas y otros objetos, almacena los archivos de instantneas y registra la informacin acerca del estado de sincronizacin en la base de datos de distribucin. El Agente de instantneas se ejecuta en el distribuidor.

Agente de registro del LOG


El Agente de registro del LOG se utiliza en la replicacin transaccional. Mueve las transacciones marcadas para replicacin desde el registro de transacciones del publicador a la base de datos de distribucin. Cada base de datos publicada con la replicacin transaccional tiene su propio Agente de registro del LOG, que se ejecuta en el distribuidor y se conecta al publicador (el distribuidor puede estar en el mismo equipo que el publicador).
Ingeniera Informtica y de Sistemas. Pgina 8

Replicacin de una Base de Datos (SQL Server)


Agente de distribucin
El Agente de distribucin se utiliza en la replicacin de instantneas y transaccional. Aplica la instantnea inicial al suscriptor y mueve las transacciones contenidas en la base de datos de distribucin a los suscriptores. El Agente de distribucin se ejecuta en el distribuidor, para las suscripciones de insercin, o en el suscriptor, para las suscripciones de extraccin.

Agente de mezcla
El Agente de mezcla se utiliza con la replicacin de mezcla. Aplica la instantnea inicial al suscriptor, y transfiere y reconcilia los cambios incrementales de datos que se producen. Cada suscripcin de mezcla tiene su propio Agente de mezcla, que se conecta con el publicador y con el suscriptor, y los actualiza. El Agente de mezcla se ejecuta en el distribuidor, para las suscripciones de insercin, o en el suscriptor, para las suscripciones de extraccin. De forma predeterminada, el Agente de mezcla carga los cambios del suscriptor al publicador y, a continuacin, descarga los cambios del publicador al suscriptor.

Agente de lectura de cola


El Agente de lectura de cola se utiliza con la replicacin transaccional y la opcin de actualizacin en cola. El agente se ejecuta en el distribuidor y transfiere los cambios realizados en el suscriptor de vuelta al publicador. A diferencia del Agente de distribucin y del Agente de mezcla, slo existe una instancia del Agente de lectura de cola para todos los publicadores y las publicaciones de una determinada base de datos.

Trabajos de mantenimiento de la replicacin


La replicacin incluye varios trabajos de mantenimiento que realizan operaciones de mantenimiento programadas y a peticin.

Conceptos sobre los procedimientos almacenados del sistema de replicacin


En SQL Server, el acceso mediante programacin a toda la funcionalidad configurable por el usuario en una topologa de replicacin se proporciona mediante procedimientos almacenados del sistema. Aunque los procedimientos almacenados se pueden ejecutar individualmente utilizando SQL Server Management Studio o el programa de lnea de comandos sqlcmd, puede ser beneficioso escribir archivos de script de Transact-SQL que se pueden ejecutar para realizar una secuencia lgica de tareas de replicacin. Las tareas de replicacin de scripts proporcionan las ventajas siguientes:

Se mantiene una copia permanente de los pasos que se usan para implementar la topologa de replicacin.
Pgina 9

Ingeniera Informtica y de Sistemas.

Replicacin de una Base de Datos (SQL Server)


Se usa un nico script para configurar varios suscriptores. Se instruye rpidamente a los nuevos administradores de bases de datos permitindoles evaluar, entender, cambiar o solucionar problemas del cdigo.

Crear scripts de replicacin Desde el punto de vista de la replicacin, un script es una serie de una o varias instrucciones de Transact-SQL que cada una ejecuta un procedimiento almacenado de replicacin. Los scripts son archivos de texto, a menudo con la extensin .sql, que se pueden ejecutar utilizando la utilidad sqlcmd. Cuando se ejecuta un archivo de script, la utilidad ejecuta las instrucciones de SQL almacenadas en l. De igual forma, un script puede almacenarse como un objeto de consulta en un proyecto de SQL Server Management Studio. Los scripts de replicacin se pueden crear de las maneras siguientes:

Manualmente. Use las caractersticas de generacin de scripts que se proporcionan en los asistentes de replicacin o SQL Server Management Studio. Para obtener ms informacin, vea Cmo generar scripts de objetos de replicacin (SQL Server Management Studio). Utilice Objetos de administracin de replicacin (RMO) para generar mediante programacin el script y crear un objeto RMO.

Al crear manualmente los scripts de replicacin, tenga presente las consideraciones siguientes:

Los scripts Transact-SQL constan de uno o varios lotes. El comando GO seala el final de un lote. Si un script de Transact-SQL no contiene ningn comando GO, se ejecutar como un nico lote. Al ejecutar varios procedimientos almacenados de la replicacin en un nico lote, despus del primer procedimiento, la palabra clave EXECUTE debe preceder todos a los procedimientos subsiguientes en el lote. Todos los procedimientos almacenados en un lote deben compilarse antes de que se ejecute un lote. Sin embargo, una vez compilado el lote y creado un plan de ejecucin, un error de tiempo de ejecucin puede aparecer o no. Al crear scripts para configurar la replicacin, debera utilizar la autenticacin de Windows para evitar almacenar las credenciales de seguridad en el archivo de script. Si debe almacenar las credenciales en un archivo de script, debe protegerlo para evitar el acceso no autorizado.

Ingeniera Informtica y de Sistemas.

Pgina 10

Replicacin de una Base de Datos (SQL Server)


Ejemplo de script de replicacin El script siguiente se puede ejecutar para configurar la publicacin y distribucin en un servidor. TSQL -- This script uses sqlcmd scripting variables. They are in the form -- $(MyVariable). For information about how to use scripting variables -- on the command line and in SQL Server Management Studio, see the -- "Executing Replication Scripts" section in the topic -- "Programming Replication Using System Stored Procedures". -- Install the Distributor and the distribution database. DECLARE @distributor AS sysname; DECLARE @distributionDB AS sysname; DECLARE @publisher AS sysname; DECLARE @directory AS nvarchar(500); DECLARE @publicationDB AS sysname; -- Specify the Distributor name. SET @distributor = $(DistPubServer); -- Specify the distribution database. SET @distributionDB = N'distribution'; -- Specify the Publisher name. SET @publisher = $(DistPubServer); -- Specify the replication working directory. SET @directory = N'\\' + $(DistPubServer) + '\repldata'; -- Specify the publication database. SET @publicationDB = N'AdventureWorks'; -- Install the server MYDISTPUB as a Distributor using the defaults, -- including autogenerating the distributor password. USE master EXEC sp_adddistributor @distributor = @distributor; -- Create a new distribution database using the defaults, including -- using Windows Authentication. USE master EXEC sp_adddistributiondb @database = @distributionDB, @security_mode = 1; GO -- Create a Publisher and enable AdventureWorks for replication. -- Add MYDISTPUB as a publisher with MYDISTPUB as a local distributor -- and use Windows Authentication. DECLARE @distributionDB AS sysname; DECLARE @publisher AS sysname; -- Specify the distribution database.
Ingeniera Informtica y de Sistemas. Pgina 11

Replicacin de una Base de Datos (SQL Server)


SET @distributionDB = N'distribution'; -- Specify the Publisher name. SET @publisher = $(DistPubServer); USE [distribution] EXEC sp_adddistpublisher @publisher=@publisher, @distribution_db=@distributionDB, @security_mode = 1; GO Este script puede guardarse enconces localmente como instdistpub.sql para que se pueda ejecutar o volver a ejecutar cuando sea necesario. El script anterior incluye variables de scripts de sqlcmd, que se utilizan en muchos de los ejemplos de cdigo de replicacin de los Libros en pantalla de SQL Server. Las variables de scripts se definen utilizando la sintaxis $(MyVariable). Los valores para las variables se pueden pasar a un script en la lnea de comandos o en SQL Server Management Studio. Para obtener ms informacin, consulte la seccin siguiente en este tema, "Ejecutar scripts de replicacin". Ejecutar scripts de replicacin Una vez creado, un script de replicacin se puede ejecutar de alguna de las maneras siguientes: Crear un archivo de SQL Query en SQL Server Management Studio Un archivo de script de Transact-SQL de replicacin se puede crear como un archivo SQL de SQL Query en un proyecto de SQL Server Management Studio. Una vez escrito el script, se puede realizar una conexin a la base de datos para este archivo de consulta y se puede ejecutar el script. Para utilizar un script que incluya variables de script, SQL Server Management Studio debe estar ejecutndose en modo sqlcmd. En el modo sqlcmd, el Editor de consultas acepta una sintaxis adicional concreta de sqlcmd, como :setvar, que se utiliza como valor de una variable. . En el script siguiente, se usa :setvar para proporcionar un valor para la variable $(DistPubServer). :setvar DistPubServer N'MyPublisherAndDistributor'; -- Install the Distributor and the distribution database. DECLARE @distributor AS sysname; DECLARE @distributionDB AS sysname; DECLARE @publisher AS sysname; DECLARE @directory AS nvarchar(500); DECLARE @publicationDB AS sysname;
Ingeniera Informtica y de Sistemas. Pgina 12

Replicacin de una Base de Datos (SQL Server)


-- Specify the Distributor name. SET @distributor = $(DistPubServer); -- Specify the distribution database. SET @distributionDB = N'distribution'; -- Specify the Publisher name. SET @publisher = $(DistPubServer); --- Additional code goes here --

Usar la utilidad sqlcmd desde la lnea de comandos


El ejemplo siguiente muestra cmo se usa la lnea de comandos para ejecutar el archivo de script instdistpub.sql mediante la utilidad sqlcmd: sqlcmd.exe -E -S sqlserverinstance -i C:\instdistpub.sql -o C:\output.log -v DistPubServe r="N'MyDistributorAndPublisher'" En este ejemplo, el modificador -E indica que al conectarse a SQL Server se utiliza la autenticacin de Windows. Al usar la autenticacin de Windows, no hay necesidad de almacenar un nombre de usuario y una contrasea en el archivo de script. El modificador -i especifica el nombre y la ruta de acceso del archivo de script y el modificador -oespecifica el nombre del archivo de salida (cuando se utiliza este modificador, la salida de SQL Server se escribe en este archivo en lugar de en la consola). La utilidad sqlcmdle permite pasar las variables de scripts a un script de Transact-SQL en tiempo de ejecucin utilizando el modificador -v. En este ejemplo, sqlcmd reemplaza cada instancia de$(DistPubServer) en el script con el valor N'MyDistributorAndPublisher' antes de la ejecucin

Automatizar tareas en un archivo por lotes


Mediante un archivo por lotes, las tareas de administracin de replicacin, las tareas de sincronizacin de replicacin y otras diversas se pueden automatizar en el mismo archivo por lotes. El archivo por lotes siguiente utiliza la utilidad sqlcmd para quitar y volver a crear la base de datos de suscripciones y agregar una suscripcin de extraccin de mezcla. A continuacin, el archivo invoca al agente de mezcla para sincronizar la nueva suscripcin: TSQL REM ----------------------Script to synchronize merge subscription ---------------------REM -- Creates subscription database and REM -- synchronizes the subscription to MergeSalesPerson. REM -- Current computer acts as both Publisher and Subscriber. REM ------------------------------------------------------------------------------------SET Publisher=%computername%
Ingeniera Informtica y de Sistemas. Pgina 13

Replicacin de una Base de Datos (SQL Server)


SET Subscriber=%computername% SET PubDb=AdventureWorks SET SubDb=AdventureWorksReplica SET PubName=AdvWorksSalesOrdersMerge REM -- Drop and recreate the subscription database at the Subscriber sqlcmd /S%Subscriber% /E /Q"USE master IF EXISTS (SELECT * FROM sysdatabases WH ERE name='%SubDb%' ) DROP DATABASE %SubDb%" sqlcmd /S%Subscriber% /E /Q"USE master CREATE DATABASE %SubDb%" REM -- Add a pull subscription at the Subscriber sqlcmd /S%Subscriber% /E /Q"USE %SubDb% EXEC sp_addmergepullsubscription @pu blisher = %Publisher%, @publication = %PubName%, @publisher_db = %PubDb%" sqlcmd /S%Subscriber% /E /Q"USE %SubDb% EXEC sp_addmergepullsubscription_age nt @publisher = %Publisher%, @publisher_db = %PubDb%, @publication = %PubName %, @subscriber = %Subscriber%, @subscriber_db = %SubDb%, @distributor = %Publish er%" REM -- This batch file starts the merge agent at the Subscriber to REM -- synchronize a pull subscription to a merge publication. REM -- The following must be supplied on one line. "\Program Files\Microsoft SQL Server\100\COM\REPLMERG.EXE" -Publisher %Publish er% -Subscriber %Subscriber% -Distributor %Publisher% -PublisherDB %PubDb% -Su bscriberDB %SubDb% -Publication %PubName% -PublisherSecurityMode 1 -OutputVer boseLevel 1 -Output -SubscriberSecurityMode 1 -SubscriptionType 1 -DistributorSecu rityMode 1 -Validate 3

Incluir en scripts tareas de replicacin comunes


Las siguientes son algunas de las tareas de replicacin ms comunes que se pueden incluir en scripts utilizando procedimientos almacenados del sistema:

Configurar la publicacin y la distribucin Modificar las propiedades del distribuidor y del publicador Deshabilitar la publicacin y la distribucin Crear publicaciones y definir artculos Eliminar publicaciones y artculos Crear una suscripcin de extraccin Modificar una suscripcin de extraccin Eliminar una suscripcin de extraccin Crear una suscripcin de insercin Modificar una suscripcin de insercin Eliminar una suscripcin de insercin Sincronizar una suscripcin de extraccin

Ingeniera Informtica y de Sistemas.

Pgina 14

Replicacin de una Base de Datos (SQL Server)


Conceptos de la programacin de replicacin
Antes de desarrollar una aplicacin que utilice funcionalidades de replicacin, debera seguir los pasos de planeamiento generales siguientes: 1. 2. 3. 4. 5. Definir la topologa de replicacin. Definir la funcionalidad de la aplicacin. Planear la seguridad. Elegir un entorno de desarrollo. Elegir la interfaz de programacin de la replicacin adecuada.

El resto de este tema describe estos pasos con ms detalle. Para ayudar a mostrar el proceso de planeamiento, se ha incluido un ejemplo.

Definir la topologa de replicacin


El primer paso para programar la replicacin es definir la topologa de replicacin de la aplicacin. Si est creando una aplicacin que vaya a usar una topologa de replicacin existente, por ejemplo una aplicacin cliente que tiene acceso a los datos de un suscriptor existente, debera continuar en el paso siguiente. La topologa de replicacin que defina depende de muchos factores, como son los siguientes:

Si los datos replicados tienen que estar actualizados y quin debe actualizarlos. Las necesidades de distribucin de los datos con respecto a la coherencia, autonoma y latencia. El entorno de replicacin, incluidos los usuarios empresariales, la infraestructura tcnica, la red y la seguridad, y las caractersticas de los datos. Los tipos y las opciones de replicacin. Las topologas de replicacin y cmo se alinean con los tipos de replicacin.

Definir la funcionalidad de la aplicacin


Una vez definida la topologa de replicacin, debera decidir las funcionalidades que la aplicacin proporcionar. Estas funcionalidades pueden abarcar desde un script que sincronice una suscripcin a una aplicacin con una interfaz de usuario para configurar la replicacin. La replicacin admite las tareas generales de programacin siguientes:

Configurar la replicacin. Sincronizar suscripciones. Mantener una topologa de replicacin. Supervisar una topologa de replicacin. Solucionar problemas de la replicacin.

Tambin es comn ampliar la aplicacin combinando las funcionalidades de replicacin con otras funcionalidades que se proporcionan a travs de SQL Server. En la tabla
Ingeniera Informtica y de Sistemas. Pgina 15

Replicacin de una Base de Datos (SQL Server)


siguiente se resaltan algunas funcionalidades extendidas que podra proporcionar en la aplicacin de replicacin.

Planear la seguridad
La seguridad es importante en cualquier aplicacin y su planeamiento se debera completar antes de escribir ningn cdigo. La seguridad de la aplicacin puede dividirse en tres partes principales: proteger la base de datos, proteger la replicacin y escribir cdigo seguro. Los siguientes temas proporcionan informacin sobre la seguridad:

Seguridad y proteccin (replicacin) Seguridad y proteccin (motor de base de datos)

Elegir un entorno de desarrollo


Al desarrollar una aplicacin de replicacin, hay que considerar tres entornos de desarrollo bsicos. Cada uno tiene acceso a las mismas funcionalidades de replicacin con algunas excepciones. Las aplicaciones de replicacin se pueden desarrollar en cada uno de los entornos siguientes.

Cdigo administrado Entorno de desarrollo orientado a objetos que aprovecha las ventajas de la programacin de .NET Framework y Common Language Runtime (CLR) de .NET. El cdigo administrado es el entorno de programacin recomendado para el desarrollo de .NET y para las aplicaciones de SQL Server. Las interfaces de replicacin administradas habilitan la programacin de la administracin de la replicacin de una manera orientada a objetos sin tener que conocer TransactSQL y tambin proporcionan algunas funcionalidades de devolucin de llamada al ejecutar agentes de replicacin que no estn disponibles en los scripts. El cdigo administrado es el mejor entorno para desarrollar componentes reutilizables y aplicaciones de interfaz de usuario.

Scripts Aplicaciones sencillas que ejecutan una serie de comandos como procedimientos almacenados del sistema de replicacin en scripts o comandos de Transact-SQL en archivos por lotes. Aunque puede ejecutar los scripts en un entorno administrado utilizando el proveedor administrado en proceso de SQL Server, la misma funcionalidad se puede obtener mediante interfaces de replicacin administradas, que tambin proporcionan funcionalidades de devolucin de llamada. Los scripts son el entorno mejor para ejecutar tareas que se ejecutarn slo algunas veces y en las que no se requieren las funcionalidades de devolucin de llamada, como instalar un servidor de replicacin.

Ingeniera Informtica y de Sistemas.

Pgina 16

Replicacin de una Base de Datos (SQL Server)

Cdigo nativo El CLR no administra el entorno de desarrollo orientado a objetos que utiliza el acceso directo al sistema o a los objetos COM como ese cdigo. Las interfaces de replicacin de cdigo nativo han quedado obsoletas o han dejado de utilizarse.

Elegir la interfaz de programacin de replicacin adecuada


El ltimo paso del planeamiento es elegir la interfaz de programacin de la replicacin adecuada que implementa la funcionalidad de replicacin deseada para el entorno de desarrollo escogido. En la tabla siguiente se muestran las interfaces de programacin de la replicacin disponible.

Ejemplo
En Adventure Works, tienen que publicarse los datos de 200 representantes de ventas de todo el mundo. Los representantes de ventas viajan a menudo y necesitan utilizar equipos porttiles o asistentes digitales personales (PDA) para cambiar los datos de los clientes y agregar los pedidos nuevos. A continuacin, los cambios tendrn que sincronizarse con el publicador cuando el representante de ventas conecte el porttil a la red. Para esta aplicacin, los pasos de planeamiento podran ser similares a los siguientes: 1. La topologa de replicacin de esta aplicacin ya existe. Sin embargo, debe crearse una suscripcin de extraccin nueva en el cliente. La publicacin debera utilizar filtros parame trizados para replicar un conjunto nico de datos para cada representante de ventas. 2. Adems del acceso a datos tpico requerido para una aplicacin de ventas, esta aplicacin debera permitir que un vendedor sincronizara la suscripcin de extraccin a peticin haciendo clic en un botn. Puesto que un representante de ventas instalar y ejecutar la aplicacin, tambin necesita poder configurar una suscripcin y aplicar la instantnea inicial en el cliente. Opcionalmente, la aplicacin utilizar la infraestructura que proporciona Windows para detectar la conectividad inalmbrica y sincronizar automticamente la suscripcin cuando se descubra una conexin. 3. Siga todas las instrucciones de seguridad para la replicacin, incluido el uso de la autenticacin de Windows y una red privada virtual (VPN) al conectarse al publicador. Si est implementando la sincronizacin web, utilice una conexin de capa de sockets seguros (SSL). Para aprovechar las caractersticas de .NET Framework, la aplicacin se desarrolla utilizando un lenguaje de cdigo administrado. 4. Segn estos requisitos, la interfaz administrada de Objetos de administracin de la replicacin (RMO) puede proporcionar toda la funcionalidad de la replicacin que se necesita para esta aplicacin.

Ingeniera Informtica y de Sistemas.

Pgina 17

Replicacin de una Base de Datos (SQL Server)


Conceptos de los Objetos de administracin de replicacin (RMO)
Introduccin a la programacin de RMO
RMO est diseado para programar todos los aspectos de la replicacin de SQL Server. El espacio de nombres de RMO es Microsoft.SqlServer.Replication y lo implementa Microsoft.SqlServer.Rmo.dll, que es un ensamblado de Microsoft .NET Framework. El ensamblado Microsoft.SqlServer.Replication.dll, que tambin pertenece al espacio de nombres Microsoft.SqlServer.Replication, implementa una interfaz de cdigo administrado para programar varios agentes de replicacin (Agente de instantneas, Agente de distribucin y Agente de mezcla). Se puede tener acceso a sus clases desde RMO para sincronizar las suscripciones. Las clases en el espacio de nombresMicrosoft.SqlServer.Replication.BusinessLogicSupport, que implementa el ensamblado Microsoft.SqlServer.Replication.BusinessLogicSupport.dll, se utilizan para crear una lgica empresarial personalizada para la replicacin de mezcla. Este ensamblado es independiente de RMO.

Implementar aplicaciones basadas en RMO


RMO depende de los componentes de replicacin y de conectividad de cliente que estn incluidos con todas las versiones de SQL Server excepto SQL Server Compact. Para implementar una aplicacin basada en RMO, debe instalar una versin de SQL Server que incluye componentes de replicacin y de conectividad de cliente en el equipo en el que se vaya a ejecutar la aplicacin.

Introduccin a RMO
En esta seccin se describe cmo iniciar un proyecto RMO simple utilizando Microsoft Visual Studio. Para crear un proyecto nuevo de Microsoft Visual C# 1. Inicie Visual Studio. 2. En el men Archivo, haga clic en Nuevo proyecto. Aparecer el cuadro de dilogo Nuevo proyecto. 3. En el cuadro de dilogo Tipos de proyecto, seleccione Proyectos de Visual C#. En el panel Plantillas, seleccione Aplicacin para Windows. 4. Opcional) En Nombre, escriba el nombre de la nueva aplicacin. 5. Haga clic en Aceptar para cargar la plantilla de Windows de Visual C#. 6. En el men Proyecto, seleccione el elemento Agregar referencia. Aparecer el cuadro de dilogo Agregar referencia. 7. Seleccione los ensamblados siguientes en la lista en la ficha .NET y, a continuacin, haga clic en Aceptar. Interfaz de programacin Microsoft.SqlServer.Replication de .NET Microsoft.SqlServer.ConnectionInfo Biblioteca de agentes de replicacin

Ingeniera Informtica y de Sistemas.

Pgina 18

Replicacin de una Base de Datos (SQL Server)


8. (Opcional) Repita el paso 6. Haga clic en la ficha Examinar, navegue a C:\Archivos de programa\Microsoft SQL Server\100\COM, seleccione Microsoft.SqlServer.Replication.BusinessLogicSupport.dll y, a continuacin, haga clic en Aceptar. 9. En el men Ver, haga clic en Cdigo. 10. En el cdigo, antes de la instruccin de espacio de nombres, escriba las instrucciones using siguientes para certificar los tipos en los espacios de nombres de RMO: 11. // These namespaces are required. 12. using Microsoft.SqlServer.Replication; 13. using Microsoft.SqlServer.Management.Common; 14. // This namespace is only used when creating custom business 15. // logic for merge replication. 16. using Microsoft.SqlServer.Replication.BusinessLogicSupport; Para crear un nuevo proyecto de Microsoft Visual Basic .NET 1. Inicie Visual Studio. 2. En el men Archivo, seleccione Nuevo proyecto. Aparecer el cuadro de dilogo Nuevo proyecto. 3. En el panel Tipos de proyecto, seleccione Visual Basic. En el panel Plantillas, seleccione Aplicacin para Windows. 4. (Opcional) En el cuadro Nombre, escriba el nombre de la nueva aplicacin. 5. Haga clic en Aceptar para cargar la plantilla de Windows de Visual Basic. 6. En el men Proyecto, seleccione Agregar referencia. Aparecer el cuadro de dilogo Agregar referencia. 7. Seleccione los ensamblados siguientes en la lista en la ficha .NET y, a continuacin, haga clic en Aceptar. Interfaz de programacin Microsoft.SqlServer.Replication de .NET Microsoft.SqlServer.ConnectionInfo Biblioteca de agentes de replicacin 8. (Opcional) Repita el paso 6. Haga clic en la ficha Examinar, navegue a C:\Archivos de programa\Microsoft SQL Server\100\COM, seleccione Microsoft.SqlServer.Replication.BusinessLogicSupport.dll y haga clic en Aceptar. 9. En el men Ver, haga clic en Cdigo. 10. En el cdigo, antes de ninguna declaracin, escriba las instrucciones Imports siguientes para certificar los tipos en los espacios de nombres de RMO. 11. ' These namespaces are required. 12. Imports Microsoft.SqlServer.Replication 13. Imports Microsoft.SqlServer.Management.Common 14. ' This namespace is only used when creating custom business 15. ' logic for merge replication. 16. Imports Microsoft.SqlServer.Replication.BusinessLogicSupport

Ingeniera Informtica y de Sistemas.

Pgina 19

Replicacin de una Base de Datos (SQL Server)


Conectar a un servidor de replicacin
Los objetos de programacin de RMO requieren que se realice una conexin a una instancia de SQL Server mediante una instancia de la clase ServerConnection. Esta conexin al servidor se efecta independientemente de cualquier objeto de programacin de RMO. A continuacin, se pasa al objeto RMO durante la creacin de la instancia o por asignacin a la propiedad ConnectionContext del objeto. De esta manera, se pueden crear y administrar los objetos de programacin RMO y las instancias de objeto de conexin por separado y se puede reutilizar un objeto de conexin nico con varios objetos de programacin RMO. Las reglas siguientes se aplican a las conexiones a un servidor de replicacin:

Todas las propiedades de la conexin se definen para un objeto ServerConnection dado. Una conexin a cada instancia de SQL Server debe tener su propio objeto ServerConnection. El objeto ServerConnection se asigna a la propiedad ConnectionContext del objeto de programacin de RMO que se va a crear o al que se va a tener acceso en el servidor. El mtodo Connect abre la conexin al servidor. Se debe llamar a este mtodo antes de llamar a cualquier mtodo que tenga acceso al servidor en cualquier objeto de programacin de RMO que use la conexin. Dado que tanto RMO como Objetos de administracin de SQL Server (SMO) usan la clase ServerConnection para las conexiones a SQL Server, los objetos SMO y RMO pueden utilizar la misma conexin. Para obtener ms informacin, vea Conectarse a una instancia de SQL Server. Toda la informacin de autenticacin para realizar la conexin e iniciar sesin en el servidor correctamente se proporciona en el objeto ServerConnection. La autenticacin de Windows es el valor predeterminado. Para utilizar la autenticacin de SQL Server, LoginSecure debe establecerse en el valor false y Login yPassword debe establecerse en un inicio de sesin y una contrasea de SQL Server vlidos. Las credenciales de seguridad siempre deben almacenarse y administrarse de forma segura, y se deben proporcionar en tiempo de ejecucin cuando sea posible. Para las aplicaciones multiproceso, se debe utilizar un objeto ServerConnection independiente en cada subproceso.

Llame al mtodo Disconnect en el objeto ServerConnection para cerrar las conexiones al servidor activas que usan los objetos RMO.

Establecer las propiedades de RMO


Las propiedades de los objetos de programacin de RMO representan las propiedades de estos objetos de replicacin en el servidor. Al crear nuevos objetos de replicacin en el servidor, se utilizan las propiedades de RMO para definirlos. En los objetos existentes, las propiedades de RMO representan sus propiedades, que slo se pueden

Ingeniera Informtica y de Sistemas.

Pgina 20

Replicacin de una Base de Datos (SQL Server)


modificar en el caso de que se puedan escribir o configurar. Las propiedades se pueden establecer en los objetos nuevos o en los objetos existentes.

Establecer propiedades para los nuevos objetos de replicacin


Al crear un nuevo objeto de replicacin en el servidor, debe especificar todas las propiedades necesarias antes de llamar al mtodo Create del objeto.

Establecer propiedades para los objetos de replicacin existentes


Para algunos de los objetos de replicacin que existen en el servidor, RMO podra admitir la capacidad de cambiar algunas o todas sus propiedades. Slo es posible cambiar las propiedades que se puedan escribir o configurar. Para poder cambiar las propiedades, se debe llamar al mtodo Load o LoadProperties para recibir las propiedades actuales del servidor. Llamar a estos mtodos indica que un objeto existente se est modificando. De forma predeterminada, al cambiar las propiedades del objeto, RMO confirma estos cambios en el servidor segn el modo de ejecucin de ServerConnection que se est usando. El mtodo IsExistingObject se puede utilizar para comprobar que un objeto existe en el servidor antes de intentar recuperar o cambiar sus propiedades..

Almacenar en memoria cach los cambios de propiedades


Cuando la propiedad SqlExecutionModes est establecida en CaptureSql todas las instrucciones Transact-SQL generadas por RMO se capturan para que se puedan ejecutar manualmente en un lote nico utilizando alguno de los mtodos de ejecucin. RMO le permite almacenar en memoria cach los cambios de las propiedades y las confirma conjuntamente en un nico lote utilizando el mtodo CommitPropertyChanges del objeto. Para almacenar en cach los cambios de las propiedades, la propiedadCachePropertyChanges del objeto debe estar establecida en true. Al almacenar en memoria cach los cambios de las propiedades en RMO, el objeto ServerConnectiontodava controla cundo se envan los cambios al servidor.

Escenario
Este ejemplo resalta una topologa de replicacin de mezcla para entregar datos a usuarios mviles, y tambin muestra las caractersticas de programacin de la replicacin de mezcla en SQL Server. Este ejemplo es una aplicacin basada en Windows Forms que utiliza tecnologas de acceso de datos estndar de Microsoft y la replicacin de mezcla para permitir que un vendedor realice el mantenimiento de sus datos locales y lleve a cabo una sincronizacin peridica con la oficina central. Este ejemplo es compatible con aquellos suscriptores que ejecuten cualquier edicin de SQL Server. La publicacin tambin es compatible con los suscriptores de SQL Server Compact 3.5 SP1. Para obtener ms informacin acerca de este escenario de ejemplo, vea Caso de ejemplo Sales Orders.

Ingeniera Informtica y de Sistemas.

Pgina 21

Replicacin de una Base de Datos (SQL Server)


Lenguajes

C# Transact-SQL

Caractersticas
El ejemplo Sales Orders muestra las siguientes caractersticas de la replicacin de mezcla:

Objetos de administracin de replicacin (RMO) Filtros de fila con parmetros Particiones precalculadas Instantnea con particiones solicitada por el cliente Optimizaciones de rendimiento basadas en el tipo de artculo SQL Server Compact 3.5 SP1 y suscriptores de SQL Server Express. Administracin automtica del intervalo de identidades Controladores de lgica de negocios Sincronizacin Web (opcional)

Requisitos previos
Antes de ejecutar este ejemplo, asegrese de que est instalado el siguiente software:

SQL Server 2005 o versin posterior, incluidos los siguientes componentes instalados opcionalmente: Servicios de SQL Server Database Engine (Motor de base de datos de SQL Server) (incluida la replicacin) Herramientas cliente Base de datos OLTP de ejemplo AdventureWorks. Esta base de datos de ejemplo est disponible en la pgina Microsoft SQL Server Samples and Community Projects en CodePlex. Los ejemplos de SQL Server. Estos ejemplos estn disponibles en la pgina Microsoft SQL Server Samples and Community Projects en CodePlex

Permisos necesarios
Los permisos necesarios para configurar y ejecutar el ejemplo Sales Orders se basan en las necesidades de seguridad de replicacin y son los siguientes:

Para ejecutar InstallSalesOrdersSample.bat, que configura la replicacin, crea la publicacin AdvWorksSalesOrders y genera la instantnea inicial, su cuenta de Windows debe ser miembro de la funcin fija de servidor sysadmin en el publicador. El ejemplo Sales Orders realiza varias tareas del Database Engine (Motor de base de datos) y replicacin, incluida la creacin de la base de
Pgina 22

Ingeniera Informtica y de Sistemas.

Replicacin de una Base de Datos (SQL Server)


datosAdventureWorksLocal, la creacin de la suscripcin local y la ejecucin del Agente de mezcla para inicializar, reinicializar o sincronizar la suscripcin. Para ejecutar correctamente el ejecutable del ejemplo (SalesOrders.exe) en el suscriptor, su cuenta de Windows debe tener por lo menos el permiso CREATE DATABASE en el suscriptor. Para inicializar la suscripcin y sincronizarse con el publicador, la cuenta de Windows utilizada para conectarse al publicador (o al servidor Web si se usa la sincronizacin Web) debe cumplir los siguientes requisitos: Tener un inicio de sesin vlido en el publicador asociado a un usuario en la base de datos de publicaciones. Tener un inicio de sesin vlido en el distribuidor asociado a un usuario en la base de datos de distribucin (del usuario invitado). Ser miembro de la lista de acceso a la publicacin (PAL) AdvWorksSalesOrders.

Generar y configurar el ejemplo


Para generar el proyecto de ejemplo y configurar la topologa de replicacin, debe hacer lo siguiente:

En el publicador, ejecute el script de instalacin de replicacin. (Opcional) Configure el servidor de Internet Information Services (IIS) para admitir la sincronizacin Web para la replicacin de mezcla. Si no se hace esto, no se puede usar la caracterstica de sincronizacin Web del ejemplo. En el suscriptor, modifique la configuracin en el archivo app.config del ejemplo. En el suscriptor, genere el ejemplo mediante el SDK de Visual Studio 2005 o .NET Framework 2.0. En el suscriptor, coloque una copia del ensamblado BusinessLogic.dll en el directorio C:\Archivos de programa\Microsoft SQL Server\100\COM. Cuando se utiliza la sincronizacin web, tambin debe colocar una copia del archivo BusinessLogic.dll en el directorio C:\Archivos de programa\Microsoft SQL Server\100\COM en el servidor web.

Para configurar el ejemplo Sales Orders en el publicador


1. Asegrese de que la base de datos de ejemplo AdventureWorks se haya instalado y est adjuntada. Asegrese de que los ejemplos de SQL Server Database Engine (Motor de base de datos de SQL Server) se han instalado. Para obtener ms informacin,. 2. Asegrese de que el Agente de SQL Server se est ejecutando. Puede ver el estado de este servicio e iniciarlo desde el Explorador de objetos en SQL Server Management Studio. 3. Vaya a la ubicacin de instalacin de los scripts del ejemplo Sales Orders. El valor predeterminado es C:\Archivos de programa\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\Scripts. 4. (Opcional) Configure la Capa de sockets seguros (SSL) en el publicador o en el servidor que se utiliza para la sincronizacin Web. Se requiere SSL para
Ingeniera Informtica y de Sistemas. Pgina 23

Replicacin de una Base de Datos (SQL Server)


establecer comunicaciones entre el servidor IIS y todos los suscriptores. Para configurar SSL, especifique un certificado de servidor para que lo utilice el servidor IIS. 5. Ejecute InstallSalesOrdersSample.bat y, cuando se le solicite, escriba los datos de inicio de sesin (en el formato con distincin de maysculas y minsculas "DOMINIO\inicio de sesin") y la contrasea para la cuenta de Windows en la cual se ejecutar el trabajo del Agente de instantneas. De este modo se llama a sqlcmd.exe para que ejecute CreateAdvWorksSalesOrdersPublication.sql, que hace lo siguiente: Comprueba que la replicacin est configurada en el servidor local y, si no lo est, la configura como un publicador con distribuidor local que usa la base de datos de distribucin. Quita y vuelve a crear los procedimientos almacenados y las funciones definidas por el usuario que se usan para el acceso de datos en el cliente. Quita y vuelve a crear la publicacin AdvWorksSalesOrders. Agrega artculos a la publicacin. Registra el controlador de lgica de negocios en el distribuidor. Inicia el trabajo del Agente de instantneas para general la instantnea inicial. El archivo por lotes tambin puede configurar automticamente un directorio virtual en el publicador para admitir la sincronizacin Web. Si prefiere no configurar el directorio virtual en el publicador durante la instalacin, o si tiene previsto usar un servidor Web independiente, deber ejecutar el Asistente para configurar la sincronizacin Web antes de usar las caractersticas de sincronizacin Web del ejemplo. 6. (Opcional) Ejecute el Asistente para configurar la sincronizacin Web para configurar un servidor IIS para admitir la sincronizacin Web. Omita este paso si InstallSalesOrdersSample.bat cre correctamente el directorio virtual o si no va a utilizar la sincronizacin Web. Para obtener instrucciones completas acerca de cmo usar el asistente, vea How to: Configure an IIS Server for Web Synchronization (SQL Server Management Studio). 7. Antes de continuar, asegrese de que el trabajo del Agente de instantneas para la publicacin AdvWorksSalesOrders se haya completado correctamente. El estado de este trabajo se puede ver mediante el Monitor de replicacin. Agente de instantneas, vea el Para generar y configurar el ejemplo Sales Orders en el suscriptor 1. En el smbolo del sistema, navegue al directorio de instalacin de ejemplos de SQL Server. El valor predeterminado es C:\Archivos de programa\Microsoft SQL Server\100\Samples. 2. Ejecute lo siguiente en un smbolo del sistema de .NET Framework o Microsoft Visual Studio 2005: sn -k SampleKey.snk
Ingeniera Informtica y de Sistemas. Pgina 24

Replicacin de una Base de Datos (SQL Server)


3. Vaya a la ubicacin de instalacin de la solucin de ejemplo Sales Orders en Microsoft Visual C#. El valor predeterminado es C:\Archivos de programa\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\CS. 4. Abra el archivo de solucin SalesOrders.sln en Visual Studio 2005. 5. Genere el proyecto. 6. En la carpeta de salida del proyecto, edite el archivo SalesOrders.exe.config y cambie lo siguiente: Reemplace el valor de la clave del suscriptor con el nombre del servidor local. Reemplace el valor de la clave del publicador con el nombre del servidor que se configur anteriormente como publicador. (Opcional) Reemplace el valor de la clave WebSynchronizationUrl al conectarse al publicador mediante la sincronizacin Web. Esto tambin puede hacerse en el tiempo de ejecucin. (Opcional) Use la clave SyncWhenConnectedInterval para establecer el intervalo entre sincronizaciones, en segundos, cuando utilice la funcionalidad de sincronizar al estar conectado. 7. Coloque una copia del ensamblado BusinessLogic.dll en el directorio C:\Archivos de programa\Microsoft SQL Server\100\COM. 8. (Opcional) Si se usa la sincronizacin web, coloque una copia del ensamblado BusinessLogic.dll en el directorio C:\Archivos de programa\Microsoft SQL Server\100\COM del servidor web.

Ejecutar el ejemplo Para ejecutar el ejemplo Sales Orders y sincronizar los datos
1. Asegrese de que las conexiones remotas estn habilitadas en el publicador y en el suscriptor (TCP/IP o Canalizaciones con nombre) y de que el servicio del Agente SQL Server se est ejecutando. 2. (Opcional) En el suscriptor, pruebe la conexin de la sincronizacin web; para ello, conctese al servidor web en el modo de diagnstico siguiendo las instrucciones para configurar certificados de cliente en el suscriptor contenidas en How to: Configure Web Synchronization for Merge Replication (Replication Transact-SQL Programming). 3. Inicie SalesOrders.exe desde Visual Studio 2005 o desde el smbolo del sistema. Cuando la aplicacin se ejecuta por primera vez, se crean la base de datos de suscripciones y la suscripcin, y se inicia el Agente de mezcla para inicializar la suscripcin. 4. Una vez que se han inicializado los datos de suscripcin, se carga el formulario Sales Orders, mostrando una lista de pedidos existentes que corresponden al vendedor "adventure-works\garrett1". 5. Mediante el formulario Sales Orders, puede hacer los siguientes cambios en los datos de venta: Editar la informacin de los pedidos de venta. Agregar un nuevo artculo a un pedido de venta.
Ingeniera Informtica y de Sistemas. Pgina 25

Replicacin de una Base de Datos (SQL Server)


Eliminar un artculo de un pedido de venta. Cambiar la cantidad solicitada para un artculo en un pedido de venta. 6. Seleccionar un mtodo de sincronizacin en el men Synchronize para sincronizar la suscripcin. 7. (Opcional) Marque Synchronize When Connected para sincronizar la suscripcin automticamente. Establezca el intervalo de sincronizacin para la sincronizacin en segundo plano mediante la clave SyncWhenConnectedInterval en el archivo app.config. Para usar las opciones de sincronizacin avanzadas del ejemplo Sales Orders 1. En Advanced en el men Synchronize, seleccione una de las siguientes opciones: (Opcional) Seleccione una opcin de reinicializar para reinicializar la suscripcin. (Opcional) Seleccione Web Synchronization Options y suministre la URL de Internet y las credenciales de autenticacin de Windows que se usan para obtener acceso al servidor Web a travs de una conexin HTTPS segura. Para usar esta opcin, ya debe haber configurado un servidor IIS para la sincronizacin Web. (Opcional) Seleccione Get Subscription Status para ver los resultados de las sesiones ms recientes del Agente de mezcla. Eliminar el ejemplo Utilice el procedimiento siguiente para eliminar el ejemplo Sales Orders. Para eliminar solamente la suscripcin 1. En el suscriptor, ejecute el script siguiente de Transact-SQL para eliminar la suscripcin de extraccin. 2. En el publicador, ejecute el script siguiente de Transact-SQL para eliminar del registro la suscripcin de extraccin. Para eliminar el ejemplo Sales Orders 1. En el publicador, vaya a la ubicacin de instalacin de los scripts del ejemplo Sales Orders. El valor predeterminado es C:\Archivos de programa\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\Scripts. 2. Ejecute el archivo por lotes RemoveSalesOrdersSample.bat. 3. Cuando se le solicite, escriba "Y" y presione ENTRAR para eliminar todos los objetos de la replicacin del publicador, eliminar todos los objetos de replicacin de la base de datos de suscripciones y desinstalar la publicacin y distribucin del publicador. 4. En el suscriptor de la base de datos AdventureWorksLocal, ejecute sp_removedbreplication (Transact-SQL). 5. Cambie el contexto de la base de datos por la base de datos maestra y ejecute DROP DATABASE AdventureWorksLocal.
Ingeniera Informtica y de Sistemas. Pgina 26

S-ar putea să vă placă și