Anda di halaman 1dari 22

Universidad De Sonora

Unidad Centro
Materia: Base De Datos Distribuidas.

Tema: Manual De Usuario.


[Base de Datos Hospital-Replicacin Transaccional] [Sql Server]
Maestra: Ing. Ana Bertha Lpez Verdugo. Alumna: Mnica Pia Valenzuela.

Hermosillo Sonora.

Jueves 08 Diciembre 2011.

Este Manual de Usuario tiene el objetivo de guiar al usuario de como realizar una Replicacin transaccional utilizando Sql Server 2008, VirtualBox. Requisitos de instalacin: Sql Server 2008 VirtualBox. Windows Server 2008. Se Desarrolla un ejemplo de una Base De Datos Distribuida De Un hospital con sus respectivas tablas.
Diagrama Entidad-Relacin

Cve paciente

Paciente 1:M

cve IngresoNombre

Observaciones

Ingreso

Realiza

1:M

Atiende

Cve del medico

Medico Id de Especialidad M:M Especialidad Tiene

SQL Server dispone de mltiples tipos de replicacin de datos que nos ayudarn a automatizar la duplicacin de datos. Habitualmente estos datos son duplicados para sacar un beneficio de ello. Un ejemplo tpico es el desacoplamiento de cargas de lectura y de escritura, donde desde una instancia de lectura/escritura distribuimos datos a servidores de solo lectura. Otro escenario tpico de replicacin implica la duplicacin de datos entre una oficina central y un conjunto de oficinas distribuidas geogrficamente.

En este manual de usuario vamos a mostrar paso a paso cmo configurar una replicacin transaccional unidireccional explicando durante el proceso de configuracin los roles implicados as como los distintos agentes que se utilizaran.

En esta pantalla seleccionas inicio, panel de control seleccionas el archivo services el cual se selecciona para verificar que todos los servicios estn corriendo adecuadamente.

Uno de los primeros pasos que debemos realizar es configurar la distribucin de datos en nuestro publicador. El servidor publicador ser aquel servidor (central, principal, etc.) que contendr los datos que deseamos replicar a los servidores suscriptores (secundarios). Para configurar la distribucin utilizaremos la opcin Configure Distribution.

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

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. 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. 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:

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:

Una vez configurada la distribucin procederemos a crear nuestra publicacin. 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:

Elegiremos la base de datos Hospital que se desea replicar 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.

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.

A continuacin seleccionaremos los artculos a replicar. En nuestro caso seleccionaremos nicamente una tabla, la tabla de contactos, para ser replicada:

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:

En ocasiones no deseamos replicar todo el conjunto de datos de la tabla.

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:

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. Adems se recomienda 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.

Una vez creada la publicacin, procederemos a crear una suscripcin nueva. Para ello sobre la nueva rplica utilizaremos la opcin contextual de crear nueva suscripcin:

Para

comenzar

seleccionaremos el

publicador,

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. En nuestro ejemplo elegiremos crear una suscripcin push:

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

De nuevo utilizaremos la seguridad del proceso del agente para simplificar la conectividad.

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 a cierta hora. Elegiremos que ejecute el agente continuamente y continuamos:

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 disponer de dichos scripts para casos de desastre o si deseamos configurar suscriptores con la misma configuracin utilizar dicho script editando los parmetros correspondientes para facilitar el trabajo.

Finalmente tenemos nuestra suscripcin creada:

Por ltimo nos quedar comprobar con el monitor de replicacin que todo est funcionando correctamente.

Iniciamos en nuestro servidor virtual y damos clic My Publisher para las opciones y despus, lanzaremos el monitor de replicacin desde el men contextual del nodo Replication:

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: Si hacemos doble-click sobre la publicacin veremos los detalles de la inicializacin mediante el uso de la instantnea: Como hemos podido ver la configuracin de una replicacin transaccional no es muy compleja aunque s requiere de un conjunto de pasos. Existen multitud de parmetros y configuraciones que modifican su comportamiento por lo que debemos de tener cuidado con el uso de la replicacin por las implicaciones que pueda tener.