Sei sulla pagina 1di 10

www.monografias.

com
Distribucin y Replicacin en Oracle
Robert Cupuern - rcupueran@yahoo.com
1. Introduccin
2. Objetivos
3. Bases de datos distribuidas en Oracle
4. Replicacin de base de datos en Oracle
5. Conlictos en la replicacin
!. Distribucin vs replicacin
". Conclusin
INTRODUCCION
Hay un inters cada vez mayor en los protocolos asincrnicos, en los cuales las transacciones de base de
datos se eecutan localmente, y sus efectos se incorporan asincrnicamente en copias remotas, sin
afectar seriamente su funcionamiento.
!e inicia con una e"plicacin bsica de la distribucin de #$$ en %racle, el uso de $#&'()!, nombre de
servicio y consultas remotas, uso de sinnimos, luego se tratarn a*uellos puntos *ue permitan
comprender la e"tensin y profundidad de la replicacin, desde el punto de vista de *uien se interese en
trabaar e implementar dic+os sistemas, dando para ello las cualidades y virtudes, as, como sus desventaas
y debilidades, de modo de tener una visin amplia de sus aplicaciones.
!e e"plicar a grandes rasgos, como se compone y comporta la replicacin, permitiendo observar
dos grandes divisiones, la replicacin bsica y la replicacin avanzada, dando mayor nfasis a cada
punto de esta seccin.
-n la parte final se trata sobre los mtodos de resolucin de conflictos para resolver problemas con los
datos y mantener un sistema altamente robusto y una comparacin de la distribucin y la replicacin.
OBJETIVOS
Conocer la forma en forma bsica cmo funciona la plataforma %R.C&-
.prender a configurar $#&'()! y realizar consultas a #$$ remotas
Conocer el uso de las /istas 0ateralizadas
Conocer el maneo de replicacin multimaster
BASES DE DATOS DISTRIBUIDAS EN ORACLE
1n sistema 2+omogneo3 de bases de datos distribuidas en %racle es una red de dos o ms #$ %racle *ue
residen en uno o ms servidores de modo *ue es posible acceder a sus datos como si de una 4nica #$ se
tratara.
5osee ar*uitectura cliente#servidor. Cada ordenador en al red es un nodo *ue pude actuar como
cliente, servidor o ambos.
-l software de red %racle (et debe eecutarse en todos los servidores y +ace posible la
comunicacin entre las #$.
5ara ver trabaos similares o recibir informacin semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com
D$%$B$&' (I)*&
Concepto central en las #$ distribuidas en %R.C&-
1n $# &in6 define un camino unidireccional desde una #$ %R.C&- a otra.
1n usuario local puede acceder a travs de un lin6 a obetos de es*uemas de otros usuarios en #$
remotas 2siempre *ue tenga permiso suficiente para +acerlo3 como si se tratara de una 4nica #$.
!e almacenan en el catlogo7
!-&-C8 db9lin6 :R%0 user9db9lin6s;
CR'$CI+) DB (I)*, Crea un lin6 p4blico de nombre nombreLink *ue establece un enlace a una #$
remota cuya ubicacin est descrita en el nombre de servicio a travs un usuario y contrasea de dic+a #$.
CR-.8- 51#&'C $.8.#.!- &'() nombre&in6
C%((-C8 8% usuario '$-(8':'-$ #< contrase=a
1!'(> ?nombre de servicio?;
BORR$DO DB(I)*
$R%5 @51#&'CA $.8.#.!- &'() nombre&in6;
)O-BR' D' &'R.ICIO
Cada #$ es identificada un,vocamente en una #$ distribuida por un nombre global de #$. -ste consta del
nombre de la #$ unto con el nombre del +ost en la red en la *ue esta #$ est ubicada.
-ste nombre se +ace transparente al usuario mediante el uso de nombres de servicio 2service names3 en la
definicin de los enlaces 2links3.
&os nombres de servicio se definen en el arc+ivo tnsnames.ora de %racle, cuya ubicacin depende del
ordenador7 c7BoracleBoraCDBnetwor6BadminBtnsnames.ora
%I/O& D' DB(I)*&
5ara ver trabaos similares o recibir informacin semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com
&os enlaces pueden ser7
5rivados7 !lo lo puede usar el *ue los crea.
- 2CR-.8- $.8.#.!- &'() ....3
54blicos7 &o pueden usar todos los usuarios de la #$.
- 2CR-.8- 51#&'C$.8.#.!- &'() ....3
&os tipos de usuarios de un enlace pueden ser7
:i"ed7 Hay *ue indicar en la definicin usuario y contrase=a.
Connected 1ser 2sin C%((-C837 /lido para el usuario conectado. $ebe tener en la #$ remota
una cuenta con el mismo nombre de usuario y misma contrase=a.
$CC'&O $ OB0'%O& R'-O%O& .I$ (I)*&
-l nombre de un obeto en una #$ es un,voco dentro del es*uema de su propietario. !in embargo, en una
#$ remota puede e"istir un es*uema con el mismo nombre, *ue puede tener un obeto con el mismo
nombre...
.cceso a travs de un lin6 a un obeto remoto de un determinado propietario en una #$ remota7
propietario.nombre%betoEnombre&in6
% bien
nombre%betoEnombre&in6
si el usuario *ue accede al obeto es el propietario del mismo.
CO)&1(%$ $ BDD R'-O%$&
5ara realizar consultas en una #$ distribuida podemos utilizar obetos situados en una #$ remota. !e utiliza
para ello los lin6s previamente creados.
!-&-C8 nombre
:R%0 dbb.autorElin6
FH-R- nacionalidad G H:ranciaI
!-&-C8 nombre
:R%0 dbb.autorElin6, libro
FH-R- dbb.autor.idautorElin6 G libro.idautor
.($ nacionalidad G H:ranciaI
8ambin es posible realizar operaciones de actualizacin 2insert, update, delete3 en la #$ remota, siempre
*ue tengamos el permiso necesario para realizarlas.
&I)O)I-O&
&as referencias a las tablas de la #$ remota en las anteriores consultas no son transparentes al usuario7
necesita conocer el nombre del lin6 y el propietario de la tabla. 5ara +acerlas totalmente transparentes se
pueden definir sinnimos.
CR-.8- @51#&'CA !<(%(<0 nombre!inomimo :%R nombre%beto;
5ermite referirse a un nombre global de un obeto a travs del sinnimo.
-sconde el acceso remoto a la tabla +aciendo transparente su acceso.
-l parmetro 51#&'C +ace disponible el sinnimo para todos los usuarios.
-emplo7
CR-.8- !<(%(<0 autores :%R dbb.autorElin6
autores act4a como sinnimo de dbb.autor@link
.+ora podemos definir consultas totalmente transparentes al usuario7
!-&-C8 nombre
:R%0 autores
FH-R- nacionalidad G H:ranciaI
BORR$DO D' &I)O)I-O&
$R%5@51#&'CA !<(%(<0 autores;
REPLICACIN DE BASE DE DATOS EN ORACLE
5ara ver trabaos similares o recibir informacin semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com
-s el proceso de copiar y mantener obetos de bases de datos como tablas, triggers, ,ndices, programas en
m4ltiples bases de datos *ue constituyen una base de datos distribuida.
&os cambios aplicados en un sitio son almacenados localmente para posteriormente ser enviados y
aplicados al sitio remoto.
-n una base de datos distribuida, e"isten datos disponibles en muc+os lugares, pero un obeto en particular
2una tabla3 solo e"iste en un nodo de la #$.
-n las bases de datos replicadas en cambio, los datos estn disponibles en muc+os lugares, es decir, una
tabla puede estar en varios nodos del sistema.
&as razones para replicar una #$, incluyen disponibilidad, Rendimiento, Computacin desconectada,
Reduccin de Carga en la red, entre otras.
$lternativas de Replicacin
J. .istas -ateriali2adas.3 contiene una copia completa o parcial de un obeto en un instante puntual de
tiempo. -ntres sus beneficios estn *ue nos permite el acceso local, lo cual meora los tiempos de
respuesta y la disponibilidad. !e puede trabaar Koff lineL. .umenta la seguridad de los datos ya *ue se
puede definir una replicacin de acotada de los obetos.
D. -ulti4aster Replication.3 8ambin conocido como peer-to-peer o nway replication permite replicacin
multidireccional. Cada sitio en un ambiente multimaster es master site y este se puede comunicar con
cual*uier otra master site.
5odemos encontrar varias configuraciones la mas com4n es .sync+ronous Replication, en esta los
cambios *ue se efect4an en un master site son almacenados en un espacio llamado Kdeferred
transactions *ueueL. -stos cambios son propagados a los otros participantes del sistema de replicacin
en intervalos regulares de tiempo.
-n la replicacin sincrnica los cambios *ue ocurran en un master site son replicados inmediatamente
a los otros participantes del sistema. !i una transaccin no puede ser procesada por un master site, se
producir un rollbac6 de la transaccin en todos los otros master sites.
. continuacin se muestra la forma de replicar de manera sencilla los datos de una base de datos en oracle
+acia otro servidor oracle, mediante el uso de vistas materializadas.
&a replicacin te permite tener una copia e"acta de una base de datos aloada en un servidor 2maestro3 *ue
se guardar en otro servidor 2esclavo3. 8odas las modificaciones *ue se +agan en la base de datos del
servidor maestro se actualizarn inmediatamente en el servidor esclavo.
-sto no es una copia de seguridad, ya *ue si borramos una fila en la base de datos maestra, tambin se
borrar en la base de datos esclava.
. continuacin tenemos los pasos para instalar y configurar nuestro servidor para replicar datos.
5ara ver trabaos similares o recibir informacin semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com
.+ora editaremos el arc+ivo C:\oracle\product\10.2.0\db1\net!ork\admin\tnsnames.ora"# y agregaremos
las siguientes l,neas de configuracin 2resaltadas en cursiva y negrita3 para *ue el servidor oracle reconozca
nuestro servidor remoto, usando una resolucin de nombres tns.
M tnsnames.ora (etwor6 Configuration :ile7 $7BoracleBproductBJN.D.NBdb9JBnetwor6BadminBtnsnames.ora
M >enerated by %racle configuration tools.
$onde 5O& es el nombre del servidor remoto *ue agregamos, es decir un alias, /RO%OCO( es el
protocolo de comunicacin +acia el servidor, 6O&% es el nombre la direccin '5 de la computadora *ue
tiene el servidor, /OR% indica el numero de puerto al cual se conectara el servidor y finalmente &ID *ue es
el nombre de servicio del servidor remoto.
$e esta manera nos podremos conectar con el servidor remoto usando la nomenclatura de cone"in7
5ara ver trabaos similares o recibir informacin semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com
$suario%&ass!ord@'lias(el)ervidor:*&uerto+
$onde 1suario es cual*uier usuario valido del servidor remoto, /ass7ord es la contrase=a del usuario
remoto, 8$lias9del9servidor es el nombre *ue +emos a=adido en el arc+ivo de configuracin
tnsnames.ora, y finalmente el /uerto *ue indica a *ue puerto se conectara este parmetro es opcional, por
defecto las cone"iones se realizan al puerto JODJ.
1na vez editado y configurado arc+ivo, tendremos *ue configurar nuestro servidor estableciendo un DB(in:
un enlace a base de datos.
1sando la siguiente instruccin7
Create database link ,-ombre(el(.Link, connect to $suario identi/ied by ,&ass!ord, usin0 123)4*:
&$5643+%)7(1
$e la siguiente instruccin tenemos )o4bre9Del9DB(in: el cual es un nombre cual*uiera para identificar a
*ue base de datos estamos ligados, 1suario el cual debe de ser un usuario remoto valido, /ass7ord es la
contrase=a del usuario remoto, 6O&% es el nombre direccin ip del servidor, /1'R%O indica el numero
del puerto al *ue se conectara el parmetro es opcional, el puerto por defecto es el JOD, y por ultimo &ID es
el nombre del servicio al cual se conectara nuestro servidor.
&a cual nos proporcionara la facilidad de +acer consultas del tipo7
3b8eto@(.Link
$onde %beto puede ser cual*uier tipo de obeto en la base de datos remota y E$#&in6 es el enlace a la
base de datos, de este modo podremos usar las tablas, vistas, triggers y dems obetos en el servidor.
-stos pasos de configuracin se +acen en los dos servidores para *ue se puedan comunicar, es decir
tenemos *ue dar de alta el servidor J en el servidor D y viceversa; adems tenemos *ue dar de alta un
$#&in6 para cada uno de ellos, una vez teniendo configurados los servidores podremos iniciar la
replicacin.
.+ora antes de replicar los datos tenemos *ue tener datos, necesitamos tener cuando menos una tabla en
la base de datos, a+ora crearemos una tabla para +acer esta prctica la cual llamaremos7 C%05R.!; la
cual estar en el servidor J 2R.00!3 y ser replicada +acia el servidor D 2<%!3. 1tilizaremos las sentencias
de !P& 5lus para crear la tabla con los siguientes campos de la siguiente manera7
$espus de crear la tabla agregaremos datos en ella, *uedando de la siguiente manera7
5ara ver trabaos similares o recibir informacin semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com
.+ora realizaremos una consulta desde el servidor D 2<%!3 usando los $#&in6, *uedando de la siguiente
manera7
)5L5C4 9 :63; C3;&6')@(.L7-<6';;)
.rroando la siguiente informacin7
Como podemos observar la consulta funciona es decir *ue podemos consultar obetos desde el servidor D,
a+ora crearemos en el servidor J 2R.00!3, una tabla &%> para la replicacin de la tabla C%05R.!, con
la siguiente instruccin7
C65'45 ;'4567'L7=5( >75? L3@ 3- 6';;).C3;&6')
-3C'C25
L3@@7-@
-3&'6'LL5LA
-sta tabla guardara los datos cambiados y actualizara de manera instantnea todas las replicas de la tabla
C%05R.!.
.+ora desde el servidor D 2<%!3 crearemos nuestra vista materializada para recibir los datos de la tabla
original, a este procedimiento de replica se le denomina replica en forma de instantnea o de snaps+ot, lo
+aremos usando la siguiente instruccin.
C65'45 ;'4567'L7=5( >75? 6';;).C3;&6')
.$7L( 7;;5(7'45
65:65)2 :')4 3- C3;;74
')
)5L5C4 9 :63; C3;&6')@(.L7-<6';;)A
5ara ver trabaos similares o recibir informacin semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com
.+ora en el servidor D 2<%!3, ya disponemos de una copia e"acta de la tabla compras del servidor J
2R.00!3, y se actualizara automticamente cuando se +aga un commit en las transacciones, a+ora
podemos eecutar la sentencia7
)5L5C4 9 :63; C3;&6')A
5 inmediatamente despuBs podremos apreciar el resultado de la consulta# nCtese Due en el servidor 2#no
eEistFan datos para la tabla C3;&6') de hecho C3;&6') no es una tabla es una GvistaH
(e esta manera cualDuier cambio realiIado en el servidor 1# se verJ re/le8ado inmediatamente en el servidor
2# de esta manera tenemos la in/ormaciCn actualiIada y lo mJs importante distribuida en varios nodos al
mismo tiempo.
CONFLICTOS EN LA REPLICACION
-s ampliamente necesario realizar y definir un sistema altamente robusto, para resolver los conflictos de
datos *ue se puedan producir. Como se +a estado e"plicando anteriormente, los cambios dentro de la #ase
de $atos $istribuida de producen y se propagan concurrente y asincrnicamente, lo *ue produce
conflictos si dos o mas sitios modifican el mismo dato en sitios distintos.
Q5or *u utilizar mtodos de resolucin de conflictosR
$ic+os mtodos se usan, principalmente, por dos motivos7
5ara asegurar la convergencia de los datos7 -sto *uiere decir, *ue los datos no deben ser
actualizados inmediatamente, pero si es imprescindible, *ue en alg4n tiempo finito se propaguen
todos los cambios en todos los repositorios, para asegurar *ue todo el sistema posee los mismos
datos.
5ar evitar los errores en cascada7 -sto, evita *ue el sistema caiga en una falla *ue llevar al sistema a la
inestabilidad. -l sistema debiese comportarse de manera suave y sin problemas.
-s conveniente considerar lo siguiente, en el dise=o de un sistema de resolucin de conflictos7
0onitorear la ocurrencia de cual*uier conflicto sin resolver.
1sar un mtodo de notificacin, para enviar informacin a los dems sitios sobre cual*uier conflicto
inesperado, *ue sea detectado.
-stos puntos son la base para cual*uier sistema *ue pretenda manear los conflictos *ue se producen en la
actualizacin de los datos. -n contraste con lo anterior, si todos los sitios propagaran los cambios
sincrnicamente y no se tuviesen sitios Ksnaps+otL actualizables, no debiesen ocurrir conflictos y no
se necesitar,a dise=ar un mtodo de resolucin de conflictos.
8ipos de conflictos
-"isten principalmente S tipos de conflictos *ue deben ser detectados por el sistema en cuestin7
5ara ver trabaos similares o recibir informacin semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com
Conflictos de .ctualizacin7 vale decir, cuando dos sitios intentan actualizar la misma informacin. -n
este caso se debe decidir cual de las dos actualizaciones debe ser +ec+a primero.
Conflictos de 1nicidad7 -n 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 #orrado7 se producen conflictos al borrar una determinada fila, sobre todo si un cliente
intenta realizar aplicaciones sobre ella y los cambios aun no +an sido realizados.
-ligiendo un !istema de Resolucin de Conflictos :inalmente, la eleccin de un buen sistema de resolucin
de conflictos puede tomar tres grandes variantes7
1tilizar un !istema 5ropietario7 -"isten muc+os motores de $$#, cada uno de los cuales posee sus
propias +erramientas para solucionar estos conflictos.
$ise=ar un !istema 5ropio7 8ambin se puede dise=ar un sistema propio para tratar de meor manera
los re*uerimientos espec,ficos para cada caso.
1tilizar un H,brido entre .mbos7 8ambin es posible utilizar el sistema propietario como base, y
atacar las debilidades de este con un sistema dise=ado propio.
DISTRIBUCION VS REPLICACION
&os trminos distribucin de datos y replicacin de datos estn relacionados pero son distintos.
-n una #$ distribuida pura 2sin replicacin3 el sistema manea una copia simple de todos los datos.
$istribuir los datos consiste en situarlos en las distintas #$.
-l trmino replicacin se refiere a realizar copias de los mismos datos en diferentes #$.
&a replicacin se utiliza en #$$ para meorar la disponibilidad y seguridad de los datos. !e pretende
proporcionar distintas alternativas de acceso a los mismos, as, como meorar el rendimiento, a travs de
accesos locales a copias de datos remotos.
&a replicacin complica la administracin de la #$$ ya *ue es necesario mantener en todo momento la
consistencia de los datos en todas las rplicas.
CONCLUSIN
.prendimos a +acer una replicacin de instantnea de una tabla en oracle usando dos servidores
uno *ue es el servidor *ue tiene la tabla a replicar 2R.00!3 y un cliente 2<%!3 el cual puede tener
los datos de la tabla para consultar, cabe se=alar *ue la vista materializada es de solo lectura,
debido a *ue es una instantnea, tambin configuramos los accesos de los servidores mediante el
arc+ivo de configuracin tnsna4es.ora y dimos de alta los servidores en los arc+ivos, lo *ue nos
daba como resultado la comunicacin entre ambos y logrando as, poder generar el enlace de base
de datos entre ellos.
8eniendo la posibilidad de realizar consultas distribuidas entre los servidores.
:inalizando en la creacin de la tabla de &%>! y la vista materializada, para poder consultar los
datos replicados de manera local.
-l aprender a usar %R.C&- re*uiere una curva de aprendizae no muy complicada, y se puede
+acer con la ayuda de una gu,a *ue es dif,cil de encontrar. 0uc+a informacin est en ingles.
.utor7
Robert Cupuern
rcupueranEya+oo.com
:acultad de sistemas mercantiles
Carrera de sistemas e informatica
!istemas distribuidos ''
5ara ver trabaos similares o recibir informacin semanal sobre nuevas publicaciones, visite www.monografias.com
www.monografias.com
.sesor7 'ng. %scar &lerena
'barra DNJN
5ara ver trabaos similares o recibir informacin semanal sobre nuevas publicaciones, visite www.monografias.com

Potrebbero piacerti anche