You are on page 1of 19

Replicacin Transaccional v1.

0
Manual del Usuario

Carteras Italianas

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

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

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

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 IP Publica IP Privada Sistema Operativo serverdc5

Windows Server 2008 R2

Distribuidor
Nombre IP Publica IP Privada Sistema Operativo serverdc5

Windows Server 2008 R2

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

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

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

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

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

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

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

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

10

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

11

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

12

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

13

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

14

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

15

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

16

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

17

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

18

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

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

19

You might also like