Está en la página 1de 10

Universidad Tcnica Federico Santa Mara

Sistemas Distribuidos de Computacin Trabajo de Investigacin

Base de Datos Distribuidas: Replicacin


Profesor Ral Monge Valparaso, 27 de Junio del 2005

Csar Vasquez 9821040-7 Nadia Herrera 9921050-8

RESUMEN La replicacin es el proceso de copiar y de mantener los objetos de la base de datos en las mltiples bases de datos que incorporan un sistema de base de datos distribuida. Las bases de datos distribuidas y la replicacin de la base de datos son trminos cercanos pero diferentes. En una base de datos distribuida pura, el sistema maneja una sola copia de toda la informacin y soporta los objetos de la base de datos. Mientras que la replicacin confa en tecnologa de la base de datos distribuida para funcionar, la replicacin de la base de datos puede ofrecer las ventajas de las aplicaciones que no son posibles dentro de un ambiente de base de datos distribuida puro. La replicacin es til para mejorar el funcionamiento y para proteger la disponibilidad de aplicaciones porque existen las opciones alternas del acceso de los datos. Las aplicaciones transaccionales distribuidas de la base de datos, tpicamente usa transacciones distribuidas para tener acceso a datos locales y remotos y modificar la base de datos global en tiempo real.

INTRODUCCIN Hay un inters cada vez mayor en los protocolos asincrnicos, en los cuales las transacciones de base de datos se ejecutan localmente, y sus efectos se incorporan asincrnicamente en copias remotas, sin afectar seriamente su funcionamiento. Bsicamente se tratarn aquellos puntos que permitan comprender la extensin y profundidad de la replicacin, desde el punto de vista de quien se interese en trabajar e implementar dichos sistemas, dando para ello las cualidades y virtudes, as como sus desventajas y debilidades, de modo de tener una visin amplia de sus aplicaciones. En una primera parte se explicarn a grandes rasgos, como se compone y comporta la replicacin, profundizando en aquellos temas ms interesantes y explicando superficialmente aquellos que no necesariamente son intrascendentes, pero si de menor preponderancia, permitiendo observar dos grandes divisiones, la replicacin bsica y la replicacin avanzada, para luego hacer un recorrido por los conceptos bsicos y avanzados de la replicacin, dando mayor nfasis a cada punto de esta seccin. Finalmente, se agregaron mtodos de resolucin de conflictos para resolver problemas con los datos y mantener un sistema altamente robusto.

REPLICACIN La replicacin copia y mantiene los objetos de las bases de datos en las mltiples bases de datos que levantan un sistema distribuido. La replicacin puede mejorar el funcionamiento y proteger la disponibilidad de las aplicaciones, porque alterna opciones de acceso de los datos existente. Por ejemplo, una aplicacin puede tener acceso normalmente a una base de datos local, ms que a un servidor remoto para reducir al mnimo el trfico de la red y alcanzar su funcionamiento mximo. Adems, la aplicacin puede continuar funcionando si el servidor local experimenta una falla, pero otros servidores con datos replicados siguen siendo accesibles. El servidor del Oracle apoya dos formas de replicacin: replicacin bsica y avanzada. La replicacin bsica Con la replicacin bsica, la replicacin de los datos proporciona el acceso a slo-lectura a los datos de las tablas que provienen de un sitio primario (master). Las aplicaciones pueden preguntar datos de las rplicas de datos locales para evitar el acceso a la red, sin importar su disponibilidad. Sin embargo, las aplicaciones a travs del sistema deben tener acceso a los datos en el sitio primario cuando las actualizaciones sean necesarias. El servidor de Oracle puede soportar slo-lectura bsica en ambientes que usen tablas de snapshots de slolectura. Replicacin (Simtrica) Avanzada Las caractersticas avanzadas de replicacin amplan las capacidades bsicas de slo- lectura de la replicacin, permitiendo que las aplicaciones hagan actualizaciones a las rplicas de las tablas, a travs de un sistema replicado de la base de datos. Con la replicacin avanzada, los datos pueden proveer lectura y acceso a actualizaciones a los datos de las tablas. Conceptos Bsicos de la Replicacin Los ambientes de replicacin bsicos soportan aplicaciones que requieren el acceso de slo lectura a los datos de la tabla que originan de un sitio primario. A continuacin se explican los conceptos fundamentales de los ambientes bsicos de la replicacin. Aplicaciones de la replicacin bsica. Slo-lectura de las Tablas de Snapshots Refresco de Snapshots.

1.- Aplicaciones de la replicacin bsica Distribucin de la Informacin La replicacin bsica es til para la distribucin de la informacin. Por ejemplo, las operaciones de una gran cadena de almacenes de consumo. Con este tipo de negocio, es crtico asegurarse de que la informacin de precio del producto este siempre disponible, relativamente actual, y constante en todos los distribuidores. Para alcanzar estas metas, cada tienda puede tener sus propios datos del precio del producto que restaure cada noche desde una tabla primaria el precio en las jefaturas corporativas.

Informacin Off-Loadin La replicacin bsica es til como manera de replicar bases de datos enteras o informacin off-load. Por ejemplo, cuando el funcionamiento de grandes cantidades transacciones es crtico, puede ser ventajoso mantener una base de datos duplicada para aislar las preguntas exigentes de las aplicaciones de ayuda de decisin. Transporte de la Informacin La replicacin bsica puede ser til como mecanismo del transporte de la informacin. Por ejemplo, la replicacin bsica puede mover peridicamente datos desde una base de datos procesamiento transaccional de la produccin a un data warehouse. 2.- Slo lectura de las tablas de Snapshots Slo-lectura de las tablas de snapshots, es una copia local de los datos de la tabla que originan de unas o ms tablas principales remotas. Una aplicacin puede preguntar los datos en un snapshots de la tabla, pero no puede insertar, actualizar, o eliminar filas en los snapshots. 3.- Refresco de Snapshots: Los datos que un snapshots presenta, no necesariamente coinciden con los datos actuales de sus tablas principales. Una tabla de snapshots es un reflejo de transacciones consistentes de sus datos principales, como esos datos existieron en un punto especfico en el tiempo. Para mantener los datos del Snapshots relativamente actuales con los datos de su master, el servidor debe restaurar peridicamente el Snapshot. Un refresco de un snapshot es una operacin eficiente que hace que esa snapshot refleje un estado ms actual de su master.

Conceptos avanzados de la Replicacin


En ambientes avanzados, las replicas de los datos pueden proporcionar lectura y el acceso a actualizaciones de los datos de una tabla. Las secciones siguientes explican los conceptos principales de un sistema avanzado de la replicacin. Aplicaciones para la replicacin avanzada: Configuraciones Avanzadas de la Replicacin. Objetos de replicacin, Grupos, Sitios, y Catlogos. Replicacin de administradores, propagadores, y receptores. Conflictos de la Replicacin. Opciones Avanzadas nicas de la Replicacin.

APLICACIONES PARA LA REPLICACIN AVANZADA Ambientes Desconectados La replicacin avanzada es til para el despliegue de las aplicaciones del procesamiento transaccional que funcionan con componentes desconectados. Por ejemplo, el sistema tpico de automatizacin de la fuerza de ventas para una compaa de seguro de vida. Cada vendedor debe visitar a clientes regularmente con una computadora porttil y grabar rdenes en una base de datos personal, mientras que est desconectado de la red de ordenadores corporativa y del sistema centralizado de la base de datos. Al volver a la oficina, cada vendedor debe remitir todas las rdenes a una base de datos corporativa centralizada.

Sitio de Failover La replicacin avanzada puede ser til para proteger la disponibilidad de una base de datos crtica. Por ejemplo, un sistema avanzado de replicacin puede replicar una base de datos entera para establecer un sitio de failover, si el sitio primario se convierte en inasequible debido a un sistema o a una interrupcin de la red. Tal sitio del failover puede tambin servir como base de datos completamente funcional al acceso de la aplicacin de ayuda, cuando el sitio primario es concurrentemente operacional. Cargas de aplicaciones distribuidas La replicacin avanzada es til para las aplicaciones de tratamiento transaccional, que requieren puntos mltiples de acceso a la informacin de la base de datos para propsitos de distribuir una carga pesada de aplicacin, asegurando disponibilidad continua, o proporcionando ms acceso localizados a los datos. Las aplicaciones que tienen tales requisitos comnmente incluyen servicio de aplicaciones orientadas al cliente. CONFIGURACIONES AVANZADAS DE REPLICACIN. Replicacin de Multimaster La replicacin del multimaster permite mltiples sitios actuando como pares iguales, para manejar los grupos de objetos replicados en la base de datos. Las aplicaciones pueden actualizar cualquier tabla replicada en cualquier sitio en una configuracin de multimaster. Sitios de snapshots y snapshots actualizables Los sitios principales en un sistema avanzado de replicacin, pueden consolidar la informacin que las aplicaciones actualizan en los sitios remotos de snapshots. Las facilidades de la replicacin avanzada permiten que las aplicaciones inserten, actualicen, y que supriman filas de la tabla con snapshots actualizables. Configuraciones Hbridas La replicacin de Multimaster y las de snapshots actualizables se pueden combinar en configuraciones hbridas para resolver diversos requerimientos de aplicacin. Las configuraciones mezcladas pueden tener muchos sitios principales y mltiples snapshot para cada master. OBJETOS DE REPLICACIN, GRUPOS, SITIOS, Y CATLOGOS. Objetos de la Replicacin Un objeto de replicacin es un objeto de la base de datos que existe en los servidores mltiples en un sistema de la base de datos distribuida. Las facilidades avanzadas de la replicacin, le permite replicar las tablas y los objetos de soporte tales como vistas, triggers de la base de datos, paquetes, ndices, y sinnimos. Grupos de Replicacin En un ambiente avanzado, se manejan objetos de replicacin usando grupos de replicacin. Organizando objetos relacionados de la base de datos dentro de un grupo de replicacin, es ms fcil administrar muchos objetos juntos. Tpicamente, se crea y utiliza un grupo de replicacin para organizar el esquema de objetos necesarios para apoyar una aplicacin particular de la base de datos. La restriccin bsica es que un objeto de la replicacin puede ser un miembro de solamente un grupo. Sitios de Replicacin Un grupo de la replicacin puede existir en mltiples sitios de replicacin. Los ambientes avanzados de replicacin soportan dos tipos bsicos de sitios: Sitios maestros y sitios de snapshot (que sern explicados ms adelante).

Catlogo de Replicacin Cada sitio maestro y de snapshot en un ambiente avanzado de replicacin tiene un catlogo de replicacin. El catlogo de replicacin de un sitio es un sistema distinto de diccionario de tablas y vistas que mantienen informacin administrativa sobre objetos de la replicacin y grupos de replicacin en el sitio. Cada servidor que participa en un ambiente avanzado de replicacin, puede automatizar la replicacin de objetos en grupos usando la informacin en su catlogo de la replicacin. REPLICACIN DE ADMINISTRADORES, PROPAGADORES Y RECEPTORES Un ambiente avanzado de replicacin requiere varias cuentas nicas de usuario de la base de datos para funcionar correctamente, incluyendo administradores de replicacin, los propagadores, y receptores. Cada sitio en un sistema avanzado de replicacin requiere por lo menos a un administrador, un usuario responsable de configurar y de mantener objetos replicados en la base de datos. Cada sitio de replicacin en un sistema avanzado requiere cuentas especiales de usuario para propagar y aplicar cambios a los datos replicados.

Opciones de Configuracin En la mayora de las configuraciones avanzadas de replicacin, se utiliza apenas una cuenta para todos los propsitos como un administrador de replicacin, un propagador de replicacin, y un receptor de replicacin. CONFLICTOS DE REPLICACIN Los sistemas avanzados de replicacin que apoyan un modelo de la actualizacin de los datos deben tratar la posibilidad de conflictos de replicacin, como: Unicidad de conflictos Actualizacin de conflictos Cancelacin de conflictos

(La resolucin de conflictos ser tratada en profundidad ms adelante.) OPCIONES AVANZADAS NICAS DE REPLICACIN Algunas aplicaciones tienen requisitos especiales de un sistema avanzado de replicacin. Replicacin Procesal. Propagacin (en tiempo real) Sincrnica de Datos

Replicacin Procesal Las aplicaciones del procesamiento de lotes, pueden cambiar cantidades grandes de datos dentro de una sola transaccin, pudiendo saturar una red. La replicacin procesal replica solamente la llamada a un procedimiento almacenado que una aplicacin utilice para actualizar una tabla. La replicacin procesal no replica modificaciones de los datos. Para utilizar replicacin procesal, en todos los sitios se debe replicar los paquetes que modifican datos en el sistema. Despus de replicar un paquete, se debe generar una envoltura para este paquete en cada sitio. Cuando un aplicacin llama un procedimiento empaquetado en el sitio local para modificar datos, la envoltura se asegura de que la llamada est hecha en ltima instancia al mismo procedimiento empaquetado en el resto de los sitios en el ambiente replicado.

Propagacin Sincrnica de Datos (en tiempo real) La propagacin asincrnica de los datos es la configuracin normal para los ambientes avanzados de la replicacin. La propagacin sincrnica de datos ocurre cuando una aplicacin actualiza una replicacin local de una tabla, y dentro de la misma transaccin tambin actualiza el resto de las replicacin de la misma tabla. Por lo tanto, la rplica sincrnica de los datos tambin se llama rplica en tiempo real de datos. Se utiliza solamente cuando las aplicaciones requieren que los sitios replicados sigan sincronizados continuamente.

SNAPSHOT SITES
Visin General Los snapshots sites, o instantneas de un sitio, son copias de un sitio que se colocan localmente cerca de otro cliente para mejorar su velocidad de acceso a dicha informacin, esto se hace solo cuando dicho cliente realiza una gran carga sobre los datos. Debido al alto grado de complejidad que se debe tener para implementar y mantener la consistencia, slo es recomendable, cuando la mejora en cuanto a rendimiento del snapshot es mayor a su complejidad. Estructura General y Algunas Consideraciones Antes de crear un Sitio Replicado, se deben tener en cuenta los siguientes elementos de su estructura que son indispensables para el correcto funcionamiento: Un Administrador: Este se encarga de administrar la consistencia del sitio Un propagador: Se encarga de manejar las replicaciones y propagarlas por el resto de los sitios. Un Vnculo con la Base de Datos: Se encarga de tener una comunicacin directa con el SitioPrincipal para mantener consistencia de los datos.

Estos tres elementos son comunes para todos los sitios replicados y deben ser considerados con mucho cuidado al momento de tomar la decisin sobre replicar o no replicar. En las referencias se encuentra ms informacin sobre el tema, que no ser tratado en mayor profundidad.

MTODOS DE RESOLUCIN DE CONFLICTOS


Visin General Es ampliamente necesario realizar y definir un sistema altamente robusto, para resolver los conflictos de datos que se puedan producir. Como se ha estado explicando anteriormente, los cambios dentro de la Base de Datos Distribuida de producen y se propagan concurrente y asincrnicamente, lo que produce conflictos si dos o mas sitios modifican el mismo dato en sitios distintos. Por qu utilizar mtodos de resolucin de conflictos? Dichos mtodos se usan, principalmente, por dos motivos: Para asegurar la convergencia de los datos: Esto quiere decir, que los datos no deben ser actualizados inmediatamente, pero si es imprescindible, que en algn tiempo finito se propaguen todos los cambios en todos los repositorios, para asegurar que todo el sistema posee los mismos datos. Par evitar los errores en cascada: Esto, evita que el sistema caiga en una falla que llevar al sistema a la inestabilidad. El sistema debiese comportarse de manera suave y sin problemas.

Es conveniente considerar lo siguiente, en el diseo de un sistema de resolucin de conflictos:

Monitorear la ocurrencia de cualquier conflicto sin resolver. Usar un mtodo de notificacin, para enviar informacin a los dems sitios sobre cualquier conflicto inesperado, que sea detectado.

Estos puntos son la base para cualquier sistema que pretenda manejar los conflictos que se producen en la actualizacin de los datos. En contraste con lo anterior, si todos los sitios propagaran los cambios sincrnicamente y no se tuviesen sitios snapshot actualizables, no debiesen ocurrir conflictos y no se necesitara disear un mtodo de resolucin de conflictos. Tipos de conflictos Existen principalmente 3 tipos de conflictos que deben ser detectados por el sistema en cuestin: Conflictos de Actualizacin: vale decir, cuando dos sitios intentan actualizar la misma informacin. En este caso se debe decidir cual de las dos actualizaciones debe ser hecha primero. Conflictos de Unicidad: En bases de datos, la unicidad en las claves primarias, es imprescindible, y por lo tanto, no es un problema menor en ambientes distribuidos. Conflictos de Borrado: se producen conflictos al borrar una determinada fila, sobre todo si un cliente intenta realizar aplicaciones sobre ella y los cambios aun no han sido realizados.

Eligiendo un Sistema de Resolucin de Conflictos Finalmente, la eleccin de un buen sistema de resolucin de conflictos puede tomar tres grandes variantes: Utilizar un Sistema Propietario: Existen muchos motores de DDB, cada uno de los cuales posee sus propias herramientas para solucionar estos conflictos. Disear un Sistema Propio: Tambin se puede disear un sistema propio para tratar de mejor manera los requerimientos especficos para cada caso. Utilizar un Hbrido entre Ambos: Tambin es posible utilizar el sistema propietario como base, y atacar las debilidades de este con un sistema diseado propio.

Mtodos de Resolucin de Conflictos Los mtodos de resolucin de conflictos, son funciones o algoritmos que se realizan cuando alguna transaccin es realizada, con el objeto de eliminar las inconsistencias que se pudieron haber producido. Los diferentes sistemas propietarios disponibles en el mercado, poseen sus propias rutinas y mtodos para resolver los conflictos. Algunos ejemplos son, comparando el valor que ser insertado para ver si es mayor o menor, cuando se trabaja con datos numricos. Tambin se trabaja con timestamp de las transacciones y luego se comparan, esto se puede usar, por ejemplo, al trabajar con strings. Otro enfoque, es realizar promedios de las transacciones o asignar diferentes grados de prioridad a los sitios, para ver hacer que un sitio tenga preferencia sobre otro en las actualizaciones remotas. Cualquiera que sea la decisin que se tome, es de suma importancia un buen anlisis de cada caso en particular, ya que ciertos algoritmos funcionan mejor con ciertos datos, por ejemplo, numricos o strings. No se tratar con mayor detalle la resolucin de conflictos, por estar fuera de los mrgenes de nuestro tema, para mayor informacin, sobre este tema en particular, revisar la seccin de bibliografa.

CONCLUSIONES
En el presente trabajo se abord el tema de Replicacin en Bases de Datos Distribuidas, intentando abarcar una gran cantidad de temas, en el poco espacio que se dispona para ello. Nuestra intencin, fue dar una idea global y una pequea aproximacin al tema, ms que el intentar ahondar en detalles mucho mas profundos. Lo primero que se hizo, fue hacer una pequea definicin de las bases de datos distribuidas e introducir al lector en el tema, para luego comenzar a dar una mayor informacin sobre la estructura interna de las DDB. Finalmente se habl de temas un poco ms especficos de las DDB como el control de la consistencia y algo sobre la replicacin de sitios y las consideraciones de diseo. Se puede decir que en el contexto actual, los ambientes distribuidos se tornan cada vez ms necesarios, y ms especficamente, las DDB se han transformacin en una herramienta cada da ms necesaria. La replicacin como tal es una de las herramientas distribuidas que presenta la mayor complejidad, debido a que sta presenta el problema estndar de todo sistema distribuido, la comunicacin asincrnica y los eventos concurrentes de actualizacin. Como se present a lo largo de este trabajo, la replicacin debe hacerse con mucho cuidado y debe existir tras ella un anlisis elaborado, ya que es sumamente complicado mantener un control de consistencia adecuada, y la posibilidad de perder datos en algunas aplicaciones es intolerable.

EVALUACIN FINAL
La replicacin debe realizarse slo si la carga de la Base de Datos mejora lo suficiente, para contrarrestar la complejidad que implica tener una base de datos consistente. El control de consistencia es la parte ms difcil de la replicacin, para ello existen muchas herramientas actuales que poseen mecanismos sofisticados para realizar dicha tarea. Desde este punto de vista, se debe evaluar la posibilidad de utilizar algunos de estos software propietarios, o realizar un software propio para el correcto control de las rplicas. Uno de los mayores Uno de los mayores inconvenientes que es encontr al realizar este trabajo, fue la poca informacin disponible a mano en la biblioteca de la universidad, por lo que tuvo recurrirse a navegar por la red, para encontrar una mayor informacin. Adems, dentro de la red, la mayor parte de la informacin era entregada por los propios distribuidores de bases de datos distribuidas que entregaban informacin general anexa a la informacin del programa. Nuestra visin personal sobre el tema, se traduce en que las bases de datos distribuidas presentan una gran potencial y un gran mercado, pese a que no son un producto nuevo. Su complejidad, las hace un buen lugar para la investigacin y para proveer nuevos adelantos. Cabe destacar que al manejar una gran cantidad de informacin y recursos dentro de una empresa, cualquier adelanto, por pequeo que sea, representa un gran logro econmico.

GLOSARIO
A continuacin se presentan algunos trminos o siglas que fueron utilizadas a lo largo de este trabajo: Snapshots Sites: Se puede traducir como instantneas de sitios o sitios replicados. Son sitios que debido a su carga, fueron tomados completa o parcialmente y fueron puestos en algn otro sitio que los utilizara con gran demanda. Timestamp: Marcas de tiempo utilizadas en sistemas operativos y sistemas distribuidos, las mas famosas son los relojes de Lamport. DDB: (Distributed Data Base) Base de Datos Distribuida y que se define como una base de datos normal que posee parcial o totalmente sus datos replicados y/o segmentados. Data Warehouse: Es una coleccin de bases de datos, tablas de datos y mecanismos de acceso de datos a un objeto particular.

REFERENCIAS
Replicacin de Sitios: o http://www-rohan.sdsu.edu/doc/oracle/server803/A54651_01/ch4.htm Resolucin de Conflictos o http://www2.parc.com/csl/projects/bayou/pubs/dataeng-98/DataEngineeringDec98.frame.html o http://www.dba-oracle.com/art_select_repl.pdf Algunos Productos dedicados a Bases de Datos Distribuidas o http://www-306.ibm.com/software/data/integration/replication/ o http://www.microsoft.com/resources/documentation/sql/7/all/reskit/en-us/part2/sqc02.mspx o http://www-rohan.sdsu.edu/doc/oracle/server803/A54651_01/pref.htm

También podría gustarte