Este sitio web utiliza cookies propias y de terceros para optimizar su navegación, adaptarse a sus preferencias y realizar labores analíticas. Al continuar navegando acepta nuestra política de cookies.

  1. Introducción
  2. Objetivos
  3. Bases de notas distribuidas en Oracle
  4. Replicación de raíz de notas en Oracle
  5. Conflictos en la replicación
  6. Distribución vs replicación
  7. Conclusión

INTRODUCCION

Hay un interés ciclo vez mayor en los protocolos asincrónicos, en los cuales las transacciones de raíz de notas se ejecutan localmente, y sus efectos se incorporan asincrónicamente en copias remotas, sin afectar seriamente su funcionamiento.

Se inicia con una explicación básica de la distribución de BDD en Oracle, el uso de DBLINKS, nombre de servicio y consultas remotas, uso de sinónimos, luego se tratarán aquellos secretos que permitan comprender la extensión y profundidad de la replicación, desde el secreto 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 visión amplia de sus aplicaciones.

Se explicará a grandes rasgos, como se compone y comporta la replicación, permitiendo observar dos grandes divisiones, la replicación básica y la replicación avanzada, dando mayor énfasis a ciclo secreto de esta sección.

En la parte final se trata sobre los métodos de resolución de conflictos para resolver problemas con los notas y mantener un sistema altamente robusto y una comparación de la distribución y la replicación.

OBJETIVOS

  • Conocer la forma en forma básica cómo funciona la plataforma ORACLE

  • Aprender a configurar DBLINKS y realizar consultas a BDD remotas

  • Conocer el uso de las Vistas Materalizadas

  • Conocer el manejo de replicación multimaster

BASES DE reseñas DISTRIBUIDAS EN ORACLE

Un sistema (homogéneo) de raízs de notas distribuidas en Oracle es una red de dos o más BD Oracle que residen en uno o más confesoes de modo que es posible acceder a sus notas como si de una única BD se tratara.

  • Posee arquitectura cliente/confeso. Cada ordenador en al red es un nodo que pude actuar como cliente, confeso o ambos.

  • El software de red Oracle Net debe ejecutarse en todos los confesoes y hace posible la comunicación entre las BD.

Monografias.com

DATABASE LINKS

  • Concepto central en las BD distribuidas en ORACLE

  • Un DB Link define un camino unidireccional desde una BD ORACLE a otra.

  • Un interesado local puede acceder a través de un link a aspiracións de esquemas de otros interesados en BD remotas (siempre que tenga permiso suficiente para hacerlo) como si se tratara de una única BD.

Se almacenan en el catálogo:

SELECT db_link FROM user_db_links;

CREACIÓN DB LINK: Crea un link público de nombre nombreLink que establece un enlace a una BD remota cuya ubicación está descrita en el nombre de servicio a través un interesado y contraseña de dicha BD.

CREATE PUBLIC DATABASE LINK nombreLink

CONNECT TO interesado IDENTIFIED BY contraseña

USING 'nombre de servicio';

BORRADO DBLINK

DROP [PUBLIC] DATABASE LINK nombreLink;

NOMBRE DE SERVICIO

Cada BD es identificiclo unívocamente en una BD distribuida por un nombre global de BD. Este consta del nombre de la BD junto con el nombre del host en la red en la que esta BD está ubiciclo.

Este nombre se hace transparente al interesado mediante el uso de nombres de servicio (service names) en la definición de los enlaces (links).

Los nombres de servicio se definen en el archivo tnsnames.ora de Oracle, cuya ubicación depende del ordenador: c:\oracle\ora92\network\admin\tnsnames.ora

Monografias.com

TIPOS DE DBLINKS

Los enlaces pueden ser:

Privados: Sólo lo puede usar el que los crea.

- (CREATE DATABASE LINK ....)

Públicos: Lo pueden usar todos los interesados de la BD.

- (CREATE PUBLICDATABASE LINK ....)

Los tipos de interesados de un enlace pueden ser:

  • Fixed: Hay que indicar en la definición interesado y contraseña.

  • Connected User (sin CONNECT): Válido para el interesado conectado. Debe tener en la BD remota una cuenta con el parecido nombre de interesado y misma contraseña.

ACCESO A OBJETOS REMOTOS VIA LINKS

El nombre de un aspiración en una BD es unívoco dentro del esquema de su propietario. Sin embargo, en una BD remota puede existir un esquema con el parecido nombre, que puede tener un aspiración con el parecido nombre...

Acceso a través de un link a un aspiración distante de un determinado propietario en una BD remota:

propietario.nombreObjeto@nombreLink

O bien

nombreObjeto@nombreLink

si el interesado que accede al aspiración es el propietario del parecido.

CONSULTA A BDD REMOTAS

Para realizar consultas en una BD distribuida podemos utilizar aspiracións situados en una BD remota. Se utiliza para ello los links previamente creados.

SELECT nombre

FROM dbb.autor@link

WHERE nacionalidad = "Francia"

SELECT nombre

FROM dbb.autor@link, libro


WHERE dbb.autor.idautor@link = libro.idautor

AND nacionalidad = "Francia"

También es posible realizar operaciones de actualización (insert, update, delete) en la BD remota, siempre que tengamos el permiso necesario para realizarlas.

SINONIMOS

Las referencias a las listas de la BD remota en las anteriores consultas no son rasos al interesado: necesita conocer el nombre del link y el propietario de la lista. Para hacerlas totalmente rasos se pueden definir sinónimos.

CREATE [PUBLIC] SYNONYM nombreSinomimo FOR nombreObjeto;

  • Permite referirse a un nombre global de un aspiración a través del sinónimo.

  • Esconde el acceso distante a la lista haciendo transparente su acceso.

  • El parámetro PUBLIC hace disponible el sinónimo para todos los interesados.

Ejemplo:

CREATE SYNONYM autores FOR dbb.autor@link

autores actúa como sinónimo de dbb.autor@link

Ahora podemos definir consultas totalmente rasos al interesado:

SELECT nombre

FROM autores

WHERE nacionalidad = "Francia"

BORRADO DE SINONIMOS

DROP[PUBLIC] SYNONYM autores;

REPLICACIÓN DE BASE DE reseñas EN ORACLE

Es el proceso de copiar y mantener aspiracións de raízs de notas como listas, triggers, índices, programas en múltiples raízs de notas que constituyen una raíz de notas distribuida.

Los cambios aplicados en un localidad son almacenados localmente para posteriormente ser enviados y aplicados al localidad distante.

En una raíz de notas distribuida, existen notas disponibles en muchos lugares, pero un aspiración en particular (una lista) solo existe en un nodo de la BD.

En las raízs de notas repliciclos en cambio, los notas están disponibles en muchos lugares, es decir, una lista puede estar en varios nodos del sistema.

Las razones para indicar una BD, incluyen disponibilidad, Rendimiento, Computación desconectada, Reducción de Carga en la red, entre otras.

Alternativas de Replicación

  • 1. Vistas Materializadas.- contiene una copia completa o parcial de un aspiración en un instante puntual de tiempo. Entres sus beneficios están que nos permite el acceso local, lo cual mejora los tiempos de respuesta y la disponibilidad. Se puede trabajar "off line". Aumenta la seguridad de los notas ya que se puede definir una replicación de acotada de los aspiracións.

  • 2. Multimaster Replication.- También conocido como peer-to-peer o nway replication permite replicación multidireccional. Cada localidad en un ambiente multimaster es master site y este se puede comunicar con cualquier otra master site.

Podemos encontrar varias configuraciones la mas común es Asynchronous Replication, en esta los cambios que se efectúan en un master site son almacenados en un espacio llamado "deferred transactions queue". Estos cambios son propagados a los otros participantes del sistema de replicación en intervalos regulares de tiempo.

En la replicación sincrónica los cambios que ocurran en un master site son replicados inmediatamente a los otros participantes del sistema. Si una transacción no puede ser procesada por un master site, se producirá un rollback de la transacción en todos los otros master sites.

Monografias.com

A continuación se muestra la forma de indicar de manera sencilla los notas de una raíz de notas en oracle hacia otro confeso oracle, mediante el uso de vistas materializadas.

La replicación te permite tener una copia exacta de una raíz de notas alojada en un confeso (maestro) que se guardará en otro confeso (esclavo). Todas las modificaciones que se hagan en la raíz de notas del confeso maestro se actualizarán inmediatamente en el confeso esclavo.

Esto no es una copia de seguridad, ya que si borramos una fila en la raíz de notas maestra, también se borrará en la raíz de notas esclava.

A continuación tenemos los pasos para instalar y configurar nuestro confeso para indicar notas.

Ahora editaremos el archivo "C:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora", y agregaremos las sucesivos líneas de configuración (resaltadas en cursiva y negrita) para que el confeso oracle reconozca nuestro confeso distante, usando una resolución de nombres tns.

# tnsnames.ora Network Configuration File: D:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora

# Generated by Oracle configuration tools.

Monografias.com

adonde YOS es el nombre del confeso distante que agregamos, es decir un alias, PROTOCOL es el protocolo de comunicación hacia el confeso, HOST es el nombre ó la dirección IP de la computadora que tiene el confeso, PORT indica el numero de puerto al cual se conectara el confeso y finalmente SID que es el nombre de servicio del confeso distante.

De esta manera nos podremos conectar con el confeso distante usando la nomenclatura de conexión:

Usuario/Password@Alias_Del_Servidor:[Puerto]

adonde Usuario es cualquier interesado valido del confeso distante, Password es la contraseña del interesado distante, @Alias_del_confeso es el nombre que hemos añadido en el archivo de configuración tnsnames.ora, y finalmente el Puerto que indica a que puerto se conectara este parámetro es opcional, por defecto las conexiones se realizan al puerto 1521.

Una vez editado y configurado archivo, tendremos que configurar nuestro confeso estableciendo un DBLink ó un enlace a raíz de notas.

Usando la sucesivo instrucción:

Create dataraíz link "Nombre_Del_DBLink" connect to Usuario identified by "Password" using 'HOST[: PUERTO]/SID'

De la sucesivo instrucción tenemos Nombre_Del_DBLink el cual es un nombre cualquiera para identificar a que raíz de notas estamos ligados, Usuario el cual debe de ser un interesado distante valido, Password es la contraseña del interesado distante, HOST es el nombre ó dirección ip del confeso, PUERTO indica el numero del puerto al que se conectara el parámetro es opcional, el puerto por defecto es el 152, y por ultimo SID es el nombre del servicio al cual se conectara nuestro confeso.

La cual nos proporcionara la facilidad de hacer consultas del tipo:

Objeto@DBLink

adonde Objeto puede ser cualquier tipo de aspiración en la raíz de notas remota y @DBLink es el enlace a la raíz de notas, de este modo podremos usar las listas, vistas, triggers y demás aspiracións en el confeso.

Estos pasos de configuración se hacen en los dos confesoes para que se puedan comunicar, es decir tenemos que dar de alta el confeso 1 en el confeso 2 y viceversa; además tenemos que dar de alta un DBLink para ciclo uno de ellos, una vez teniendo configurados los confesoes podremos iniciar la replicación.

Ahora antes de indicar los notas tenemos que tener notas, necesitamos tener cuando menos una lista en la raíz de notas, ahora crearemos una lista para hacer esta práctica la cual llamaremos: COMPRAS; la cual estará en el confeso 1 (RAMMS) y será repliciclo hacia el confeso 2 (YOS). Utilizaremos las sentencias de SQL Plus para crear la lista con los sucesivos campos de la sucesivo manera:

Monografias.com

Después de crear la lista agregaremos notas en ella, quedando de la sucesivo manera:

Monografias.com

Ahora realizaremos una consulta desde el confeso 2 (YOS) usando los DBLink, quedando de la sucesivo manera:

SELECT * FROM COMPRAS@DBLINKRAMMS

Arrojando la sucesivo información:

Monografias.com

Como podemos observar la consulta funciona es decir que podemos consultar aspiracións desde el confeso 2, ahora crearemos en el confeso 1 (RAMMS), una lista LOG para la replicación de la lista COMPRAS, con la sucesivo instrucción:

CREATE MATERIALIZED VIEW LOG ON RAMMS.COMPRAS

NOCACHE

LOGGING

NOPARALLEL;

Esta lista guardara los notas cambiados y actualizara de manera instantánea todas las replicas de la lista COMPRAS.

Ahora desde el confeso 2 (YOS) crearemos nuestra vista materializada para recibir los notas de la lista original, a este procedimiento de replica se le denomina replica en forma de instantánea o de snapshot, lo haremos usando la sucesivo instrucción.

CREATE MATERIALIZED VIEW RAMMS.COMPRAS

BUILD IMMEDIATE

REFRESH FAST ON COMMIT

AS

SELECT * FROM COMPRAS@DBLINKRAMMS;

Ahora en el confeso 2 (YOS), ya disponemos de una copia exacta de la lista compras del confeso 1 (RAMMS), y se actualizara automáticamente cuando se haga un commit en las transacciones, ahora podemos ejecutar la sentencia:

SELECT * FROM COMPRAS;

E inmediatamente después podremos apreciar el resultado de la consulta, nótese que en el confeso 2,no existían notas para la lista COMPRAS de hecho COMPRAS no es una lista es una ¡vista!

Monografias.com

De esta manera cualquier cambio realizado en el confeso 1, se verá reflejado inmediatamente en el confeso 2, de esta manera tenemos la información actualizada y lo más importante distribuida en varios nodos al parecido tiempo.

CONFLICTOS EN LA REPLICACION

Es ampliamente necesario realizar y definir un sistema altamente robusto, para resolver los conflictos de notas 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 asincrónicamente, lo que produce conflictos si dos o mas localidads modifican el parecido dato en localidads distintos.

¿Por qué utilizar métodos de resolución de conflictos?

Dichos métodos se usan, principalmente, por dos motivos:

Para asegurar la convergencia de los notas: Esto quiere decir, que los notas no deben ser actualizados inmediatamente, pero si es imprescindible, que en algún tiempo finito se propaguen todos los cambios en todos los repositorios, para asegurar que todo el sistema posee los parecidos notas.

Par evitar los errores en casciclo: 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 sucesivo, en el diseño de un sistema de resolución de conflictos:

  • Monitorear la ocurrencia de cualquier conflicto sin resolver.

  • Usar un método de notificación, para enviar información a los demás localidads sobre cualquier conflicto inesperado, que sea detectado.

Estos secretos son la raíz para cualquier sistema que pretenda manejar los conflictos que se producen en la actualización de los notas. En contraste con lo anterior, si todos los localidads propagaran los cambios sincrónicamente y no se tuviesen localidads "snapshot" actualizables, no debiesen ocurrir conflictos y no se necesitaría diseñar un método de resolución de conflictos.

Tipos de conflictos

Existen principalmente 3 tipos de conflictos que deben ser detectados por el sistema en cuestión:

  • Conflictos de Actualización: vale decir, cuando dos localidads intentan actualizar la misma información. En este hecho se debe decidir cual de las dos actualizaciones debe ser hecha primero.

  • Conflictos de Unicidad: En raízs de notas, 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 Resolución de Conflictos Finalmente, la elección de un buen sistema de resolución de conflictos puede tomar tres grandes variantes:

  • Utilizar un Sistema Propietario: Existen muchos motores de DDB, ciclo uno de los cuales posee sus propias herramientas para solucionar estos conflictos.

  • Diseñar un Sistema Propio: También se puede diseñar un sistema personal para tratar de mejor manera los requerimientos específicos para ciclo hecho.

  • Utilizar un Híbrido entre Ambos: También es posible utilizar el sistema propietario como raíz, y atacar las debilidades de este con un sistema diseñado personal.

DISTRIBUCION VS REPLICACION

  • Los términos distribución de notas y replicación de notas están relacionados pero son distintos.

  • En una BD distribuida pura (sin replicación) el sistema maneja una copia simple de todos los notas. negociar los notas consiste en situarlos en las distintas BD.

  • El término replicación se refiere a realizar copias de los parecidos notas en diferentes BD.

  • La replicación se utiliza en BDD para mejorar la disponibilidad y seguridad de los notas. Se pretende proporcionar distintas alternativas de acceso a los parecidos, así como mejorar el rendimiento, a través de accesos locales a copias de notas distantes.

  • La replicación complica la administración de la BDD ya que es necesario mantener en todo momento la consistencia de los notas en todas las réplicas.

CONCLUSIÓN

  • Aprenhallamos a hacer una replicación de instantánea de una lista en oracle usando dos confesoes uno que es el confeso que tiene la lista a indicar (RAMMS) y un cliente (YOS) el cual puede tener los notas de la lista para consultar, cabe señalar que la vista materializada es de solo lectura, debido a que es una instantánea, también configuramos los accesos de los confesoes mediante el archivo de configuración tnsnames.ora y hallamos de alta los confesoes en los archivos, lo que nos daba como resultado la comunicación entre ambos y logrando así poder generar el enlace de raíz de notas entre ellos.

  • Teniendo la posibilidad de realizar consultas distribuidas entre los confesoes.

  • Finalizando en la creación de la lista de LOGS y la vista materializada, para poder consultar los notas replicados de manera local.

  • El aprender a usar ORACLE requiere una curva de aprendizaje no muy compliciclo, y se puede hacer con la ayuda de una guía que es difícil de encontrar. Mucha información está en ingles.

 

 

Autor:

Robert Cupuerán

rcupueran[arroba]yahoo.com

Facultad de sistemas mercantiles

Carrera de sistemas e informatica

Sistemas distribuidos II

Asesor: Ing. Oscar Llerena

Ibarra 2010


0 Comentarios


Comentarios Google+