Replicación SQL Server 2008 - copia

18
Replicación SQL Server 2008 Fernando Monroy Tenorio Una replicación 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ó, añade, o elimina un dato los demás nodos actualicen su información sobre el cambio. De lo contrario no existiría coherencia o integridad entre cada uno de los servidores de bases de datos. Como indica el manual de referencia de Microsofot 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. 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. Replicación instantánea La replicación de instantáneas distribuye los datos exactamente como aparecen en un momento específico en el tiempo y no supervisa las actualizaciones de los datos. Cuando se produce la sincronización, se genera la instantánea completa y se envía a los suscriptores. El uso independiente de la replicación de instantáneas es más apropiado cuando se cumple una o más de las siguientes condiciones: Los datos no cambian con frecuencia. Es aceptable disponer de copias de datos desfasados respecto al publicador durante un período de tiempo. se duplican pequeñas cantidades de datos. Hay un gran volumen de cambios en un corto período de tiempo.

Transcript of Replicación SQL Server 2008 - copia

Page 1: Replicación SQL Server 2008 - copia

Replicación SQL Server 2008 Fernando Monroy Tenorio

Una replicación 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ó, añade, o elimina un dato los demás nodos actualicen su información sobre el cambio.

De lo contrario no existiría coherencia o integridad entre cada uno de los servidores de bases de

datos.

Como indica el manual de referencia de Microsofot 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.

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.

Replicación instantánea

La replicación de instantáneas distribuye los datos exactamente como aparecen en un momento

específico en el tiempo y no supervisa las actualizaciones de los datos. Cuando se produce la

sincronización, se genera la instantánea completa y se envía a los suscriptores.

El uso independiente de la replicación de instantáneas es más apropiado cuando se cumple una o

más de las siguientes condiciones:

Los datos no cambian con frecuencia.

Es aceptable disponer de copias de datos desfasados respecto al publicador durante un

período de tiempo.

se duplican pequeñas cantidades de datos.

Hay un gran volumen de cambios en un corto período de tiempo.

Page 2: Replicación SQL Server 2008 - copia

Replicación Transaccional

Normalmente, la replicación transaccional se inicia con una instantánea de los datos y los objetos

de la base de datos de publicaciones. En cuanto se obtiene la instantánea 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 límites de la transacción que cuando se

produjeron en el publicador. Por tanto, en una publicación, se garantiza la coherencia transaccional.

La replicación 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 aplicación 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 aplicación necesita acceso a los estados intermedios de los datos. Por ejemplo, si una fila

cambia cinco veces, la replicación transaccional permite que una aplicación responda a cada

cambio (por ejemplo, la activación de un desencadenador) y no solo al cambio de datos neto

en la fila.

El publicador tiene un volumen elevado de actividad de inserción, actualización y eliminación.

El publicador o el suscriptor es una base de datos que no es de SQL Server, como Oracle.

Replicación de Mezcla

La replicación de mezcla, como la replicación transaccional, normalmente se inicia con una

instantánea 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 están 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 sincronización.

La replicación de mezcla se suele utilizar en entornos de servidor a cliente. La replicación 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 conexión y sincronizar más

adelante los cambios con el publicador y otros suscriptores.

Cada suscriptor requiere una partición de datos diferente.

Se pueden producir conflictos y, cuando ocurren, debe poder detectarlos y resolverlos.

La aplicación 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).

Page 3: Replicación SQL Server 2008 - copia

Elementos o componentes de una replicación en sql server

a) Publicación.- Es el recurso que se compartirá o que es común 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

(publicación) 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 tendrán ambas una única tabla llamada datos

con los campos de Nombre, Apellidos, Dirección y Teléfono. Los tipos de datos y

longitudes son a criterio solo hay que tener en consideración que en ambas bases de datos

las tablas deben tener la misma estructura.

Configuración del servidor publicador y de la publicación

Esta configuración se debe aplicar únicamente al servidor de base de datos NODO1:

Dar clic derecho en la opción del servidor de base de datos de replicación y en la opción de

publicador dar clic derecho y configurar distribuidor

Page 4: Replicación SQL Server 2008 - copia

En la siguiente opción 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 opción que no

debe seleccionarse es para incluir un servidor o instancia diferente como distribuidor.

A continuación indicaremos que el agente de SQL Server se configure para arrancar

automáticamente (si no lo teníamos ya configurado de esta forma). La relación entre el

agente de SQL Server y la replicación es muy íntima ya que el agente es el responsable de

la ejecución de los agentes de replicación (meros ejecutables con parámetros) mediante el

uso de jobs de SQL Server. Es muy importante que este en esta opción.

Page 5: Replicación SQL Server 2008 - copia

Posteriormente e configura la instantánea. Una instantánea contiene todos los datos que

vamos a replicar que están presentes en un instante en el tiempo. Una vez que se ha

generado una instantánea se utilizará para inicializar los suscriptores y poder continuar

la replicación 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

podría colocar por ejemplo la ruta \\instantaneas se debe de crear la carpeta en la ubicación

de preferencia en C y darle a la carpeta de instantáneas todos los privilegio para acceder a

ella.

Elegiremos la ubicación para los ficheros de datos y del log de transacciones de nuestra

base de datos de distribución e indicaremos que deseamos que nuestra instancia sea un

publicador autorizado:

Page 6: Replicación SQL Server 2008 - copia

Una vez configurada la distribución procederemos a crear nuestra publicación. 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:

Page 7: Replicación SQL Server 2008 - copia

Elegiremos la base de datos que contiene los artículos (tablas, vistas, procedimientos, etc.)

que vamos a replicar. Para nuestro caso la base de datos es NODO1 y el artículo es la tabla

de datos.

Indicaremos que vamos a utilizar replicación transaccional. En la replicación transaccional

se garantiza el orden de las transacciones así como la consistencia de dichas

transacciones.

Page 8: Replicación SQL Server 2008 - copia

A continuación seleccionaremos los artículos 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

información toma esa tabla como ejemplo, solo cámbiala a la de datos.

Es interesante que revisemos si las propiedades de replicación del artículo por defecto se

ajustan a nuestras necesidades. Para ello utilizaremos el botón “Article Properties” para

desplegar la ventana de propiedades. Para esta práctica se recomienda dejar estos

parámetros como se encuentran y no modificarlos.

Page 9: Replicación SQL Server 2008 - copia

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 continuación configuraremos el agente de instantáneas (snapshot) para que nos genere

una instantánea al finalizar el asistente. De esta forma podremos inicializar un suscriptor

tan pronto como la instantánea finalice. Para esto solo deja la opción tal y como se muestra

en la siguiente imagen:

Page 10: Replicación SQL Server 2008 - copia

A continuación indicaremos las cuentas de seguridad que utilizarán los agentes. Se

recomienda dejarlo tal y como se muestra a continuación:

Finalmente, crearemos la publicación que hemos configurado.

Page 11: Replicación SQL Server 2008 - copia

Con eso termina la configuración del nodo 1. Posteriormente se relizara la configuración

del NODO2 el cual será para este caso únicamente un subscriptor para eso se da clic en la

siguiente opción sobre la base de datos NODO2 del servidor que fungirá como segundo

nodo.

Page 12: Replicación SQL Server 2008 - copia

Para comenzar seleccionaremos el publicador, nuestra instancia donde configuramos la

publicación, y la base de datos publicada: Se debe dar clic en la opción 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 conexión remota:

v

Page 13: Replicación SQL Server 2008 - copia

Ya conectados al servidos publicador en este caso el nodo1 deben seleccionar la

publicación que es la tabla de datos, en la imagen se muestra otra tabla. Elijan la del

ejercicio que estamos configurando

A continuación elegimos la modalidad de la suscripción, push o pull. Las

suscripcionespush son aquellas en las que el agente de distribución, 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 distribución se ejecuta en

elsuscriptor. Para el caso de este ejemplo se elige push.

Page 14: Replicación SQL Server 2008 - copia

Elegiremos la instancia y la base de datos donde se replicarán 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 opción.

Page 15: Replicación SQL Server 2008 - copia

En la siguiente opción se selecciona la configuración del agente de manera que corra

continuamente. tal y como se muestra.

Finalmente indicaremos cuando deseamos que se inicialice la suscripción a partir del

snapshot. En nuestro caso es de manera inmediata.

Page 16: Replicación SQL Server 2008 - copia

Se da clic en la opción de crear subscripción

Page 17: Replicación SQL Server 2008 - copia

Ahora para verificar puedes hacer algún cambio en el publicador y ver como se refleja en el

subscriptor la otra forma de verificar es ver la conexión. 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

Page 18: Replicación SQL Server 2008 - copia