Introducción a la Replicación La replicación es un conjunto de tecnologías destinadas a la copia y distribución 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 replicación permite distribuir datos entre diferentes ubicaciones y entre usuarios remotos o móviles mediante redes locales y de área extensa, conexiones de acceso telefónico, conexiones inalámbricas e Internet. La replicación transaccional se usa normalmente en escenarios servidor a servidor que requieren un alto rendimiento, como por ejemplo, la mejora de la escalabilidad y la disponibilidad, el almacenamiento de datos y la creación de informes, la integración de datos procedentes de varios sitios, la integración de datos heterogéneos, y la descarga del procesamiento por lotes. La replicación de mezcla se ha diseñado principalmente para las aplicaciones móviles o de servidores distribuidos que pueden encontrarse con conflictos de datos. Los escenarios más frecuentes son: el intercambio de datos con usuarios móviles, las aplicaciones de punto de venta (POS) a consumidores, y la integración de datos de varios sitios. La replicación de datos se usa para proporcionar el conjunto de datos inicial para la replicación transaccional y de mezcla; también se puede usar cuando está indicada una actualización completa de los datos. Con estos tres tipos de replicación, SQL Server proporciona un sistema eficaz y flexible para la sincronización de datos en toda la organización. Información General sobre los tipos de Replicación Microsoft SQL Server proporciona los siguientes tipos de replicación para usarlos en las aplicaciones distribuidas: Replicación transaccional. Replicación de mezcla. Replicación de instantáneas El tipo de replicación que se elige para una aplicación depende de muchos factores, como el entorno físico de la replicación, el tipo y la cantidad de datos que se desean replicar y si los datos se actualizan en el suscriptor. El entorno físico incluye el número y la ubicación de los equipos que participan en la replicación, y si estos equipos son clientes (estaciones de trabajo, equipos portátiles o dispositivos de mano) o servidores. Por lo general, cada tipo de replicación comienza con una sincronización inicial de los objetos publicados entre el publicador y los suscriptores. Esta sincronización inicial puede llevarse a cabo mediante la replicación con una instantánea, que es una copia de todos los objetos y datos especificados por una publicación. Una vez creada la instantánea, se envía a los suscriptores. Para algunas aplicaciones, la replicación de instantáneas es lo único que se necesita. Para otros tipos de aplicaciones, es importante que los cambios de datos posteriores fluyan al suscriptor de forma incremental a lo largo del tiempo. Algunas aplicaciones también requieren que los cambios vuelvan del suscriptor al publicador. La replicación transaccional y la replicación de mezcla proporcionan opciones para estos tipos de aplicaciones. En la replicación de instantáneas, no se realiza un seguimiento de los cambios de datos; cada vez que se aplica una instantánea, ésta sobrescribe completamente los datos existentes. La replicación transaccional realiza un seguimiento de los cambios a través del registro de transacciones de SQL Server y la replicación de mezcla realiza un seguimiento de los cambios a través de desencadenadores y tablas de metadatos Información general sobre el modelo de publicación de replicación La replicación utiliza una metáfora del sector editorial para representar los componentes de una topología de replicación, que incluyen el publicador, el distribuidor, los suscriptores, las publicaciones, los artículos y las suscripciones. Aunque la metáfora de la revista es útil para comprender la replicación, es importante señalar que la replicación de SQL Server incluye funciones que no están representadas en esta metáfora, en particular, la posibilidad de que un suscriptor realice actualizaciones y de que un publicador envíe cambios incrementales a los artículos de una publicación. Hay tres tipos de replicación: replicación transaccional, réplica de mezcla y replicación de instantáneas. Todos estos tipos dependen de varios programas independientes, denominados agentes, que realizan las tareas asociadas con el seguimiento de los cambios y la distribución de los datos. El publicador (editor) de una revista produce una o más publicaciones. Una publicación contiene artículos. El publicador distribuye la revista directamente o a través de un distribuidor. Los suscriptores reciben las publicaciones a las que se han suscrito. Topologia Una topología de replicación define la relación entre los servidores y las copias de los datos, y aclara la lógica que determina cómo fluyen los datos entre los servidores. Hay varios procesos de replicación (denominados agentes) que son responsables de copiar y mover los datos entre el publicador y los suscriptores. En la siguiente ilustración se muestra información general acerca de los componentes y procesos que participan en la replicación. Publicador El publicador es una instancia de base de datos que permite que los datos estén disponibles para otras ubicaciones a través de la replicación. El publicador puede tener una o más publicaciones, cada una de las cuales representa un conjunto de objetos y datos relacionados lógicamente para replicar. Distribuidor El distribuidor es una instancia de base de datos que funciona como almacén para datos específicos de replicación asociados con uno o más publicadores. Cada publicador está asociado con una sola base de datos (conocida como la base de datos de distribución) en el distribuidor. La base de datos de distribución almacena los datos de estado de la replicación, metadatos acerca de la publicación 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 función del tipo de replicación elegida, el suscriptor también puede devolver los datos modificados al publicador o volver a publicar los datos en otros suscriptores. Artículo Un artículo identifica un objeto de base de datos incluido en una publicación. Una publicación puede contener diferentes tipos de artículos, como tablas, vistas, procedimientos almacenados y otros objetos. Cuando las tablas se publican como artículos, se pueden usar filtros para restringir las columnas y filas de datos que se envían a los suscriptores. Publicación Una publicación es un conjunto de uno o más artículos de una base de datos. La agrupación de varios artículos en una publicación permite especificar más fácilmente un conjunto de objetos y datos de bases de datos relacionados lógicamente, que se replican como una unidad. Suscripción Una suscripción es una solicitud de una copia de una publicación que se entrega a un suscriptor. La suscripción define qué publicación se recibirá, dónde y cuándo. Hay dos tipos de suscripciones: de inserción y de extracción. Para obtener más información acerca de las suscripciones de inserción y de ¿?extracción. Información general sobre los agentes de replicación La replicación utiliza varios programas independientes, llamados agentes, para realizar las tareas asociadas con el seguimiento de los cambios y la distribución de los datos. De forma predeterminada, los agentes de replicación 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 replicación también se pueden ejecutar desde la línea de comandos y en aplicaciones que utilizan Objetos de administración de replicación (RMO). Los agentes de replicación se pueden administrar desde el Monitor de replicación de SQL Server y SQL Server Management Studio. Agente SQL Server El Agente SQL Server aloja y programa los agentes utilizados en la replicación, y proporciona una manera sencilla de ejecutar los agentes de replicación. El Agente SQL Server también controla y supervisa las operaciones fuera de la replicación. Para obtener más información. Importante De manera predeterminada, el servicio del Agente SQL Server está deshabilitado cuando se instala SQL Server, a menos que se elija explícitamente iniciar el servicio automáticamente durante la instalación. Agente de instantáneas Por lo general, el Agente de instantáneas se utiliza con todos los tipos de replicación. Prepara esquemas y archivos de datos iniciales de tablas publicadas y otros objetos, almacena los archivos de instantáneas y registra la información acerca del estado de sincronización en la base de datos de distribución. El Agente de instantáneas se ejecuta en el distribuidor. Agente de registro del LOG El Agente de registro del LOG se utiliza en la replicación transaccional. Mueve las transacciones marcadas para replicación desde el registro de transacciones del publicador a la base de datos de distribución. Cada base de datos publicada con la replicación 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). Agente de distribución El Agente de distribución se utiliza en la replicación de instantáneas y transaccional. Aplica la instantánea inicial al suscriptor y mueve las transacciones contenidas en la base de datos de distribución a los suscriptores. El Agente de distribución se ejecuta en el distribuidor, para las suscripciones de inserción, o en el suscriptor, para las suscripciones de extracción. Agente de mezcla El Agente de mezcla se utiliza con la replicación de mezcla. Aplica la instantánea inicial al suscriptor, y transfiere y reconcilia los cambios incrementales de datos que se producen. Cada suscripción 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 inserción, o en el suscriptor, para las suscripciones de extracción. De forma predeterminada, el Agente de mezcla carga los cambios del suscriptor al publicador y, a continuación, descarga los cambios del publicador al suscriptor. Agente de lectura de cola El Agente de lectura de cola se utiliza con la replicación transaccional y la opción de actualización 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 distribución y del Agente de mezcla, sólo 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 replicación La replicación incluye varios trabajos de mantenimiento que realizan operaciones de mantenimiento programadas y a petición. Como configurar Replicación usando SQL Server Management Studio Introducción Usted puede utilizar SQL Server Management Studio para configurar y administrar replicación en SQL Server 2005. La interface de usuario contiene nuevos asistentes para la configuración de la replicación y nuevas opciones en los cuadros de dialogo de Properties. Creando una publicación Utilice el siguiente procedimiento para crear una publicación usando el asistente de New Publication en SQL Server Management Studio: 1. Conecte el publisher en Object Explorer, expanda el nodo server y el nodo Replication. 2. Haga botón derecho en Publications, y luego clic en New Publication. 3. Utilice el asistente New Publication para configurar lo siguiente: a. Base de datos de Publicación. b. Tipo de publicación. Elija desde: • Snapshot publication • Transactional publication • Transactional publication with updateable subscriptions hierarchical or peer-to-peer topology) • Merge publication c. Cuentas de seguridad de Replication agent. d. Artículos a publicar. e. Filtros a Artículos. f. Snapshot agent schedule. Creando una suscripción Utilice el siguiente procedimiento para crear una suscripción usando el asistente New Subscription en SQL Server Management Studio: 1. Conecte el suscriber en Object Explorer, expanda el nodo server y el nodo Replication. 2. Haga botón derecho en Subscriptions, y luego click en New Subscriptions. 3. Utilice el asistente New Subscription para configurar lo siguiente: a. Publisher y publicación. b. Tipo de suscripción. Elegir entre: • Push subscription • Pull subscription c. Base de datos del Subscriber y suscripción. d. Cuentas de seguridad de Replication agent. e. Synchronization agent schedule. f. Horario de inicialización. Sincronizando una suscripcion Utilice el siguiente procedimiento para una sincronización de una suscripción pull o push desde el subscriber usando SQL Server Management Studio: 1. Conecte el subscriber en Object Explorer y expanda el nodo server, El nodo Replication, y el nodo Subscriptions. 2. Haga botón derecho en la suscripción que desea sincronizar, y haga click En Synchronize and Monitor. 3. En el cuadro de dialogo Synchronize and Monitor, haga clic en Start.