Sei sulla pagina 1di 19

Este documento es propiedad intelectual de Cloud Service Ltda.

Todo el contenido es confidencial y no puede ser


reproducido en forma parcial o total, no puede ser mostrado a otros proveedores o clientes, no puede ser utilizado para
otros propsitos diferentes al que ha originado su entrega sin previa autorizacin por escrito de Cloud Service Ltda., Ante
eventuales errores u omisiones en la edicin del documento, Cloud Service Ltda. no podr ser considerada responsable.
Agosto 2012









Replicacin Transaccional v1.0


Manual del Usuario















Carteras Italianas



Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 2
1. Introduccin
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 realizado 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.

De forma predeterminada, los suscriptores de publicaciones transaccionales deben tratarse como
de solo lectura, porque los cambios no se propagan del vuelta al publicador. Sin embargo, la
replicacin transaccional ofrece opciones que permiten realizar actualizaciones en el suscriptor.

Como Funciona
La replicacin transaccional se implementa con el Agente de instantneas, el Agente de registro
del LOG y el Agente de distribucin de SQL Server. El Agente de instantneas prepara archivos de
instantneas que contienen esquemas y datos de las tablas y objetos de base de datos
publicados, almacena los archivos en la carpeta de instantneas y registra los trabajos de
sincronizacin en la base de datos de distribucin del distribuidor.
El Agente de registro del LOG supervisa el registro de transacciones de cada base de datos
configurada para la replicacin transaccional y copia las transacciones marcadas para ser
replicadas desde el registro de transacciones a la base de datos de distribucin, que acta como
una cola de almacenamiento y re-envo confiable. El Agente de distribucin copia los archivos de
instantneas iniciales de la carpeta de instantneas y las transacciones almacenadas en las tablas
de la base de datos de distribucin a los suscriptores.



Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 3
Los cambios incrementales realizados en el publicador se transfieren a los suscriptores de acuerdo
con la programacin del Agente de distribucin, que se puede ejecutar continuamente para que la
latencia sea mnima o a intervalos programados. Puesto que los datos deben cambiarse en el
publicador (cuando se utiliza la replicacin transaccional sin las opciones de actualizacin
inmediata ni de actualizacin en cola), se evita que se produzcan conflictos de actualizacin. Al
final, todos los suscriptores disponen de los mismos valores que el publicador. Si se utilizan las
opciones de actualizacin inmediata o de actualizacin en cola con la replicacin transaccional, las
actualizaciones pueden realizarse en el suscriptor y, con la actualizacin en cola, pueden
producirse conflictos.
Esquema de Solucin



Clientes A, corresponde a los clientes que usan softland.
Clientes B, corresponde a los clientes que usan otras aplicaciones para obtener reportes
(excel, access, etc.).
El rol de Publicador la debe tener el servidor de produccin, en este debe estar la base de
datos que atiende todas las transacciones a traves del sistema de Softland.
El rol de Distribuidor la debe tener el servidor de consultas o paralelo para que reciba
todos los cambios de registros derivados desde las tablas publicadas. Este las almacena en
una base de datos de distribucin que queda disponible para que luego cualquier suscriptor
actualice sus escenario.
El rol de Suscriptor la debe tener el servidor de consultas o paralelo para que a medida
que existan nuevas publicaciones disponibles en el distribuidor aplique estas a las tablas
que tiene suscritas a las publicaciones oficiales.



Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 4
Con este esquema solo se agrega una tarea mas al servidor de produccin que consiste en
publicar los cambios de las tablas publicadas. Luego el segundo servidor absorve las tareas de
acumular los cambios en el distribuidor y luego aplicarlos a la base de datos paralela de
suscripcin.

Identificacin de Servidores
Publicador
Nombre serverdc5
IP Publica
IP Privada
Sistema Operativo Windows Server 2008 R2

Distribuidor
Nombre serverdc5
IP Publica
IP Privada
Sistema Operativo Windows Server 2008 R2
Suscriptor
Nombre serverdc2
IP Publica 190.82.81.244
IP Privada 192.168.0.3
Sistema Operativo Windows Server 2003 R2 SP2




Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 5
Crear el Distribuidor
El primer paso que debemos realizar es configurar la distribucin de datos en nuestro Distribuidor
(serverdc5). El servidor Distribuidor ser aquel servidor (principal) que contendr los datos que
deseamos replicar a los servidores suscriptores (secundarios, oficinas, etc.). Para configurar la
distribucin utilizaremos la opcin Configurar distribucin directamente desde Management
Studio:


Indicaremos que el distribuidor de nuestra instancia ser la misma instancia que estamos
utilizando para publicar los datos:




Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 6
Esta configuracin es vlida cuando la carga de nuestra rplica no es elevada, el nmero de
suscriptores no es muy alto y no tenemos funcionalidades de alta disponibilidad no compatibles
con el rol de distribucin. Por ejemplo podemos tener esta configuracin sin problemas montada
en un cluster pero si utilizamos Database Mirroring como mecanismo de alta disponibilidad
deberemos utilizar otra instancia independiente como distribuidor. Tambin es habitual que
cuando tenemos un entorno con mltiples publicadores se centralice la configuracin en un nico
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.


Para inicializar una rplica habitualmente utilizamos lo que se llama una 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. Como smil podemos
pensar en que una instantnea corresponde con un backup completo de los datos a replicar sobre
los que posteriormente aplicaremos los log de transacciones pendientes hasta dejar los
suscriptores sincronizados. Indicaremos la ruta donde queremos almacenar las instantneas,
siendo recomendable que la ruta sea una ruta de red para facilitar el acceso de la instantnea
desde los suscriptores:



Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 7


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:




Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 8
Publicar Base de Datos
Una vez configurada la distribucin procederemos a crear nuestra publicacin. Para ello
desplegaremos el nodo Replicacin del Object Explorer de la instancia e indicaremos con el
men contextual del nodo Publicationes Locales que queremos crear una nueva:



Elegiremos la base de datos que contiene los artculos (tablas, vistas, procedimientos, etc.) que
vamos a replicar. Debemos tener en cuenta que si deseamos replicar datos de distintas bases de
datos lo deberemos realizar en distintas publicaciones ya que una publicacin puede contener
nicamente objetos de una base de datos. Seleccionaremos por ejemplo COMER:


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. Para
ellos se marcarn en el log de transacciones los cambios que afecten a los artculos publicados de
forma que el agente logreader pueda llevar dichos cambios de forma consistente a la base de
datos de distribucin.


Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 9



A continuacin seleccionaremos los artculos a replicar. En nuestro caso seleccionaremos todas las
tablas para ser replicadas:


Es interesante que revisemos si las propiedades de replicacin del artculo por defecto se ajustan
a nuestras necesidades. Para ello utilizaremos el botn Propiedades del Artculo para desplegar
la ventana de propiedades:


Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 10


Una modificacin habitual a estas propiedades por defecto es activar la copia automtica de los
ndices no-clustered. Por defecto el artculo contara nicamente con el ndice cluster si ste
existiera. Tambin puede ser interesante habilitar la opcin de copiar las restricciones check
(copy check constraints) para facilitar al optimizador los planes de ejecucin de algunas
consultas.

Una vez configuradas las propiedades, continuaremos con los filtros de datos:



Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 11


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:


A continuacin indicaremos las cuentas de seguridad que utilizarn los agentes. Como buena
prctica deberemos generar usuarios especficos para cada uno de los agentes y dar a cada uno
de ellos los permisos necesarios. Aunque no lo recomendamos para un sistema en produccin,
para simplificar en este ejemplo, utilizaremos la misma cuenta que utilizamos para el servicio del
agente de SQL Server:


Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 12


Finalmente, crearemos la publicacin que hemos configurado. En esta pantalla tenemos una
opcin muy til de generar un script con todos los pasos necesarios para recrear la replicacin.
Como hemos comprobado, son muchos los pasos a seguir y es fcil, cuando tenemos unas
cuantas decenas de artculos replicados con propiedades distintas, equivocarnos al configurar una
rplica con el interfaz de usuario. Adems recomendamos guardar dicho script para si tenemos un
desastre y necesitamos por ejemplo restaurar nuestra base de datos en otro servidor poder
regenerar nuestra rplica rpidamente.



Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 13



Crear Suscripcin
Una vez creada la publicacin, procederemos a crear una suscripcin nueva. Para ello en el
servidor servderdc2 utilizaremos la opcin contextual de crear nueva suscripcin:


Para comenzar seleccionaremos el publicador (serverdc5), nuestra instancia donde configuramos
la publicacin, y la base de datos publicada:


A continuacin elegimos la modalidad de la suscripcin, push o pull. Las suscripciones push 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 el suscriptor. La eleccin de una modalidad u otra
depender de diversos factores. Por ejemplo si tenemos un alto nmero de suscriptores, 100 por
ejemplo, puede ser recomendable utilizar suscripciones pull para evitar saturar al distribuidor con


Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 14
la ejecucin de 100 agentes, uno por cada suscriptor. Sin embargo si el nmero es bajo puede
interesarnos centralizar los agentes en el distribuidor y de esa forma tener ms control sobre la
ejecucin de los agentes. En nuestro ejemplo elegiremos crear una suscripcin pull:



Elegiremos la instancia y la base de datos donde se replicarn nuestros datos:





Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 15
De nuevo utilizaremos la seguridad del proceso del agente para simplificar la conectividad. Para
esto debe utilizar las credenciales del usuario carterasitalian\replica.



Aunque lo habitual es que los agentes de distribucin se ejecuten de forma continua en el caso de
la replicacin transaccional, tambin podemos definir una planificacin especfica de forma que por
ejemplo nicamente distribuyan cambios por la noche de 8 PM a 6 AM. Elegiremos que ejecute el
agente continuamente y continuamos:



Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 16


Finalmente indicaremos cuando deseamos que se inicialice la suscripcin a partir del snapshot. Es
posible que creemos la suscripcin en un momento del da distinto al que queremos que inicialice.
En este ejemplo indicaremos que se inicialice de forma inmediata:



Al igual que ocurra al crear la publicacin, con la suscripcin tenemos tambin la opcin de
realizar la operacin directamente y de generar un script con la configuracin utilizada. Es til


Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 17
disponer de dichos scripts para casos de desastre o si deseamos configurar N suscriptores con la
misma configuracin utilizar dicho script editando los parmetros correspondientes para facilitar la
labor:







Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 18
Monitorear Replicas
Por ltimo nos quedar comprobar con el monitor de replicacin que todo est funcionando
correctamente. Lanzaremos el monitor de replicacin desde el men contextual del nodo
Replicacin:



Podemos ver como se ha generado correctamente el snapshot y el agente Log Reader est en
marcha:



Si pasamos a la pestaa de las suscripciones podemos ver que est funcionando correctamente el
agente de distribucin:



Nueva York N53 Oficina 61, Santiago de Chile
Fono +56 2 714 2982
www.cloudservice.cl 19


Si hacemos doble-click sobre la publicacin veremos los detalles de la inicializacin mediante el
uso de la instantnea:

Potrebbero piacerti anche