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.
1. Replicación de Bases de Datos con
Microsoft SQL SERVER 2008
Exponen:
Ing. Rafael Puente
Ing. Fernando Casas De la Torre
Catedrático:
Dr. Jose Ruiz Ayala
2. Replicación de Bases de Datos con SQL SERVER 2008
REPLICACION
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. Utilice la replicación para 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 es el proceso de copiar y mantener
actualizados los datos en varios nodos de bases de datos ya
sean estos persistentes o no. Éste usa un concepto donde
existe un nodo amo o maestro (master) y otros sirvientes o
esclavos (slaves).
La replicación de discos y particiones es la respuesta a una
parte importante de esas dos acciones de mantenimiento y es
el proceso mediante el cual se genera una copia exacta de
parte del sistema. Esa parte puede ser desde un archivo hasta
una carpeta, una partición, un disco o incluso varios discos.
3. REPLICACION
Actualmente existen en la red multitud de aplicaciones y de sistemas que tienen por debajo una base
de datos que sigue el modelo cliente-servidor. Muchas veces esos sistemas deben de tener garantizada
la accesibilidad por lo que para evitar problemas es necesario utilizar este tipo de técnicas de
replicación de base de datos de forma que un fallo en uno de los servidores de base de datos no
impida a los usuarios seguir utilizando la aplicación.
Replicación de Bases de Datos con SQL SERVER 2008
Mediante la replicación de base de datos, usuarios de
todo el mundo pueden estar accediendo a lo que para
ellos son los mismos datos, aunque en realidad,
físicamente esos datos pueden estar de forma
transparente para el usuario, en diferentes nodos o
localidades.
4. TIPOS DE REPLICACIÓN DE BASE DE DATOS
Podemos hablar al menos de 3 tipos de replicación de base de datos:
• Replicación Instantánea: los datos de un servidor son simplemente copiados a otro
servidor o a otra base de datos dentro del mismo servidor. Al copiarse todo no necesitas un
control de cambios. Se suele utilizar cuando los datos cambian con muy poca frecuencia.
• Replicación Transaccional: primero se envía una copia completa de la base de datos y
luego se van enviando de forma periódica (o a veces continua) las actualizaciones de los
datos que cambian. Se utiliza cuando necesitas que todos los nodos con todas las
instancias de la base de datos tengan los mismos datos a los pocos segundos de realizarse
un cambio.
• Replicación de mezcla: los datos de dos o más bases de datos se combinan en una sola
base de datos. En primer lugar se envía una copia completa de la base de datos. Luego el
Sistema de Gestión de Base de Datos va comprobando los cambios que van apareciendo en
los distintos nodos y a una hora programada o a petición los datos se sincronizan. Es sobre
todo útil cuando cada nodo suele utilizar solo los datos que se actualizan allí pero que por
circunstancias necesita tener también los datos de los otros sitios.
Replicación de Bases de Datos con SQL SERVER 2008
5. BENEFICIOS
La replicación se usa mucho en sistema de acceso a datos por varios motivos:
• Rendimiento: Normalmente y dependiendo del caso, hay mas lectura que escritura en una
base de datos, por lo que tener varios nodos solo procesando la lectura puede traer un
gran beneficio de rendimiento en una base de datos muy consultada.
• Prueba de fallas: Un esclavo estando casi sincrónicamente actualizado puede ser útil en
caso de que el nodo maestro caiga, este puede reemplazarlo y así no detener el servicio.
• Fiabilidad: Muchas veces se puede tener una replicación para tener la seguridad de que los
datos están siendo copiados a otro nodo, en caso de sufrir un desperfecto en el maestro.
• Generación de bloqueos: aunque esta es más precisa, también se puede usar para
procesos que necesiten leer datos, generando bloqueos, al hacerlo sobre un esclavo esto
no interviene en el funcionamiento de todo el sistema, es muy usado para por ejemplo,
hacer copias de seguridad, o extraer grandes cantidades de datos para generar estadísticas.
Replicación de Bases de Datos con SQL SERVER 2008
6. REPLICACIÓN EN ÁRBOL
En muchos casos, los esclavos también pueden tener sus propios esclavos, por lo que se puede
generar árboles de replicación, bajando la carga al maestro y dando la posibilidad de diseñar
mejores modelos contra caídas de servicios.
Replicación de Bases de Datos con SQL SERVER 2008
Para el proceso de replicación entre 2 servidores de sql server 2008, se cuenta con el primero que es
el controlador de dominio y se llama SRV-Tres y el servidor 2 se llama ClaseSQL
7. Realizaremos una REPLICACION de un base de datos de ejemplo usaremos uno de losproductos mas
usados en el mercado: MICROSOFT SQL SERVER en su version 2008. Iniciamos nuestros 2 SQLSERVER
2008…
Replicación de Bases de Datos con SQL SERVER 2008
REQUISITOS
2 equipos Pc con SQL
SERVER 2008 enlazados en
un dominio.
De preferencia ya
actualizados y con los
ultimos UPDATES.
8. Antes del proceso de replicación debemos de habilitar la habilitación remota entre los 2 servidores,
hacemos clic derecho y vamos a facetas…
Replicación de Bases de Datos con SQL SERVER 2008
9. Se nos abre una ventana y en facetas elegimos Surface Area Configuration y habilitamos
RemoteDactEnable
Replicación de Bases de Datos con SQL SERVER 2008
10. No se ven los cambios así que reiniciamos el servidor, por lo que vamos a detener los servicios con stop y
luego habilitarlos con start
Replicación de Bases de Datos con SQL SERVER 2008
11. También vamos a iniciar al agente de SQL, sin esto no se puede dar la replicación ya que todos los
trabajos de replicación son programados dentro del agente
Replicación de Bases de Datos con SQL SERVER 2008
12. Es importante ir a inicio-todos los programas/ Microsoft SQL Server 2008/ Herramientas de configuración/
Administrador de configuración de SQL Server, esto para habilitar los protocolos Named Pipes y TCP/IP. Muy
importante es que TODAS estas operaciones se repiten en el servidor numero 2
Replicación de Bases de Datos con SQL SERVER 2008
13. Ahora si podemos iniciar nuestra replicación, la base de datos a replicar será Northwind, el proceso de
replicación de SQL 2008 trabaja con 3 elementos:
1. En primera instancia está el distribuidor que es el encargado de manejar todo el trámite de la replicación,
donde resida el distribuidor se creara la base de datos distribution que es la base de datos que guarda la
información de la replicación.
2. Luego tenemos el publicador que es el que ofrece su base de datos para transmitirla o replicarla a los
subscriptores es decir crea el artículo que es el elemento a replicar.
Replicación de Bases de Datos con SQL SERVER 2008
3. Por ultimo estan los subscriptores que son los que reciben los
datos, la suscripción puede ser por inserción o extracción, cuando
es por inserción el mismo distribuidor se encarga de llevar os
datos hacia el subscriptor sin que este haga ningún esfuerzo
mientras que por extracción requiere que el subscriptor haga el
trámite de petición de datos para la replicación .
14. Lo primero que tenemos que hacer para la replicación es buscar el contenedor de replicación y crear el
servidor distribuidor, para eso hacemos clic derecho configurar distribuidor y se genera un Asistente
que nos ayudara con el proceso de configuracion…
Replicación de Bases de Datos con SQL SERVER 2008
15. Que servidor va a ser el que vamos a configurar como distribuidor. El proceso de replicación no
trabaja si no está habilitado el agente de SQL server por lo que en este paso confirma que los
servicios se inicien automáticamente
Replicación de Bases de Datos con SQL SERVER 2008
16. Luego necesitamos indicarle la carpeta donde se colocaran los elementos de replicación para ser trasladados a los
subscriptores, para esto se necesita darle la información de un folder compartido
Replicación de Bases de Datos con SQL SERVER 2008
17. Para eso entonces hacemos el folder para compartirlo en la red, en este caso usamos el nombre everyone y le
damos más de los permisos necesarios para que funcione nuestra demostración y modificamos el path de la
imagen anterior.
Replicación de Bases de Datos con SQL SERVER 2008
18. En este paso nos da información de la base de datos distribution que será quien manejara la replicación
y donde se guardara el archivo de base de datos
Replicación de Bases de Datos con SQL SERVER 2008
19. En este paso habilitamos a nuestro mismo servidor para que se convierta en un publicador
Replicación de Bases de Datos con SQL SERVER 2008
20. Todos los procesos de replicación se pueden configurar a traves de código script para utilizar después
Replicación de Bases de Datos con SQL SERVER 2008
21. Ahora nos pide donde va a guardar el código que va a generar…
Replicación de Bases de Datos con SQL SERVER 2008
22. Tenemos lista la distribución…
Replicación de Bases de Datos con SQL SERVER 2008
23. Utilizaremos nuestro mismo servidor SRV-TRES para crear nuestra primera aplicación, vamos a
local publications y botón derecho New Publication…
Replicación de Bases de Datos con SQL SERVER 2008
24. Al momento de generar la publicación el primer paso es indicar que base de datos vamos a
replicar
Replicación de Bases de Datos con SQL SERVER 2008
25. Vamos a elegir entre los 4 tipos de replicación,
• la primera que es instantáneas lo que hace es
enviar toda la replicación de la base de datos a
ciertos intervalos programados, se produce en
una sola vía y es la más pesada ya que cada vez
que replica envía toda la base de datos al
subscriptor
• la transaccional mejora el proceso ya que solo
envía las modificaciones al suscriptor pero sigue
siendo en una sola vía,
• la publicación transaccional con suscriptores
actualizables permite que el suscriptor pueda
hacer cambios que también sean para el
publicador
• La de mezcla es cambios del publicador y
suscriptor siendo que los cambios se repliquen
entre sí, en este ejemplo se utilizara la
transaccional
Replicación de Bases de Datos con SQL SERVER 2008
26. Elegimos los elementos de la base de datos que se replicaran, esto se conoce como artículos, en
este caso elegiremos todas las tablas, podemos utilizar ciertas columnas que se llamaría filtro
vertical…
Replicación de Bases de Datos con SQL SERVER 2008
27. Aplicamos un filtro horizontal en la que le diremos que datos se repliquen por medio de
condiciones como la where, en este caso no usaremos esto
Replicación de Bases de Datos con SQL SERVER 2008
28. Toda replicación trasnacional parte inicialmente de una replicación instantánea que le replique
toda la base de datos al suscriptor y a partir de ahí la transaccional ya solo llevara los cambios, así
que habilitamos la casilla de crear instantánea inmediatamente
Replicación de Bases de Datos con SQL SERVER 2008
29. El agente de instantáneas debe iniciarse con una cuenta, así que le indicamos que
cuenta ejecutara el agente de instantánea, escribimos una cuenta y contraseña para el
proceso de privilegios de la cuenta de SQL server para levantar al agente de
instantáneas
Replicación de Bases de Datos con SQL SERVER 2008
30. Ya está lista nuestra publicación, nuevamente indica si generamos el script y que nombre le vamos
a dar y finalizamos…
Replicación de Bases de Datos con SQL SERVER 2008
31. Ahora vamos s proceder a realizar nuestra suscripción, para esto vamos al servidor 2 y a
servidores locales en local subscriptions botón derecho y New Subscriptors
Replicación de Bases de Datos con SQL SERVER 2008
32. Le vamos a indicar quien va a
ser el publicador, para esto lo
vamos a buscar …
Replicación de Bases de Datos con SQL SERVER 2008
33. Tenemos la publicación que reside en el servidor tres…
Replicación de Bases de Datos con SQL SERVER 2008
34. Ahora nos solicita el tipo de suscripción que vamos a hacer ya sea por inserción o extracción, para
evitar problema lo vamos a hacer por inserción para que todos los agentes trabajen sobre el
distribuidor, en nuestro caso lo haremos por extracción
Replicación de Bases de Datos con SQL SERVER 2008
35. Ahora en el suscriptor debemos indicarle la base de datos donde se depositaran los datos de la
replicación, así que creamos una nueva base de datos que llamaremos northwind
Replicación de Bases de Datos con SQL SERVER 2008
36. Ahora le indicaremos los usuarios que manejaran los servicios de los agentes, la cuenta no es de
dominio sino de administrador local de la maquina con la que se levantaron los servicios de sql server
agent
Replicación de Bases de Datos con SQL SERVER 2008
37. Como se manejara la sincronización, la dejamos continuamente para que cuando se efectúe algún
cambio se traslade inmediatamente al suscriptor
Replicación de Bases de Datos con SQL SERVER 2008
38. De nuevo nos pide si queremos generar un
script y ya está terminada nuestra
suscripción
Replicación de Bases de Datos con SQL SERVER 2008
39. Y el proceso de replicación está
terminado, para poder revisarlo
podemos ir a bases de datos y
expandimos Northwind y tablas
y vemos que aparecen las tablas
de la base de datos…
Replicación de Bases de Datos con SQL SERVER 2008
40. Adicionalmente vamos al servidor 1 clic derecho en Nortwind – Launch Replication Monitor
podemos ver los estados de los agentes y verificamos que estén funcionando correctamente,
vemos la publicación, la suscripción está corriendo y también el agente de instantáneas
Replicación de Bases de Datos con SQL SERVER 2008
42. Replicación de Bases de Datos
con SQL SERVER 2008
GRACIAS POR SU ATENCION
Expuso:
Ing. Rafael Puente y Ing. Fernando Casas De la Torre
Catedrático:
Dr. Jose Ruiz Ayala