Download Presentación de PowerPoint - Inicio

Document related concepts

Microsoft SQL Server wikipedia , lookup

Middleware wikipedia , lookup

Transcript
Base de datos Distribuidas
Replicación de Datos en SQL Server
M.C. Daniel Esparza Soto
1
Introducción
La replicación de Datos consiste en el transporte de
datos entre dos o más servidores, permitiendo que
ciertos datos de la base de datos estén almacenados en
más de un sitio, y así aumentar la disponibilidad de los
datos y mejorar el rendimiento de las consultas globales.
El modelo de replicación está formado por:
1.- publicador,
2.- distribuidor,
3.- suscriptor,
4-. publicación,
5-. artículo
6-. suscripción;
7.- y varios agentes responsabilizados de copiar los datos
entre el publicador y el suscriptor.
M.C. Daniel Esparza Soto
2
Introducción
La replicación de datos permite que ciertos datos de la base de datos
sean almacenados en más de un sitio, y su principal utilidad es que
permite aumentar la disponibilidad de los datos y mejora el
funcionamiento de las consultas globales a la base de datos.
La replicación en SQL Server consiste, en el transporte de datos
entre dos o más instancias de servidores. Para ello SQL Server
brinda un conjunto de soluciones que permite copiar, distribuir y
posiblemente modificar datos de toda la organización.
Se incluyen, además, varios métodos y opciones para el diseño,
implementación, supervisión y administración de la replicación, que
le ofrecen la funcionalidad y flexibilidad necesarias para distribuir
datos y mantener su coherencia.
M.C. Daniel Esparza Soto
3
Beneficios
1.- Los datos están mas cerca del usuario.
2.- Elimina el impacto de ambientes OLAP
(procesamientos analíticos en línea) de lecturas
intensivas de los los ambientes OLTP (procesamientos
de transacciones en línea) de transacciones intensivas.
3.- Reduce conflictos entre sitios múltiples que intentan
trabajar con la misma información.
4.- Los sitios de base de datos pueden operar de manera
autonomía con los datos duplicados. Esto significa que
pueden definir sus propias reglas, procedimientos y vistas
sobre copias de datos.
M.C. Daniel Esparza Soto
4
Factores de la distribución de datos
Hay muchos factores a considerar cuando se
trata de decidir sobre un método en particular
para distribuir sus datos. Estos comprenden :
1.- autonomía del sitio,
2.- la consistencia transaccional y
3.- la latencia.
M.C. Daniel Esparza Soto
5
Autonomía
Depende de las respuestas a las siguientes
preguntas:
¿Qué tanta independencia debe tener sus sitios
suscriptores de la base de datos publicada?
¿Por cuánto tiempo es buena una versión de
datos en un sitio suscriptor?
¿con que frecuencia es buena una versión de
datos en un sitio suscriptor?
¿con que frecuencia es necesario conectarse al
sitio publicador y actualizar sus copias de datos?
M.C. Daniel Esparza Soto
6
Consistencia transaccional
Se refiere a las transacciones mismas:
¿Es necesario aplicar al mismo tiempo todas las
transacciones almacenadas, o no es necesario
en lo absoluto?
Si hay demora en las transacciones, pero éstas
se procesan en orden ¿es aceptable?
¿Se están aplicando las transacciones de
manera que no tengan conflictos con la
consistencia de sus datos?
M.C. Daniel Esparza Soto
7
Latencia
Se refiere al momento en que se aplican las
copias de datos.
¿Necesitan sus datos estar 100 por ciento en
sincronía el 100 por ciento del tiempo, o es
aceptable actualizar los datos en forma
periódica?
Si puede tener cierta latencia, ¿De que tamaño
es aceptable un rezago?
M.C. Daniel Esparza Soto
8
Consideraciones para la duplicación de
datos
Se debe tener las siguientes consideraciones
para poder elegir el modelo de replicación
adecuado:
1.- Relacionado con los datos
2.- Relacionado con los usuarios
3.- Relacionado con el tiempo de actualización
4.- Relacionado con la red
M.C. Daniel Esparza Soto
9
Consideraciones para la duplicación de
datos
1.- Relacionado con los datos
¿Qué voy a publicar?
¿Reciben los suscriptores todos los datos o sólo
subconjuntos de datos?
¿Se deben hacer particiones de mis datos por
valores de región o código postal?
¿Debo permitir que los suscriptores de mis datos
me envíen actualizaciones?
Si permito actualizaciones, ¿Cómo deben
implementarse?
M.C. Daniel Esparza Soto
10
Consideraciones para la duplicación de
datos
2.- Relacionado con los usuarios:
¿Quién puede tener acceso a mis datos?
¿Están estos usuarios en línea o fuera de línea?
¿Se encuentran distribuidos en todo el país y conectados
mediante líneas telefónicas caras?
3.- Relacionados con el tiempo de actualización:
¿Con que frecuencia debo sincronizar mis datos con los
suscriptores?
¿Con que frecuencia obtienen los cambios que les
envío?
M.C. Daniel Esparza Soto
11
Consideraciones para la duplicación de
datos
4.- Relacionado con la red:
¿Cómo luce la red?
¿La red es rápida?
¿Debo hacer mas particiones de datos para
minimizar el tráfico ligado a la duplicación?
¿Es confiable la red?
¿Están disponibles todo el tiempo todos los
nodos de la red?
M.C. Daniel Esparza Soto
12
Componentes del modelo de replicación
En la replicación se utiliza una metáfora de la
industria de la publicación para representar los
componentes y procesos de una topología de
replicación. De esta forma el modelo se
compone, básicamente, de los siguientes
elementos:
1-. artículo
2-. publicación,
3-. suscripción;
4.- publicador,
5.- distribuidor,
6.- suscriptor,
M.C. Daniel Esparza Soto
13
1.- Artículos
Un articulo es una sola tabla o subconjunto de datos de
una tabla. Los artículos se agrupan en publicaciones.
Para publicar un subconjunto de datos en un articulo,
debe usar algún tipo de filtro para hacer una partición de
datos de una tabla. Puede emplear particiones
verticales, horizontales o de ambas. Además de utilizar
instrucciones SQL para crear los artículos, puede
emplear procedimientos almacenados de sistema.
M.C. Daniel Esparza Soto
14
Reglas para crear artículos
1.- Las columnas identity se duplican, pero la
propiedad no. Cuando ocurre una sincronización
inicial, los valores de la columna identity se
copian como valores enteros.
2.- Los tipos de datos TimeStamp se usan para
indicar la secuencia de la actividad de SQL
server sobre una fila de datos. Proporcionan una
historia o genealogía de los cambios realizados a
esa fila. Estos valores se duplican como tipos
binarios.
3.- Los tipos de datos definidos por el usuario
pueden ser duplicados solamente si también
existen en la base de datos suscriptor.
M.C. Daniel Esparza Soto
15
2.- Publicaciones
Las publicaciones se conforman de uno o más
artículos y son la base de una suscripción. Al
realizar una suscripción se está suscribiendo a
toda una publicación. Cuando está usted suscrito
a una suscripción, puede leer artículos
individuales. Con las publicaciones es posible
mantener la integridad referencial debido a que
todos los artículos de esa sola publicación se
sincronizan al mismo tiempo. Puede crear tantas
publicaciones por base de datos como desee.
M.C. Daniel Esparza Soto
16
Restricciones de publicación
Las tablas deben tener una clave principal para
asegurar la integridad (la excepción es cuando usa la
duplicación instantánea).
No se pueden duplicar las siguientes BD de sistema:
master, model, msdb, tempdb, distribution.
Las publicaciones podrían no abarcar multiples bases de
datos. Cada publicación sólo puede contener artículos
de una base de datos.
Los tipos de datos IMAGE, TEXT y NTEXT tienen manejo
limitado debido a que son tipos de datos que se
almacenan por separado de la tablas y no se registran
17
M.C. Daniel Esparza
Soto
cuando
cambian.
Servidores
La replicación de datos es un
asunto exclusivamente entre
servidores de datos, en nuestro
caso hablamos de servidores
SQL Server. Los servidores SQL
Server pueden desempeñar uno
o varios de los siguientes roles:
1.- El publicador es un servidor
que pone los datos a disposición
de otros servidores para poder
replicarlos.
2.- El distribuidor es un servidor
que aloja la base de datos de
distribución y almacena los datos
históricos, transacciones y
metadatos.
3.- Los suscriptores reciben los
datos replicados.
M.C. Daniel Esparza Soto
18
4.-Publicador
Una publicación es un conjunto de artículos (este
concepto: "artículo de una publicación", es diferente del
concepto "artículo o registro de una base de datos", como
explicaremos más adelante) de una base de datos. Esta
agrupación de varios artículos facilita especificar un
conjunto de datos relacionados lógicamente y los objetos
de bases de datos que desea replicar conjuntamente.
Un artículo de una publicación puede ser una tabla de
datos la cual puede contar con todas las filas o algunas
(filtrado horizontal) y simultaneamente contar de todas las
columnas o algunas (filtrado vertical), un procedimiento
almacenado, una definición de vista, la ejecución de un
procedimiento almacenado, una vista, una vista indexada
o una función definida por el usuario.
M.C. Daniel Esparza Soto
19
4.-Publicador
Una suscripción es una petición de copia de datos o de
objetos de base de datos para replicar. Una suscripción
define qué publicación se recibirá, dónde y cuándo.
Las suscripciones pueden ser de inserción o de
extracción; y una publicación puede admitir una
combinación de suscripciones de inserción y extracción.
El publicador (en las suscripciones de inserción) o el
suscriptor (en las suscripciones de extracción) solicita la
sincronización o distribución de datos de una suscripción.
M.C. Daniel Esparza Soto
20
4.-Publicador
El publicador puede disponer de una o más
publicaciones, de las cuales los suscriptores se
suscriben a las publicaciones que necesitan,
nunca a artículos individuales de una publicación.
El publicador, además, detecta qué datos han
cambiado durante la replicación transaccional y
mantiene información acerca de todas las
publicaciones del sitio.
M.C. Daniel Esparza Soto
21
5.- Distribuidor
La función del distribuidor varía según la
metodología de replicación implementada. En
ocasiones se configura como distribuidor el
mismo publicador y se le denomina distribuidor
local. En el resto de los casos el distribuidor será
remoto, pudiendo coincidir en algún caso con un
suscriptor.
M.C. Daniel Esparza Soto
22
6.- Suscriptores
Los suscriptores además de obtener sus
suscripciones, en dependencia del tipo y
opciones de replicación elegidas, puede devolver
datos modificados al publicador. Además puede
tener sus propias publicaciones.
M.C. Daniel Esparza Soto
23
Tipos de suscripciones
Cuanto trabaja con publicaciones y
suscripciones, puede configurar suscripciones
como:
1.- suscripción de inserción .
2.- suscripción de extracción.
La verdadera diferencia entre estos dos métodos
de transferencia de datos es donde se lleva a
cabo la administración de la suscripción.
M.C. Daniel Esparza Soto
24
Suscripción de inserción
Cuando configura una suscripción al mismo
tiempo que su publicación, en esencia está
configurando para una suscripción de inserción.
Esto ayuda a centralizar la administración debido
a que las suscripción está definida en el
publicador junto con el calendario de
sincronización de suscriptores. Toda la
administración de la suscripción se maneja
desde el publicador. Los datos se insertan al
suscriptor cuando el publicador decide enviarlos.
M.C. Daniel Esparza Soto
25
Suscripción de inserción
Las suscripciones de inserción son muy útiles
cuando sus suscriptores requieren que se les
envíe las actualizaciones tan pronto como
ocurran. Las suscripciones de inserción permiten
también un nivel de seguridad más alto ya que el
publicador decide a quién se le permite
suscribirse y cuándo. Las suscripciones de
inserción tienen una sobrecarga adicional en la
base de datos de distribución ya que realiza la
administración de duplicaciones.
M.C. Daniel Esparza Soto
26
Suscripción de Extracción
Está conformada por cada suscripción individual. Los
suscriptores inician la transferencia de información de
manera periódica. Esto es útil para aplicaciones que
permiten un nivel de seguridad más bajo. El publicador
puede permitir que ciertos suscriptores extraigan
información, o permitir suscripciones anónimas. Las
suscripciones de extracción también son útiles en
situaciones en las que podría haber un gran numero de
suscriptores. Las soluciones basadas en internet son
buenas candidatas para este tipo.
Solo los suscriptores de SQL server pueden extraer
suscripciones. Otras base de datos como access, oracle
y sybase pueden usar la duplicación de SQL server sólo
en escenarios de suscripciones de inserción.
M.C. Daniel Esparza Soto
27
Metodología de distribución
Teniendo en mente la latencia, la consistencia
transaccional y la autonomía de sitio, existen los
siguientes métodos para implementar la
duplicación en SQL Server:
1.- Duplicación de mezcla.
2.- Duplicación de instantánea.
3.- Duplicación transaccional.
M.C. Daniel Esparza Soto
28
1.- Duplicación de mezcla.
La duplicación de mezcla tiene la mas alta autonomía de
sitio. También puede permitirse la mayoría de la
latencia, pero tiene consistencia transaccional mas
baja.
La duplicación de mezcla permite que cada sitio haga
cambios a su copia local de datos duplicados. En algún
punto en el tiempo, los cambios del sitio se envían a la
base de datos publicadora, donde se mezclan con los
cambios de otros sitios.
Tarde o temprano, todos los sitios recibirán las
actualizaciones de todos los demás sitios. Esto se
conoce como convergencia de datos. Los cambios de
todos los sitios convergerán, y tarde o temprano todos los
sitios tendrán la misma información.
M.C. Daniel Esparza Soto
29
1.- Duplicación de mezcla.
Aquí la consistencia transaccional se tira por la ventana
debido a que diferentes sitios podrán estar actualizandos
datos en momentos distintos. Un sitio en particular no
espera a que sus actualizaciones se envíen a todos los
demás sitios antes de continuar su trabajo. En otras
palabras, se garantiza que todos los sitios converjan al
mismo conjunto de resultados, pero no necesariamente al
mismo tiempo.
M.C. Daniel Esparza Soto
30
1.- Duplicación de mezcla.
¿Quienes deben usar usar la duplicación de mezcla?
Debido a los conflictos potenciales que pueden ocurrir, la
duplicación se adapta mejor a ambientes en los que
están minimizadas las posibilidades de estos conflictos,
por ejemplo, los sitios que tienden a hacer cambios solo
a sus registros, pero que necesitan la información de
otras ubicaciones:
-- Base de datos de comandancias policíacas.
-- Sucursales de comercios.
-- Instituciones educativas.
M.C. Daniel Esparza Soto
31
2.- Duplicación de instantánea.
En la duplicación de instantánea, una copia completa de
los elementos a duplicar se copian del servidor publicador
a la base de datos suscriptor. Este tipo de duplicación es
el más fácil de configurar y dar mantenimiento.
Tiene un alto grado de autonomía de sitio. Además
garantiza la consistencia transaccional debido a que
todas las transacciones se aplican sólo en el servidor
publicador. La autonomía de sitio puede ser muy útil
para ubicaciones que necesitan versiones de sólo lectura
de datos y no les importa una elevada cantidad de
latencia.
M.C. Daniel Esparza Soto
32
2.- Duplicación de instantanea.
Al usar la duplicación de instantánea, la base de datos
suscriptor debe considerar los datos como de sólo
lectura. Esto se debe a que cualquier cambio a los datos
no se enviará de vuelta al a BD publicador. Además,
todos los cambios que pudieran haberse realizado a los
datos se borrarán cuando descargue la siguiente
instantánea.
Candidatos a la duplicación instantánea:
- Los servidores OLAP.
- Páginas web de consulta de información.
- resultados de sorteos.
- Consulta de calificaciones.
- Consulta tarjetas de crédito.
M.C. Daniel Esparza Soto
33
2b.- Duplicación de instántanea con
suscriptores de actualización inmediata.
Con esta metodología se tiene cierta autonomía a que la
base de datos suscriptor no tiene que estar todo el
tiempo en contacto con la base de datos publicador. El
único momento en que el suscriptor está trabajando con
el publicadores es cuando descarga una instantánea o
cuando está utilizando 2PC (confirmación en dos fases)
para actualizar una transacción tanto en la ubicación local
(suscriptor) como en la BD publicador.
M.C. Daniel Esparza Soto
34
2b.- Duplicación de instántanea con
suscriptores de actualización inmediata.
Esto mantiene un alto grado de consistencia
transaccional, ya que las transacciones deben aplicarse
tanto en la BD suscriptor con en la BD publicador. El
hecho de que otros suscriptores pudiesen hacer cambios
a la base de datos publicador desde la última descarga
es irrelevante.
La consistencia se mantiene por el hecho de que la
transacción fracasará si los datos que se están
modificando tanto en el publicacdor como en el suscriptor
son diferentes.
M.C. Daniel Esparza Soto
35
2b.- Duplicación de instantánea con
suscriptores de actualización inmediata.
El servidor suscriptor puede comenzar a trabajar de
inmediato con los datos modificados ya que sabe que
actualizó con éxito el servidor publicador. El servidor
publicador hará converger la información, y en su
momento todos los servidores involucrados en la
duplicación recibirán una instantánea con los cambios.
Es útil en escenarios en los que tienen lugar unas
cuantas modificaciones ocacionales en los servidores
suscriptor. Entre mas tiempo tome la latencia, es mas
probable que falle su confirmación en dos fases(2PC).
Esto se debe a que hay una mayor probabilidad de que
los datos hayan cambiado en el publicador, pero aún no
se haya enviado un duplicado al suscriptor.
M.C. Daniel Esparza Soto
36
3.- Duplicación transaccional.
En esta metodología, las transacciones se envían del
publicador a los suscriptores. Este tipo de duplicación es
de una sola vía. La única forma de que un suscriptor
pueda hacer cambios a los datos es directamente a la
base de datos publicador. Entonces, el cambio se
duplicará de vuelta a los suscriptores en la siguiente
sincronización.
Este tipo de duplicación permite una autonomía media.
El suscriptor debe tratar los datos como de solo lectura.
Esto es importante ya que los cambios hechos a los
datos duplicados podrían no permitir que se realicen las
futuras transacciones duplicadas.
M.C. Daniel Esparza Soto
37
3.- Duplicación transaccional.
En este tipo de publicación comprende una latencia
media. El suscriptor no tiene que estar siempre en
contacto con el publicador, aunque son útiles las
sincronizaciones regulares, y la cantidad de datos que
se mueven es relativamente pequeña. La duplicación
de instantánea debe mover al suscriptor todos los datos
publicados del publicador hayan o no hecho
modificaciones. En la duplicación transaccional, solo se
envían a los suscriptores las transacciones que se
realizaron.
La duplicación transaccional es muy útil en escenarios en
los que los suscriptores puedan tratar sus datos como de
solo lectura, pero necesitan cambios a los datos con una
cantidad mínima de latencia.
Un
ejemplo es en un sistema de procesamientos de
M.C. Daniel Esparza Soto
38
3b.- Duplicación transaccional con
suscriptores de actualización inmediata
Aquí se puede perder aún más autonomía en los sitios
suscriptores, pero se minimiza la latencia. Con esta
metodología, usted emplea junto con la confirmación de
dos fases(2pc) la duplicación transaccional descrita en la
sección anterior.
Cuando una BD suscriptor intenta hacer cambios a los
datos, el cambio se escribe también en la BD publicador
en una confirmación en dos fases. Esto significa que el
cambio se escribe al mismo tiempo tanto en el suscriptor
como en el publicador. Esto garantiza la consistencia
transaccional. El cambio convergerá entonces con otros
suscriptores que actualizan y se enviará de vuelta a todas
las BD suscriptor.
M.C. Daniel Esparza Soto
3b.- Duplicación transaccional con
suscriptores de actualización inmediata
Esto tiene menos latencia que usar una
duplicación de instantaneas con suscriptores de
actualización inmediata, debido a que las
transacciones que se están duplicando son
mucho más pequeñas (y rápidas de mover) que
sincronizar una instantánea completa de sus
datos.
Escenarios útiles:
- Sistemas de resevaciones de bajo volumen. En
este tipo de sistema, un suscriptor puede reviar
una agenda de disponibilidad y luego intentar
hacer una reservación.
M.C. Daniel Esparza Soto
¿Cómo funciona la duplicación?
Se maneja mediante cuatro diferentes agentes,
cada uno tiene una labor especializada por
realizar, cuando se ponen juntos todos los
agentes, se obtiene la duplicación:
1.- Agente de distribución (Distribution Agent)
2.- Agente de lector del registro ( Log reader
Agent).
3.- Agente de mezcla (Merge Agent)
4.- Agente de instántanea (Snapshot Agent)
M.C. Daniel Esparza Soto
¿Cómo funciona la duplicación?
1.- Agente de distribución (Distribution
Agent):Mueve la información de la BD
distribución hacia los suscriptores.
2.- Agente de lector del registro ( Log reader
Agent): Monitorea el registro de transacciones de
todas las BD publicadas que lo utilizan para
duplicación. Cuando encuentran transacciones
que son parte de una duplicación, las copia a la
BD de distribución en donde pueden aplicarse a
los sucriptores por medio del agente de
distribución.
M.C. Daniel Esparza Soto
¿Cómo funciona la duplicación?
3.- Agente de mezcla (Merge Agent). Mezcla
modificaciones desde sitios múltiples.
4.- Agente de instántanea (Snapshot Agent).
Mueve un instantánea de los datos antes de que
pueda comenzar la duplicación. Esto es
obligatorio. Si en el suscriptor no existe una
instantánea de datos, no es posible aplicar
transacciones al suscriptor. También se emplea
para los diversos tipos de duplicación de
instantánea.
M.C. Daniel Esparza Soto
Funcionamiento de la duplicación de
mezcla
El gente de mezcla puede vivir en el servidor de
distribución o en cada servidor suscriptor. En un
escenario de inserción, el agente de mezcla vive
en el servidor distribución. En los escenarios de
extracción, el agente vive en cada suscriptor.
Agente de
Mezcla
Susc. Inserción
Suscripición
Distribución
Susc. Extracción
Distribución
M.C. Daniel Esparza Soto
Agente de
Mezcla
Suscripición
Pasos en una duplicación de mezcla
Distribución
Publicador
Suscriptor
BD de
Distribución
BD de
publicación
5
BD de
Suscriptor
1
Agente de
Instantáneas
Agente de
Mezcla de
Inserción
Carpeta de
trabajo de
distribución
M.C. Daniel Esparza Soto
4
2
Agente de
mezcla de
extracción
1
Pasos en una duplicación de mezcla
1.- El agente de instantanea (que vive en el servidor de
distribución) toma una instantánea inicial de los datos y
los mueve a los suscriptores. Recuerde que los
suscriptores deben primero sincronizarse con los
publicadores para que comience la duplicación (con
excepción de la duplicación de instantáneas).
2.- Se crea una carpeta de trabajo de distribución en le
servidor de distribución para manejar las mezclas.
3.- Ahora comienza la duplicación.
4.- El agente de mezcla toma modificaciones de los
publicadores y las aplica a los suscriptores.
5.- El agente de mezcla toma modificaciones de los
suscriptores y las aplica a los publicadores.
6.- El agente de mezcla recibe cualquier conflicto de
actualización
y toma la acción adecuada.
M.C. Daniel Esparza Soto
Cambios al esquema en Duplicación de
mezcla
Para que la duplicación de mezcla funcione en forma
apropiada, se realizan algunos cambios al esquema de
tablas así como a la base de datos de
distribución(distribution).
Estos cambios se hacen para permitir que SQL Server
lleve a cabo la resolución de conflictos.
M.C. Daniel Esparza Soto
Cambios al esquema en Duplicación de
mezcla
Tenga en cambio los siguentes cambios al esquema:
1.- Se incorporan tablas del sistema a la carpeta de
trabajo de distribución para el rastreo de cambios durante
la sincronización y la resolución de conflictos.
2.- SQL Server crea trigger tanto en el servidor de
publicación como en los de suscripción y se accionan
cuando ocurre una modificación de datos en las tablas
comprendidas en la duplicación.
3.- SQL Server server crea una nueva columna de tipo
UNIQUEIDENTIFIER para cada fila en las tablas que se
están duplicando y de esta manera se identifica de forma
unica esa fila, de manera que cuando se actualice el
registro de diferentes fuentes, puede diferenciar las
distintas
actualizaciones.
M.C. Daniel Esparza
Soto
Duplicación de mezcla
La duplicación de mezcla se utiliza mejor cuando
hay pocas probabilidades de que se realicen
cambios a los mismos registros por parte de
suscriptores diferentes. Las tablas segmentadas
en forma horizontal son utiles y puede crear y
suscribirse a publicaciones por separado con
base en códigos de región o algún mecanismo
de filtrar datos. No se pueden hacer particiones
verticales.
M.C. Daniel Esparza Soto
Solución de conflictos de actualización
Cuando se permiten realizar actualizaciones a los
mismos datos en diferentes ubicaciones SQL Server
hace lo siguiente:
- Se emplean las tablas del sistema que están
almacenadas en la carpeta de trabajo de distribución
(servidor distribución) para rastrear todos los cambios a
una fila. Dichos cambios se listan y cada uno tiene un
ROWGUID. A este historial de modificaciones de un
registro se le denomina Linaje del registro.
- Por medio del linaje, el agente de mezcla puede
evaluar tanto los valores actuales como los que llegan y
resolver en forma automática conflictos con base en las
prioridades que el administrador hayan asignado, las
cuales se almacenan como desencadenadores.
M.C. Daniel Esparza Soto
Funcionamiento de la duplicación de
instantánea
Cuando se una duplicación instantanea, copia el articulo
entero o la publicación entera del publicador al suscriptor.
Esto incluye a la duplicación de instantáneas con
suscriptores de actualización inmediata. Las
actualizaciones se hacen tanto en el suscriptor como en
el publicador, pero cuando ocurre una sincronización, los
datos del suscriptor se reemplazan por completo por el
artículo entrante.
M.C. Daniel Esparza Soto
Funcionamiento de la duplicación de
instantánea
En la duplicación de instantánea no hay agente de
mezcla; sin embargo, se emplea el agente de
distribución. Si está usando una suscripción de
extracción, el agente de distribución se encuentra en el
servidor suscriptor. Si esta usando una suscripción de
inserción, el agente de distribución se encuentra en el
servidor de distribución.
Agente de
distribución
Susc. Inserción
Suscripición
Distribución
Susc. Extracción
M.C. Daniel Esparza Soto
Distribución
Agente de
distribución
Suscripición
Pasos de la duplicación de instantánea
Distribución
Publicador
Sucriptor
BD de
Distribución
BD de
publicación
BD de
Suscriptor
3
1
Agente de
Instantáneas
2
Agente de
distribución
de Inserción
Carpeta de
trabajo de
distribución
M.C. Daniel Esparza Soto
3
Agente de
distribución
de extracción
Pasos de la duplicación de instantánea
1.- El agente de instantáneas lee el artículo
publicado y crea el esquema de tabla y los datos
en la carpeta de trabajo de distribución.
2.- El agente de distribución lee este esquema y
reconstruye las tablas en el suscriptor.
3.- El agente de distribución mueve entonces los
datos a las tablas recién creadas en el suscriptor.
4.- Se crean nuevos índices sobre recién
sincronizadas base de datos de suscripción.
M.C. Daniel Esparza Soto
Duplicación de instantánea
La duplicación de instantánea ocurre sobre
demanda, esto significa que la instantánea de los
datos se almacenan en la base de datos de
distribuidor, como ocurre con el algoritmo de
almacenamiento y expedición que se emplean en
la duplicación con base en transacciones.
En la base de datos de distribución sólo se
almacena información de estado de una
instantánea. El agente de instantánea hace todo
el trabajo al momento en que se inicia la
sincronización.
M.C. Daniel Esparza Soto
Aspectos de la duplicación
transaccional
La duplicación basada en transacciones sólo
copia a la base de datos de distribución las
transacciones que ocurrieron en la base de datos
publicadas. Las actualizaciones se aplican
entonces a la base de datos de suscripción. Por
lo general en el momento en que ocurren. Esto
reduce la latencia. Debe pensar en la base de
datos de suscripción como de sólo lectura, ya
que este tipo de duplicación es de una sola vía.
Los cambios a los datos sólo pueden hacerse en
el publicador.
M.C. Daniel Esparza Soto
Funcionamiento de la duplicación
transaccional
Aquí ya no hay agente de mezcla; sin embargo,
hay un agente de lector de registro, tenga en
cuenta que el agente de instantánea está aun
operando. Debe tener una base para aplicar las
transacciones, y el agente de instantáneas lo
realizará. Aquí se usa el agente de distribución.
Si está usando una suscripción de inserción, el
agente de distribución se encuentra en el
servidor de suscripción. Si emplea una
suscripción de extracción, el agente de
distribución se ubica en el servidor de
distribución.
M.C. Daniel Esparza Soto
Pasos de la duplicación transaccional
Publicador
Distribución
Sucriptor
BD de
Distribución
BD de
publicación
BD de
Suscriptor
A. Lector del
registro
Agente de
distribución
de Inserción
Carpeta de
trabajo de
distribución
M.C. Daniel Esparza Soto
Agente de
distribución
de extracción
Pasos de la duplicación transaccional
1.- El agente de instantánea lee el artículo
publicado y crea el esquema de tablas y los
datos en la carpeta de trabajo de distribución.
2.- El agente de distribución lee este esquema y
construye las tablas en el suscriptor.
3.- El agente de distribución mueve entonces los
datos a las tablas recién creadas en el suscriptor.
4.- Se crean de nuevo los indices sobre la recién
sincronizada BD de suscripción.
5.- Ahora puede comenzar la duplicación
transaccional normal.
M.C. Daniel Esparza Soto
Pasos de la duplicación transaccional
6.- El agente lector del registro observa el
registro de transacciones de la BD publicada.
Cuando encuentra una transacción, la mueve a
la BD distribución, en donde se almancenará
hasta que comience el siguiente proceso de
sincronización.
7.- Cuando llama el proceso de sincronización
(ya sea por una inserción desde el distribuidor o
una extracción desde el sucriptor), el agente de
distribución lee la transacción y la aplica después
a la BD de suscripción.
M.C. Daniel Esparza Soto
Escenarios de duplicación
La duplicación puede ser generada en los
diferentes escenarios:
1.- Publicador central.
2.- Publicador central con un distribuidor remoto.
3.- Suscriptor publicador.
4.- Suscriptor central.
5.- Publicadores y suscriptores múltiples.
M.C. Daniel Esparza Soto
1.- Publicador central.
Puede reducir el impacto de los servicios OLAP
del ambiente OLTP. En este escenario, el
servidor publicador es también el servidor
distribución. Tenga presente que entre mas
suscriptores tenga, será mayor el impacto en el
servidr de distribución. Este impacto puede
reducirse en cierto modo mediante una
suscripción de extracción, en la que el agente de
distribución reside en cada suscriptor.
M.C. Daniel Esparza Soto
1.- Publicador central.
Servidor de
publicación
Servidor de
distribución
Servidor de
suscripción
M.C. Daniel Esparza Soto
Servidor de
suscripción
2.- Publicador central con un
distribuidor remoto.
Puede reducir aún más el impacto de la base de
datos de distribución en su ambiente OLTP de
gran volumen moviéndolo a su propio servidor. Al
igual que antes, un solo servidor de distribución
puede manejar múltiples publicadores y
suscriptores. Éste es el escenario preferido en
situaciones con publicadores y suscriptores
múltiples.
M.C. Daniel Esparza Soto
2.- Publicador central con un
distribuidor remoto.
Servidor de
publicación
Servidor de
publicación
Servidor de
distribución
Servidor de
suscripción
M.C. Daniel Esparza Soto
Servidor de
suscripción
3.- Suscriptor publicador.
En un escenario de suscriptor publicador, el
servidor suscriptor es también servidor
publicador. Esto puede ser de gran beneficio
cuando tiene un enlace lento y costoso entre el
publicador principal y un grupo de suscriptores.
En este escenario, el suscriptor actúa también
como publicador para una serie de base de datos
de suscripción. De esta manera, puede minimizar
el costo de enlaces lentos mediante la
actualización de un solo suscriptor y después
duplicador de nuevo al resto de los servidores
suscriptores la información recien sincronizada.
M.C. Daniel Esparza Soto
3.- Suscriptor publicador.
Servidor de
publicación
Nueva York
Servidor de
distribución
Enlace lento
Servidor de
suscripción
Paris
Servidor de
publicación
Servidor de
distribución
Berlin
Servidor de
suscripción
M.C. Daniel Esparza Soto
Madrid
Servidor de
suscripción
4.- Suscriptor central.
El servidor de suscripción esta ubicado de manera central
y uno o más servidores publicadores le envían
actualizaciones. Esto es útil para situaciones de informes
concentrados o de procesamiento central.
Para diferenciar los datos de la tabla central que llegan
de diferentes localidades, debe hacer algunos cambios a
el esquema de datos:
1.- Agregue una columna ClaveRegión, claveSucursal,
etc, osea una clave que identifique los registros de cada
base de datos en la tabla central.
2.- Hacer la nueva columna como parte de la clave
principal.
M.C. Daniel Esparza Soto
4.- Suscriptor central.
El escenario de suscriptor central se presta muy
bien para una duplicación con base en
transacciones. Cada localidad que pide un
producto, hará que se duplique el pedido de
producto a la ubicación central en donde se
procesará y embarcará.
M.C. Daniel Esparza Soto
5.- Publicadores y suscriptores
múltiples.
Son útiles para sistemas del tipo de reservaciones o
cualquier otro en el que deba estar disponible, en cada
región, información acerca de otras regiones. En el
sistema del tipo de reservaciones, puede también
implementar esta forma de duplicación. Se sugiere usar
transacciones distribuidas para hacerlo de modo que
todas las localidades tengan los mismo datos al mismo
tiempo. También se recomienda agregar una clave de
región a la tabla central y hacerla parte de la llave
primaria como en el caso de servidor central. Para que
esto funcione de manera adecuada, cada tienda debe
actualizar sólo los datos de su propia localidad. Si va a
usar un escenario del tipo suscriptor de actualización,
asegurese de hacer sus actualizaciones de manera
simultánea a todos los sitios para evitar conflictos.
M.C. Daniel Esparza Soto
Prácticas recomendadas
Para ayudar a asegurar el mejor desempeño, tenga
presente los siguientes puntos al determinar el tipo de
duplicación que va a utilizar y el escenario que desea
implementar:
1.- Asegure la velocidad y disponibilidad de la red
2.- Los suscriptores que actualizan en forma inmediata
pueden ser útiles cuando hay suficiente ancho de banda.
3.- Publique datos particionados. No hay necesidad de
enviar siempre toda la información.
4.- Los suscriptores de extracción pueden hacerse cargo
de gran parte de la carga de trabajo del servidor de
distribución. Recuerde que perderá su administración
centralizada de duplicación pero ganará algo de
rendimiento.
M.C. Daniel Esparza Soto
Prácticas recomendadas
5.- Use en escenarios un distribuidor remoto.
Esto puede desplazar de su base de datos OLTP
el grueso de la carga de trabajo que comprende
la duplicación. Esto es útil también si tiene un
enlace lento y costoso entre sus servidores de
distribución y sus servidores de suscripción.
6.- Minimice los conflictos de actualización
reduciendo la posibilidad de que ocurran cuando
está usando una duplicación de mezcla o
actualizando suscriptores.
7.- En la duplicación de mezcla o actualización
de suscriptores, asegurese de incluir una clave
de región como parte de la clave principal.
M.C. Daniel Esparza Soto
Publicación a base de datos diferentes a
SQL Server
Se deben tener en cuenta los siguentes puntos cuando
intente duplicar a suscriptores ODBC que no sean SQL
Server:
1.- SQL Server no maneja suscripciones de extacción.
Debe usted insertar suscripciones desde un publicador
de SQL Server.
2.- No se manejan instrucciones por lote para los
suscriptores ODBC.
3.- Los tipos de datos se mapean al tipo de dato mas
coincidente en la base de datos de suscripción.
4.- El ODBC DNS debe apegarse al las reglas de
denominación de identificadores de SQL Server.
5.- Al utilizar instantáneas, los datos a transferir usarán el
formato de caracteres BCP.
M.C. Daniel Esparza Soto
Base de datos que no son SQL Server y
publicán para SQL Server
Es posible que otras base de datos se convierten
en publicadores en el ambiente de SQL Server.
Para lograr esto, debe escribir programas que
aprovechen SQL-DMO(objetos de administración
de base de datos SQL). Después de crear sus
progamas par este propósito, podrá manejar las
diferentes caracteristicas de duplicación de SQL
Server.
M.C. Daniel Esparza Soto
Base de datos que no son SQL Server y
publicán para SQL Server
SQL-DMO expone los siguientes objetos COM para us
uso en la duplicación:
1.- Objetos para la administración de duplicación.
2.- Objetos para la supervisión de duplicación.
3.- Objetos para aprovechar el agente de distribución
para reexpedir transacciones a servidores de suscripción.
4.- Objetos para trabajar con la base de datos de
distribución para el almacenamiento de transacciones
duplicadas.
5.- Contadores de desempeño de SQL Server, varios de
los cuales se agrupan en los objetos de desempeño de
SQL Server y se exhiben en en monitor de rendimiento
de SQL Server.
6.- Objeto par exponer su publicador en el administrador
M.C. Daniel Esparza Soto
corporativo
para administración gráfica.