Sie sind auf Seite 1von 27

Manual ORACLE 9i

Galo Barahona galoferb@hotmail.com


1. Introduccin
2. Instalacin de ORACLE 9i
3. Seridor ORACLE
!. Estructura de las "ases de datos Oracle
#. Co$%onentes del SGA &S'ste$ Glo"al Area( ' su )tili*acin
+. Co$%onentes del ,GA &,rocess Glo"al Area( ' su )tili*acin
-. Estructura L.ica
/. Estructura 01sica
9. 2ransacciones
13. ,riile.ios del Siste$a Oracle 9i
11. Crear 2a"las
12. Bases de datos 4istri"uidas
13. Con0i.urando El Seridor
Introduccin
SIS2EMA GES2OR 4E BASE 4E 4A2OS &SGB4(
Est concebido con el fin de manejar grandes cantidades de informacin, adems de admitir conexiones
concurrentes de multitud de usuarios (entornos multi-usuario) hacia los mismos datos.
Oracle aporta un !"# $ue estar ubicado en un hard%are espec&fico ' bajo un sistema operati(o
determinado.
)a eleccin del entorno de trabajo (hard%are, .O. ' tipolog&a de la estructura cliente*ser(idor) ser una
decisin $ue estar acorde con las necesidades del propio sistema de informacin.
)as principales funcionalidades aportadas por todo el !"# Oracle son+
oporte ' tratamiento de una gran cantidad de datos (!b'tes).
oporte de una gran cantidad de usuarios accediendo concurrentemente a los datos.
eguridad de acceso a los datos, restringiendo dicho acceso seg,n las necesidades de cada
usuario.
-ntegridad referencial en su estructura de base de datos.
.onecti(idad entre las aplicaciones de los clientes en sus puestos de trabajo ' el ser(idor de datos
Oracle (estructura cliente*ser(idor.
.onecti(idad entre bases de datos remotas (estructura de bases de datos distribuidas)
/ortabilidad.
.ompatibilidad.
A4MI5IS2RA4OR 4E BASES 4E 4A2OS &4BA(
Es el responsable para el buen funcionamiento de toda una estructura de datos ' todo su entorno de
trabajo. Esta persona deber tener un alto conocimiento de todo el sistema $ue en(uel(e al !"#
obre este recae una alta responsabilidad, debido a las gra(es repercusiones $ue puede traer una mala
gestin de la informacin.
)as funciones $ue se le asignan a un #"0 Oracle son las siguientes+
-nstalacin ' actuali1acin del soft%are del !"#.
0nali1ar e instalar en la base de datos las aplicaciones con las $ue (an a interactuar los usuarios.
Esto, bsicamente lle(a consigo+
o 0signacin de espacios (tablespaces) en la base de datos ' ubicacin de los mismos en los
discos de la m$uina.
o .reacin de todos los objetos (tablas, &ndices, (istas, etc.) re$ueridos por cual$uiera de las
aplicaciones, as& como su dimensionamiento dentro de la base de datos.
o 0ctuali1acin de los parmetros del sistema para el correcto funcionamiento de las
aplicaciones.
o .reacin de los usuarios ' asignacin de pri(ilegios, con el fin de controlar la seguridad de
acceso de estos a la informacin de la base de datos.
o .ontrolar ' monitori1ar los accesos de los usuarios a la base de datos. Excesi(as
conexiones pueden pro(ocar cuellos de botella en la red ' blo$ueos en algunos de los
recursos de la m$uina.
o !estionar ' optimi1ar el rendimiento de los procesos contra la base de datos. Esta ser una
de las funciones ms importantes del administrador, por$ue de nada sir(e tener una buena
infraestructura montada si los colapsos son continuos ' la lentitud en los accesos es
constante.
o /lanificacin de los sistemas de bac2up ' recuperacin de los datos en caso de $ue sea
necesario.
o .ontrol del crecimiento de los archi(os ' procesos generados en el sistema por parte del
mismo !"#.
Instalacin de ORACLE 9i
e ejecuta el 3ni(ersal -nstaller de Oracle, el programa 4a(a encargado de reali1ar las instalaciones '
desinstalaciones. 5ras su ejecucin ocurre lo siguiente+
Elegir una ruta para la carpeta 6ome de Oracle. Esa carpeta es la encargada de almacenar el soft%are de
base de datos de Oracle. e nos pregunta $u7 nombre tendr esa carpeta 6ome (por defecto se llama
Ora6ome89) ' la ubicacin de la misma (normalmente dentro de la carpeta Oracle en el disco con ms
espacio disponible). /ulsar iguiente
0parece una lista con las posibles instalaciones $ue permite el .#. )gicamente se elegir #atabase si es
la base de datos lo $ue $ueremos instalar.
)a opcin :Client; permite instalar slo las aplicaciones necesarias para utili1ar un ser(idor Oracle
pre(iamente instalado (la instalacin cliente puede instalar herramientas de 0dministracin o herramientas
Runti$e, para desarrolladores).
En la siguiente pantalla se nos pregunta $u7 (ersin de Oracle instalaremos. e nos ofrecen tres
posibilidades+
6ersin Enter%rise. <ersin con todas las posibilidades de Oracle
6ersin Est7ndar. <ersin para grupos de trabajo o aplicaciones de un solo departamento.
6ersin ,ersonal. .omo la Enterprise pero para un solo usuario ' ordenador
,ersonali*ada. /ermite clarificar mejor la forma de instalar Oracle (es la ms complejo, pero
la $ue ms opciones permite)
Elegir nuestra opcin ' pulsar Si.uiente
e nos pregunta (sal(o $ue ha'amos elegido la (ersin personali1ada) por el tipo de base de datos $ue se
crear en la instalacin. =a en la instalacin se crea una base de datos $ue puede ser+
,ro%sito .eneral. Bases de datos $ue se utili1an para todo tipo de tareas (ante la duda con(iene utili1ar
esta opcin).
,rocesa$iento de transacciones8 preparada para utili1ar transacciones mu' a menudo.
Al$acenes de datos8 "ase de datos pensada para primar el almacenamiento de grandes (ol,menes de
datos (9arehousin.).
,ersonali*ada8 permite especificar ms claramente la base de datos a utili1ar (esta opcin re$uiere ms
pasos $ue las otras)
Slo so0t:are8 instala el soft%are de base de datos sin crear una primera base de datos (habr $ue crearla
ms adelante
Elegir la opcin preferida (ante la duda elegir uso General) ' pulsar Si.uiente
i se est migrando de una (ersin anterior aparecer un cuadro $ue nos permite migrar (o no) los datos de
la (ersin anterior.
i el e$uipo tiene Microso0t 2ransaction Serer se nos pedir el n,mero de puerto (normalmente el 9>?>)
$ue ha de utili1arse para usar dicho soft%are de transacciones.
e nos pide el identificador (SI4, S'ste$ Identi0ier) ' el nombre global de la base de datos. El nombre
global es un nombre ,nico para la red a la $ue pertenece el ser(idor en el $ue instalamos Oracle (por
ejemplo inicial.donbosdco.local). El -# es el nombre $ue identifica a la base de datos en el ordenador en el
$ue estamos. En el cuadro se pone primero el nombre global el instalador sugiere el -# correspondiente.
/ulsar Si.uiente
-ndicar la ruta en la $ue se instalarn por defecto los archi(os de la base de datos. Es con(eniente $ue esta
carpeta est7 en una unidad distinta a la de la carpeta ;o$e de Oracle, para acelerar el rendimiento. Esta
carpeta se suele llamar Ora4ata.
-ndicar el juego de caracteres $ue se utili1ar en la base de datos. @ormalmente se toma el juego de
caracteres $ue utili1a el sistema operati(o. Este dato si se rellena mal ocasiona $ue algunos de nuestros
caracteres nacionales, nunca se muestren adecuadamente.
5ras aceptar el cuadro anterior se nos muestra un resumen de la instalacin. 5ras este resumen comien1a
la copia de los archi(os en nuestro disco duro. Este es el paso ms largo, se pueden tardar bastantes
minutos (incluso alguna hora) en completarse).
En segundo plano se configurarn los ser(icios de red necesarios para el funcionamiento de Oracle, la base
de datos ' el ser(idor http de Oracle. (<er imagen anterior)
En cuanto se instala la base de datos ' se lan1a la instancia asociada a ella (la instancia es la base de datos
en ejecucin, desde ese instante al arrancar Aindo%s la instancia estar en memoria sal(o $ue la
detengamos) se nos piden las contraseBas asociadas a los usuarios administrati(os = ' =5EC. Es
mu' importante recordarlas ' no perderlas.
,ara co$%ro"ar si la instalacin es correcta8 se de"e hacer lo si.uiente.
D. -r al grupo de programas de Oracle en Aindo%s (normalmente Inicio<,ro.ra$as<Oracle ;o$e92)
' hacer clic sobre Enter%rise Mana.e Console (consola de administracin)
9. 0cti(ar la casilla Iniciar en $odo autno$o ' aceptar el cuadro
?. #esde el programa de administracin, expandir el apartado Bases de datos. 0parecern las bases
$ue hemos creado, despu7s se nos pedir un nombre de usuario ' contraseBa para conectarnos
con la base de datos. -nicialmente habr $ue conectar con el usuario =5EC ' la contraseBa $ue
especificamos para dicho usuario en la instalacin indicar $ue conectamos como =#"0
(administrador) lo $ue nos permite reali1ar todo tipo de tareas.
Servidor ORACLE
3n ser(idor Oracle es el soft%are $ue permite una administracin ' desarrollo de bases de datos. 5iene tres
posibilidades de ejecucin+
Local o "asada en host. El ser(idor se ejecuta en la misma m$uina en la $ue se conectan los clientes. )a
(ersin personal de Oracle database, produce ser(idores de este tipo.
Cliente<Seridor. Enfo$ue ms t&pico. El ser(idor reside en un ordenador distinto respecto al $ue los
usuarios (an a usar para conectarse a la base de datos.
Cliente<Seridor de A%licaciones<Seridor. )os usuarios acceden a un ser(idor de aplicaciones (Oracle
A%%lication Serer) $ue, a su (e1, accede al ser(idor Oracle. )os tres elementos (cliente, ser(idor de
aplicaciones, ser(idor Oracle) pueden estar en tres m$uinas distintas.
Ele$entos del seridor Oracle
El ser(idor Oracle est formado por dos elementos+
La instancia de la "ase de datos. .onsta de datos (llamados estructuras de memoria) ' de procesos en
memoria (procesos bac2ground) necesarios para dar ser(icio a los usuarios de la base de datos. /uede
haber ms de una instancia si se distribu'e la base de datos en ms de una m$uina. .ada instancia abre
una ' slo una base de datos.
=icheros en disco. Eepresentan la base de datos en s&. .onsta de+
Estructuras l.icas> 5ablespaces, objetos del es$uema de usuario.
Estructuras 01sicas> )os ficheros de datos almacenados en disco. )os ficheros de datos (asociados
a los tablespaces), los ficheros redo log ' los ficheros de control
Estructura de las bases de datos Oracle
#esde el punto de (ista de Oracle, una "ase de datos es una coleccin de datos tratados como una ,nica
unidad. 3na base de datos Oracle contiene tres tipos de ficheros+
Archios de datos. .ontiene los datos actuales de la base de datos as& como el diccionario de datos.
Archios rehacer &redo logs(. 0lmacenan datos recuperables en caso de error gra(e.
Archios de control. @ecesarios para mantener la integridad de la base de datos.
0dems se utili1an otros archi(os de forma auxiliar
Archios de %ar7$etros. Fue definen algunas caracter&sticas de una instancia Oracle.
Archios de contrase?as. Fue sir(en para autentificar a los usuarios.
Co%ias de archios rehacer. 3tili1adas para la recuperacin de datos.
Instancia de la "ase de datos
)a instancia de la base de datos es uno de los dos elementos de cual$uier base de datos Oracle. ir(e para
gestionar los datos de la base de datos ' proporcionar ser(icio a los usuarios $ue acceden a la misma.
Est compuesta de+
Estructuras en $e$oria.
,rocesos en se.undo %lano &background(.
Componentes del SGA (System Global Area) y su tili!acin
El !0 es un rea de memoria compartida $ue se utili1a para almacenar informacin de control ' de datos
de la instancia. e crea cuando la instancia es le(antada ' se borra cuando 7sta se deja de usar.
ir(e para facilitar la transferencia de informacin entre usuarios ' tambi7n almacena la informacin
estructural de la "# ms frecuentemente re$uerida.
El !0 es utili1ado para el intercambio de datos entre el ser(idor ' las aplicaciones cliente.
3na instancia Oracle puede abrir una sola base de datos a la (e1.
Co$%onente )tili*acin
Li"rar' Cache 0lmacena las sentencias F) mas recientes en memoria.
4ata"ase 4ictionar' Cache "uffer para el diccionario de datos. 5ablas, columnas, tipos,
&ndices.
4ata"ase Bu00er Cache "uffer de la base de datos, contiene blo$ues de datos $ue han
sido cargados desde los #atafiles.
Redo Lo. Bu00er Cac "lo$ues de datos $ue han sido actuali1ados.
Componentes del "GA ("rocess Global Area) y su tili!acin
El /rocess !lobal 0rea es un rea de memoria utili1ada por un proceso Oracle. Esta 1ona de memoria es
un rea no compartida en la cual se puede escribir ' contiene+
Grea e almacenamiento
-nformacin de la sesin
Estado del cursor
Espacio de la pila
Co$%onente )tili*acin
,MO5 &/rocess Conitor( Conitorea los procesos de los usuarios en caso de $ue la
conexin falle.
SMO5 &'stem Conitor( /roceso encargado de recuperar la instancia ' abrir la base de
datos en caso de $ue ocurra alguna falla.
C@,2 &.hec2/oint /rocess( intoni1a las tareas de grabacin en "#.
4B9R &#atabase Arite( Escribe los blo$ues de datos de la memoria a la base de
datos.
Es uno de los dos ,nicos procesos $ue tienen permitido
escribir en los archi(os de datos $ue componen la base de
datos Oracle.
LG9R &)og Ariter( !raba los blo$ues del Eedo )og del Huffer a los archi(os
Eedo )og Hile.
Escribe las transacciones $ue se encuentran en los Eedo )og
a #isco cuando ocurre un commit.
AerarBu1a l.ica ' 01sica de los datos
3na base de datos tiene una estructura lgica ($ue se manipula mediante comandos) ' una estructura f&sica
(la $ue realmente se almacena en disco).
Estructura L#ica
Est formada por+
2a"les%aces. /ertenecen slo a una base de datos ' sir(en para agrupar los datos de la base de datos.
.ada tablespace est formado f&sicamente por uno o ms archi(os de datos. Estn di(ididos en > o ms
segmentos. e pueden (isuali1ar en l&nea o fuera de l&nea ' pueden ser acti(ados en slo lectura o en
lectura * escritura.
Se.$ento. ir(en para almacenar las estructuras lgicas de la base de datos (tablas, &ndices,...). 3n
tablespace se compone de uno o ms segmentos. /ero el mismo segmento no puede estar en ms de un
tablespace.
ECtensiones. #i(isin $ue se hace a cada segmento. El #"0 puede aBadir o $uitar extensiones a los
segmentos a fin de hacer $ue ganen o pierdan espacio.
BloBue Oracle o "loBue de datos. Es la unidad m&nima de datos para Oracle ' se corresponde a una o
ms unidades de datos m&nimas del sistema operati(o en el $ue nos encontremos.
Estructura $%sica
Archios de datos. on archi(os en disco $ue sir(en para almacenar los datos f&sicamente (en una unidad
de disco). .ada archi(o de datos pertenece slo a un tablespace. u tamaBo se puede gestionar.
BloBues de siste$a. )a di(isin m&nima de los datos $ue hace el sistema operati(o.
&ransacciones
)os cambios en la base de datos no son guardados hasta $ue tras una serie de instrucciones se decide
lle(ar a cabo esos cambios. 6asta ese momento todo lo reali1ado se toma como pro(isional. 3n fallo en la
m$uina permitir&a in(ertir los cambios. 3na transaccin son (arias operaciones F) $ue forman una
unidad de trabajo. .omien1a cuando una persona se conecta ' de ah& hasta $ue ejecuta la instruccin
co$$it (ejecutar la transaccin) o roll"acD (anular la transaccin). )a anulacin deja la base de datos en el
estado anterior al comien1o de la transaccin. 5ras un commit o un rollbac2 comien1a la siguiente
transaccin.
En Oracle se admite adems el uso de %untos de ru%tura (chec2points) para almacenar (alores
intermedios ' (ol(er a cual$uier de ellos si interesa. /ero esto ralenti1a excesi(amente el sistema.
)suarios
)os usuarios son las personas $ue acceden de una forma o de otra a la base de datos. .ada usuario tiene
una (ista determinada de la base de datos. 6a' (arios conceptos sobre los usuarios a tener en cuenta.
,riile.ios
.ontrolan el permiso $ue posee un usuario de ejecutar una determinada instruccin F).
3n usuario $ue $uiera crear una tabla, deber tener el pri(ilegio (o permiso) adecuado para ello.
0dems se pueden colocar pri(ilegios en los objetos, es decir, un usuario propietario de una tabla puede
otorgar pri(ilegios a esa tabla (se tratar&a de un pri(ilegio a ni(el de objeto) para $ue ha'a otros usuarios
$ue la puedan usar.
"rivile#ios del Sistema Oracle 9i
/ermite al usuario hacer ciertas tareas sobre la "#, como por ejemplo crear un 5ablespace. Estos permisos
son otorgados por el administrador o por alguien $ue ha'a recibido el permiso para administrar ese tipo de
pri(ilegio.
En general los permisos de sistema, permiten ejecutar comandos del tipo ##) (#ata definition )anguage),
como .EE05E, 0)5EE ' #EO/ o del tipo #C) (#ata Canipulation )anguage.
,riile.io 4escri%cin
CREA2E A5E I54EF .rear cual$uier &ndice.
CREA2E G,)BLICH SE5O5EM .rear sinnimos Ip,blicosJ.
CREA2E GA5EH 2ABLE
.rear tablas. El usuario debe tener cuota en el espacio de tablas, o ha de tener
asignado el pri(ilegio 3@)-C-5E# 50")E/0.E.
CREA2E GA5EH 6IE9 .rear (istas.
AL2ER A5E I54EF 0lterar cual$uier &ndice.
AL2ER A5E 2ABLE 0lterar cual$uier tabla
4RO, A5E I54EF "orrar cual$uier &ndice.
4RO, A5E SE5O5EM "orrar cual$uier sinnimo.
4RO, ,)BLIC SE5O5EM "orrar sinnimos p,blicos.
4RO, A5E 6IE9 "orrar cual$uier (ista.
4RO, A5E 2ABLE "orrar cual$uier tabla.
SELEC2 A5E 2ABLE Efectuar selecciones de cual$uier tabla o (ista.
I5SER2 A5E 2ABLE -nsertar en cual$uier tabla o (ista.
4ELE2E A5E 2ABLE "orrar filas de cual$uier tabla o (ista, ' tambi7n truncar.
AL2ER SESSIO5 0lterar los parmetros de la sesin.
CREA2E SESSIO5 .onectarse a la "#.
CREA2E ,RO=ILE .rear perfiles de usuario.
CREA2E ROLE .rear roles.
CREA2E ROLLBAC@
SEGME52
.reacin de segmentos de rollbac2.
CREA2E 2ABLES,ACE .rear espacios de tablas.
CREA2E )SER .rear usuarios.
AL2ER ,RO=ILE 0lterar perfiles existentes.
AL2ER A5E ROLE 0lterar cual$uier rol.
AL2ER ROLLBAC@ SEGME52 0lterar segmentos de rollbac2.
AL2ER 2ABLES,ACE 0lterar espacios de tablas.
AL2ER )SER 0lterar usuarios.
4RO, ,RO=ILE "orrar un perfil existente.
4RO, A5E ROLE "orrar cual$uier rol.
4RO, ROLLBAC@ SEGME52 "orrar un segmento de rollbac2 existente.
4RO, 2ABLES,ACE "orrar un espacio de tablas.
4RO, )SER "orrar un usuario. 0Badir .0.0#E si el usuario posee objetos.
AL2ER 4A2ABASE /ermite una sentencia 0)5EE #050"0E.
GRA52 A5E ,RI6ILEGE Otorgar cual$uiera de estos pri(ilegios.
GRA52 A5E ROLE Otorgar cual$uier rol a un usuario.
)5LIMI2E4 2ABLES,ACE /uede usar una cantidad de almacenamiento ilimitada.
4RO, ,RO=ILE "orrar un perfil existente.
,riile.ios de O"Ieto
Este tipo de pri(ilegios le permite al usuario hacer cierta accin en un objeto de la base de datos, como
puede ser una tabla, (ista, funcin etc. i a un usuario no se le dan estos pri(ilegios solo podr&as acceder a
sus propios objetos. = estos tipos de pri(ilegios los da el dueBo del objeto, el administrador o alguien $ue
ha'a recibido este permiso expl&citamente.
)os pri(ilegios sobre objetos consienten $ue un objeto (creado por un usuario) estos pri(ilegios puede ser
de E)E.5, de 3/#05E, de #E)E5E, de -@EE5.
,riile.io 4escri%cin
SELEC2 /uede consultar a un objeto.
I5SER2
/uede insertar filas en una tabla o (ista. /uede especificarse las columnas donde se permite
insertar dentro de la tabla o (ista.
),4A2E
/uede actuali1ar filas en una tabla o (ista. /uede especificarse las columnas donde se permite
actuali1ar dentro de la tabla o (ista.
4ELE2E /uede borrar filas dentro de la tabla o (ista.
AL2ER /uede alterar la tabla.
I54EF /uede crear &ndices de una tabla.
RE=ERE5CES /uede crear cla(es ajenas $ue referencie a esta tabla.
EFEC)2E /uede ejecutar un procedimiento, pa$uete o funcin.
REA4 /ermite leer archi(os asociados con objetos "H-)E en el directorio del sistema
Rol
on agrupaciones de pri(ilegios $ue facilitan la tarea de gestionar a los usuarios. 0s& cuando una serie de
usuarios (an a tener los mismos pri(ilegios, se crea un rol $ue contenga esos pri(ilegios ' a esos usuarios
se les asigna el rol. Oracle proporciona (arios roles 'a preparados, por ejemplo el rol #"0 da pri(ilegio
absoluto a un usuario.
,er0iles
)os perfiles permiten definir limitaciones de recursos. /or ejemplo podemos definir un perfil $ue limite el
n,mero de sesiones abiertas concurrentemente por un usuario cual$uiera, ' posteriormente aplicar este
perfil a uno o ms usuarios concretos.
ESJ)EMA BASICO 4E SEG)RI4A4
EsBue$as
)os es$uemas estn asociados a los usuarios. 0grupan los objetos lgicos $ue pertenecen al usuario. Es
decir es el conjunto de tablas, (istas, sinnimos, instantneas, enlaces de base de datos, procedimientos '
funciones, pa$uetes,...
.ada usuario tiene su propio es$uema ', en principio, un usuario no tiene acceso a los elementos de otro
usuario, sal(o $ue sea un administrador o $ue otro usuario ceda el pri(ilegio de utili1acin de uno o ms de
sus objetos al resto de usuarios.
Crear 2a"les%aces8 )suarios8 2a"las
2a"les%aces
/ara crear un tablespaces se inicia la sesin en la base de datos donde deseamos trabajar.
@os dirigimos a Al$acena$iento8 2a"les%aces8 clic derecho ' crear
En esta (entana creamos el tablespaces 2)RC8 2 identifica $ue es tablesapace, en la parte de 0rchi(o de
datos creamos el datafile, utili1amos el mismo nombre del tablespace precedido por la letra 48 $ue lo
identifica como 4ata0ile. #eterminamos el estado Online
El tipo de tablespace, ser permanente, en el cual trabajaremos, se recomendar&a crear un tablespace
temporal propio ' un utili1ar el $ue existe por defecto.
Crear )suarios
/ara crear usuario nos dirigimos a Se.uridad8 )suarios8 clic derecho .rear
En esta (entana se ingresan+
El nombre del usuario, el perfil creado para este usuario, la contraseBa, seleccionamos los tablespaces
creados para este usuario,
En las pestaBas de Rol ' Siste$a8 otorgamos los pri(ilegios al usuario, como se puede obser(ar en la
siguiente pantalla.
Hinalmente creamos el usuario.
Crear &ablas
/ara crear tablas damos clic en O"Ieto8 Crear.
e abrir una (entana donde aparecen todos los objetos $ue podemos crear, seleccionamos tablas
i creamos la tabla utili1ando el asistente, ingresamos el nombre da la tabla, elegimos el usuario creado
como es$uema, ' el tablesapace
En esta (entana creamos los campos de la tabla, detallando el tipo de datos, tamaBo ' (alor por deefecto.
En esta pantalla creamos la cla(e primaria de la tabla
0l finali1ar nos mostrara el cdigo F) para crear la tabla.
Crear Enlace a la "ase de datos %ara 4istri"ucin
Editaremos el archi(o tnsnames.ora
:.+KoracleKproductKD>.9.>KdbLDKnet%or2KadminKtnsnames.ora;, ' agregaremos las siguientes l&neas de
configuracin para $ue el ser(idor Oracle recono1ca nuestro ser(idor remoto
3na (e1 creada la conexin creamos el enlace a la base de datos, en el ser(idor, nos dirijimos a
4istri"uido8 Enlaces de Base de 4atos8 clic derecho crear. En la (entana ingresamos el nombre de la
conexin, mediante un usuario fijo (el usuario de la base de datos a la cual $ueremos conectar)
En este caso si Buere$os distri"uir las "ases de datos K)RC)J)I.)RC)J)I.LOCALL ' KO2A6ALO.
)RC)J)I.LOCALL en la "ase de datos K)RC)J)I.)RC)J)I.LOCALL crea$os el enlace a
KO2A6ALO.)RC)J)I.LOCALL utili*ando un usuario de KO2A6ALO.)RC)J)I.LOCALL8 ' en la "ase
de datos K)RC)J)I.)RC)J)I.LOCALL crea$os el enlace a KO2A6ALO.)RC)J)I.LOCALL
utili*ando un usuario de K)RC)J)I.)RC)J)I.LOCALL
'ases de datos (istribuidas
e trata de una base de datos a ni(el lgico (los usuarios la manejan como una base de datos normal), pero
$ue en realidad (f&sicamente) est implementada en (arias ubicaciones f&sicas, incluso en m$uinas
diferentes ' distantes.
.ada m$uina ejecuta su propia instancia ' conjuntos de archi(os ' todas se conectan en red para hacer
$ue el usuario no tenga $ue cambiar su cdigo para reflejar esta distribucin. )a dificultad de esta estructura
suele estar ali(iada por medio de instantneas $ue graban momentneamente los datos de las tablas
distantes. /ermiten trabajar con los datos copiados ' se programan para $ue cada cierto tiempo recojan
nue(amente los datos a fin de reflejar sus cambios.
!racias a las instantneas no hace falta una sobrecarga tan excesi(a de las instantneas de la base de
datos.
)a replicacin de datos consiste en el transporte de datos entre dos o ms ser(idores, permitiendo $ue
ciertos datos de la base de datos est7n almacenados en ms de un sitio, ' as& aumentar la disponibilidad de
los datos ' mejorar el rendimiento de las consultas globales.
En el presente trabajo se muestra de una manera detallada paso a paso como distribuir una base de datos
en Oracle hacia otro ser(idor Oracle, mediante el uso de (istas materiali1adas.
)a replicacin permite tener una copia exacta de una base de datos alojada en un ser(idor (maestro) $ue se
guardar en otro ser(idor (escla(o).
5odas las modificaciones $ue se hagan en la base de datos del ser(idor maestro se actuali1arn
inmediatamente en el ser(idor escla(o.
Esto no es una copia de seguridad, 'a $ue si borramos una fila en la base de datos maestra, tambi7n se
borrar en la base de datos escla(a.
Es$uema de base de datos distribuida en Oracle
4istri"ucin
)as m$uinas deben tener instalado el Oracle8i, en modo dedicado. .rear una base de datos en cada una
de ellas.
Con)#urando El Servidor
Editaremos el archi(o tnsnames.ora
:.+KoracleKproductKD>.9.>KdbLDKnet%or2KadminKtnsnames.ora;, ' agregaremos las siguientes l&neas de
configuracin para $ue el ser(idor Oracle recono1ca nuestro ser(idor remoto, usando una resolucin de
nombres tns.
YOS =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS =
(COMMNITY = TCP!
(PROTOCOL = TCP!
("OST = #os#$!
(PORT = $%&$!
!
!
(CONNECT_DATA =
(SID = 'E!
!
!
#onde EOS es el nombre del ser(idor remoto $ue agregamos, es decir un alias, ,RO2OCOL es el
protocolo de comunicacin hacia el ser(idor, ;OS2 es el nombre la direccin -/ de la computadora $ue
tiene el ser(idor, ,OR2 indica el numero de puerto al cual se conectara el ser(idor ' finalmente -# $ue es
el nombre de ser(icio del ser(idor remoto.
#e esta manera nos podremos conectar con el ser(idor remoto usando la nomenclatura de conexin+
3suario*/ass%ord@0liasL#elLer(idor+I/uertoJ
#onde )suario es cual$uier usuario (alido del ser(idor remoto, ,ass:ord es la contraseBa del usuario
remoto, MAliasNdelNseridor es el nombre $ue hemos aBadido en el archi(o de configuracin
tnsnames.ora, ' finalmente el ,uerto $ue indica a $ue puerto se conectara este parmetro es opcional, por
defecto las conexiones se reali1an al puerto DM9D.
3na (e1 editado ' configurado archi(o, tendremos $ue configurar nuestro ser(idor estableciendo un 4BLinD
un enlace a base de datos.
3sando la siguiente instruccin+
.reate database lin2 N@ombreL#elL#")in2N connect to 3suario identified b' N/ass%ordN using O6O5I+
/3EE5OJ*-#O
#e la siguiente instruccin tenemos 5o$"reN4elN4BLinD el cual es un nombre cual$uiera para identificar a
$ue base de datos estamos ligados, 3suario el cual debe de ser un usuario remoto (alido, ,ass:ord es la
contraseBa del usuario remoto, ;OS2 es el nombre direccin ip del ser(idor, ,)ER2O indica el numero
del puerto al $ue se conectara el parmetro es opcional, el puerto por defecto es el DM9, ' por ultimo SI4 es
el nombre del ser(icio al cual se conectara nuestro ser(idor.
)a cual nos proporcionara la facilidad de hacer consultas del tipo+
O"IetoM4BLinD
#onde Objeto puede ser cual$uier tipo de objeto en la base de datos remota ' @#")in2 es el enlace a la
base de datos, de este modo podremos usar las tablas, (istas, triggers ' dems objetos en el ser(idor.
Estos pasos de configuracin se hacen en los dos ser(idores para $ue se puedan comunicar, es decir
tenemos $ue dar de alta el ser(idor D en el ser(idor 9 ' (ice(ersaP adems tenemos $ue dar de alta un
#")in2 para cada uno de ellos, una (e1 teniendo configurados los ser(idores podremos iniciar la
replicacin.
Re%licando 4atos
0hora antes de replicar los datos tenemos $ue tener datos, necesitamos tener cuando menos una tabla en
la base de datos, ahora crearemos una tabla para hacer esta prctica la cual llamaremos+ .OC/E0P la
cual estar en el ser(idor D (E0CC) ' ser replicada hacia el ser(idor 9 (=O).
3tili1aremos las sentencias de F) /lus para crear la tabla con los siguientes campos de la siguiente
manera+
.EE05E 50")E E0CC..OC/E0
(
.O#-!O <0E.60E9 (Q "=5E) @O5
@3)),
/EO<EE#OE <0E.60E9 (?>
"=5E) @O5 @3)),
/EO#3.5O <0E.60E9 (RM "=5E)
@O5 @3)),
/EE.-O.OC/E0 -@5E!EE @O5
@3)),
/EE.-O<E@50 -@5E!EE @O5
@3)),
.0@5-#0# @3C"EE @O5 @3))
)
= posteriormente+
0)5EE 50")E E0CC..OC/E0
0## (
/E-C0E= SE=
(.O#-!O)
3-@! -@#ET
50")E/0.E 3EE
/.5HEEE D>
-@-5E0@ 9
C0T5E0@ 9MM
5OE0!E (
-@-5-0) URS
C-@ET5E@5 D
C0TET5E@5
3@)-C-5E#
/.5-@.EE0E >
))P
#espu7s de crear la tabla agregaremos datos en ella, $uedando de la siguiente manera+
0hora reali1aremos una consulta desde el ser(idor 9 (=O) usando los #")in2, $uedando de la siguiente
manera+
E)E.5 V HEOC .OC/E0@#")-@SE0CC
0rrojando la siguiente informacin+
.omo podemos obser(ar la consulta funciona es decir $ue podemos consultar objetos desde el ser(idor 9,
ahora crearemos en el ser(idor D (E0CC), una tabla )O! para la replicacin de la tabla .OC/E0, con
la siguiente instruccin+
CREATE MATERIALIZED VIEW LOG ON RAMMS.COMPRAS
NOCACHE
LOGGING
NOPARALLEL;
Esta tabla guardara los datos cambiados ' actuali1ara de manera instantnea todas las replicas de la tabla
.OC/E0. 0hora desde el ser(idor 9 (=O) crearemos nuestra (ista materiali1ada para recibir los datos de
la tabla original, a este procedimiento de replica se le denomina replica en forma de instantnea o de
snapshot, lo haremos usando la siguiente instruccin.
CREATE MATERIALIZED VIEW RAMMS.COMPRAS
BUILD IMMEDIATE
REFRESH FAST ON COMMIT
AS
SELECT * FROM COMPRAS@DBLINKRAMMS;
0hora en el ser(idor 9 (=O), 'a disponemos de una copia exacta de la tabla compras del ser(idor D
(E0CC), ' se actuali1ara automticamente cuando se haga un commit en las transacciones, ahora
podemos ejecutar la sentencia+
SELECT * FROM COMPRAS;
E inmediatamente despu7s podremos apreciar el resultado de la consulta, ntese $ue en el ser(idor 9, no
exist&an datos para la tabla .OC/E0 de hecho .OC/E0 no es una tabla es una W(istaX
#e esta manera cual$uier cambio reali1ado en el ser(idor D, se (er reflejado inmediatamente en el ser(idor
9, as& tenemos la informacin actuali1ada ' lo ms importante distribuida en (arios nodos al mismo tiempo.
0utor+
Galo Barahona
galoferb@hotmail.com
9>D>

Das könnte Ihnen auch gefallen