You are on page 1of 18

Replicacin SQL Server 2008 Fernando Monroy Tenorio

Una replicacin se origina cuando en una base de datos distribuida queremos mantener los mismos datos en varios nodos. Para esto debemos garantizar que cuando en alguno de los nodos se cambi, aade, o elimina un dato los dems nodos actualicen su informacin sobre el cambio. De lo contrario no existira coherencia o integridad entre cada uno de los servidores de bases de datos. Como indica el manual de referencia de Microsofot 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. Microsoft SQL Server proporciona los siguientes tipos de replicacin para usarlos en las aplicaciones distribuidas: Replicacin transaccional. Replicacin de mezcla. Replicacin de instantneas.

El tipo de replicacin que se elige para una aplicacin depende de muchos factores, como el entorno fsico de la replicacin, el tipo y la cantidad de datos que se desean replicar y si los datos se actualizan en el suscriptor. El entorno fsico incluye el nmero y la ubicacin de los equipos que participan en la replicacin, y si estos equipos son clientes (estaciones de trabajo, equipos porttiles o dispositivos de mano) o servidores. Replicacin instantnea La replicacin de instantneas distribuye los datos exactamente como aparecen en un momento especfico en el tiempo y no supervisa las actualizaciones de los datos. Cuando se produce la sincronizacin, se genera la instantnea completa y se enva a los suscriptores. El uso independiente de la replicacin de instantneas es ms apropiado cuando se cumple una o ms de las siguientes condiciones: Los datos no cambian con frecuencia. Es aceptable disponer de copias de datos desfasados respecto al publicador durante un perodo de tiempo. se duplican pequeas cantidades de datos. Hay un gran volumen de cambios en un corto perodo de tiempo.

Replicacin Transaccional
Normalmente, la replicacin transaccional se inicia con una instantnea de los datos y los objetos de la base de datos de publicaciones. En cuanto se obtiene la instantnea inicial, los posteriores cambios de datos y modificaciones del esquema realizados en el publicador habitualmente se entregan en el suscriptor cuando se producen (casi en tiempo real). Los cambios de datos se aplican al suscriptor en el mismo orden y dentro de los mismos lmites de la transaccin que cuando se produjeron en el publicador. Por tanto, en una publicacin, se garantiza la coherencia transaccional. La replicacin transaccional se utiliza normalmente en entornos entre servidores y es la adecuada en los siguientes casos: Se desea que se propaguen cambios incrementales a los suscriptores en el momento en que ocurren. La aplicacin requiere una latencia baja entre el momento en que se realizan los cambios en el publicador y el momento en que llegan los cambios al suscriptor. La aplicacin necesita acceso a los estados intermedios de los datos. Por ejemplo, si una fila cambia cinco veces, la replicacin transaccional permite que una aplicacin responda a cada cambio (por ejemplo, la activacin de un desencadenador) y no solo al cambio de datos neto en la fila. El publicador tiene un volumen elevado de actividad de insercin, actualizacin y eliminacin. El publicador o el suscriptor es una base de datos que no es de SQL Server, como Oracle.

Replicacin de Mezcla
La replicacin de mezcla, como la replicacin transaccional, normalmente se inicia con una instantnea de los objetos y datos de una base de datos de publicaciones. Los cambios de datos y las modificaciones de esquema posteriores que se lleven a cabo en el publicador y en los suscriptores se controlan mediante desencadenadores. El suscriptor se sincroniza con el publicador cuando estn conectados a la red e intercambian todas las filas que han cambiado entre el publicador y el suscriptor desde la ltima vez que se produjo la sincronizacin. La replicacin de mezcla se suele utilizar en entornos de servidor a cliente. La replicacin de mezcla es adecuada en las siguientes situaciones: Varios suscriptores actualizan los mismos datos en diferentes ocasiones y propagan los cambios al publicador y a otros suscriptores. Los suscriptores necesitan recibir datos, realizar cambios sin conexin y sincronizar ms adelante los cambios con el publicador y otros suscriptores. Cada suscriptor requiere una particin de datos diferente. Se pueden producir conflictos y, cuando ocurren, debe poder detectarlos y resolverlos. La aplicacin requiere el cambio de datos neto en lugar de acceso a los estados intermedios de los datos. Por ejemplo, si una fila cambia cinco veces en el suscriptor antes de que ste se sincronice con el publicador, la fila cambiar solo una vez en el publicador para reflejar el cambio de datos neto (es decir, el quinto valor).

Elementos o componentes de una replicacin en sql server a) Publicacin.- Es el recurso que se compartir o que es comn para los nodos de nuestra base de datos en esta caso una tabla. b) Publicador.- Es el servidor de base de datos que se encargara de publicar el recurso (publicacin) en nuestro caso la tabla. c) Subscriptor.- El servidor encargado de realizar o escribir las modificaciones del servidor publicador. d) Agente sql que es el encargado de propagar los cambios en la red. Escenario Se requieren dos equipos conectados en red y con SQL Server instalados los llamaremos NODO 1 y NODO2 en los cuales se deben crear dos bases de datos llamadas respectivamente NODO1 y NODO2 dentro tendrn ambas una nica tabla llamada datos con los campos de Nombre, Apellidos, Direccin y Telfono. Los tipos de datos y longitudes son a criterio solo hay que tener en consideracin que en ambas bases de datos las tablas deben tener la misma estructura. Configuracin del servidor publicador y de la publicacin Esta configuracin se debe aplicar nicamente al servidor de base de datos NODO1: Dar clic derecho en la opcin del servidor de base de datos de replicacin y en la opcin de publicador dar clic derecho y configurar distribuidor

En la siguiente opcin se debe de elegir la primera la cual indica que el servidor o la instancia local donde se est trabajando ser el servidor publicador. La otra opcin que no debe seleccionarse es para incluir un servidor o instancia diferente como distribuidor.

A continuacin indicaremos que el agente de SQL Server se configure para arrancar automticamente (si no lo tenamos ya configurado de esta forma). La relacin entre el agente de SQL Server y la replicacin es muy ntima ya que el agente es el responsable de la ejecucin de los agentes de replicacin (meros ejecutables con parmetros) mediante el uso de jobs de SQL Server. Es muy importante que este en esta opcin.

Posteriormente e configura la instantnea. Una instantnea contiene todos los datos que vamos a replicar que estn presentes en un instante en el tiempo. Una vez que se ha generado una instantnea se utilizar para inicializar los suscriptores y poder continuar la replicacin de datos desde ese punto en el tiempo. En la parte de Snapshot folder es muy importante colocar una carpeta compartida es decir un recurso de red donde se pueda acceder de manera remota con todos los permisos de preferencia para todos los usuarios. Se podra colocar por ejemplo la ruta \\instantaneas se debe de crear la carpeta en la ubicacin de preferencia en C y darle a la carpeta de instantneas todos los privilegio para acceder a ella.

Elegiremos la ubicacin para los ficheros de datos y del log de transacciones de nuestra base de datos de distribucin e indicaremos que deseamos que nuestra instancia sea un publicador autorizado:

Una vez configurada la distribucin procederemos a crear nuestra publicacin. Para ello desplegaremos el nodo Replication del Object Explorer de la instancia e indicaremos con el men contextual del nodo Local Publications que queremos crear una nueva:

Elegiremos la base de datos que contiene los artculos (tablas, vistas, procedimientos, etc.) que vamos a replicar. Para nuestro caso la base de datos es NODO1 y el artculo es la tabla de datos.

Indicaremos que vamos a utilizar replicacin transaccional. En la replicacin transaccional se garantiza el orden de las transacciones as como la consistencia de dichas transacciones.

A continuacin seleccionaremos los artculos a replicar. En nuestro caso recuerda la tabla de datos. En la imagen aparece otra base debido a que el autor de donde se copi la informacin toma esa tabla como ejemplo, solo cmbiala a la de datos.

Es interesante que revisemos si las propiedades de replicacin del artculo por defecto se ajustan a nuestras necesidades. Para ello utilizaremos el botn Article Properties para desplegar la ventana de propiedades. Para esta prctica se recomienda dejar estos parmetros como se encuentran y no modificarlos.

Una vez configuradas las propiedades, continuaremos con los filtros de datos. En este caso se recomienda que se dejen sin filtros solo da clic en next

A continuacin configuraremos el agente de instantneas (snapshot) para que nos genere una instantnea al finalizar el asistente. De esta forma podremos inicializar un suscriptor tan pronto como la instantnea finalice. Para esto solo deja la opcin tal y como se muestra en la siguiente imagen:

A continuacin indicaremos las cuentas de seguridad que utilizarn los agentes. Se recomienda dejarlo tal y como se muestra a continuacin:

Finalmente, crearemos la publicacin que hemos configurado.

Con eso termina la configuracin del nodo 1. Posteriormente se relizara la configuracin del NODO2 el cual ser para este caso nicamente un subscriptor para eso se da clic en la siguiente opcin sobre la base de datos NODO2 del servidor que fungir como segundo nodo.

Para comenzar seleccionaremos el publicador, nuestra instancia donde configuramos la publicacin, y la base de datos publicada: Se debe dar clic en la opcin de buscar servidores publicadores y se les pedir que se conecten al servidor publicador en este caso al nodo 1 para eso ya deben tener previamente configurada la conexin remota:

Ya conectados al servidos publicador en este caso el nodo1 deben seleccionar la publicacin que es la tabla de datos, en la imagen se muestra otra tabla. Elijan la del ejercicio que estamos configurando

A continuacin elegimos la modalidad de la suscripcin, push o pull. Las suscripcionespush son aquellas en las que el agente de distribucin, responsable de entregar las transacciones del distribuidor al suscriptor, se ejecuta en el distribuidor. Las suscripciones pull son aquellas en las que el agente de distribucin se ejecuta en elsuscriptor. Para el caso de este ejemplo se elige push.

Elegiremos la instancia y la base de datos donde se replicarn nuestros datos. Que en nuestro caso es NODO2

De nuevo utilizaremos la seguridad del proceso del agente para simplificar la conectividad.. Dejar por default esta opcin.

En la siguiente opcin se selecciona la configuracin del agente de manera que corra continuamente. tal y como se muestra.

Finalmente

indicaremos cuando deseamos que se inicialice la suscripcin a partir del snapshot. En nuestro caso es de manera inmediata.

Se da clic en la opcin de crear subscripcin

Ahora para verificar puedes hacer algn cambio en el publicador y ver como se refleja en el subscriptor la otra forma de verificar es ver la conexin. En el publicador y distribuidor:

Debe aparecer correctamente generado en el publicador:

Y en el subscriptor debe aparecer:

Otro ejemplo en la liga: http://www.youtube.com/watch?v=WZGdTmY3V