You are on page 1of 32

Manual ORACLE 9i

1. 2. 3. 4. 5. 6. Introduccin Instalacin de la Instancia de Oracle Servidor ORACLE Elementos del servidor Oracle Estructura de las bases de datos Oracle Instancia de la base de datos Componentes del SGA (System Global Area) y su Utilizacin Componentes del PGA (Process Global Area) y su Utilizacin Jerarqua lgica y fsica de los datos Estructura Lgica Tablespaces Segmento Extensiones Bloque Oracle o bloque de datos Estructura fsica Archivos de datos Bloques de sistema Transacciones Usuarios Privilegios Privilegios del Sistema Oracle 9i Privilegios de Objeto Rol Perfiles Esquemas Crear Tablespaces, Usuarios, Tablas Tablespaces Crear Usuarios Crear Tablas. Crear Enlace a la base de datos para Distribucin Bases de datos Distribuidas Distribucin

7. 8.

9.

10. 11. 12.

13. 14. 15. 16.

17. 18.

Introduccin SISTEMA GESTOR DE BASE DE DATOS (SGBD) 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 SGBD que estar ubicado en un hardware especfico y bajo un sistema operativo determinado. La eleccin del entorno de trabajo (hardware, S.O. y tipologa de la estructura cliente/servidor) ser una decisin que estar acorde con las necesidades del propio sistema de informacin. Las principales funcionalidades aportadas por todo el SGBD Oracle son:
y y y y y y y y

Soporte y tratamiento de una gran cantidad de datos (Gbytes). Soporte de una gran cantidad de usuarios accediendo concurrentemente a los datos. Seguridad de acceso a los datos, restringiendo dicho acceso segn las necesidades de cada usuario. Integridad referencial en su estructura de base de datos. Conectividad entre las aplicaciones de los clientes en sus puestos de trabajo y el servidor de datos Oracle (estructura cliente/servidor. Conectividad entre bases de datos remotas (estructura de bases de datos distribuidas) Portabilidad. Compatibilidad.

ADMINISTRADOR DE BASES DE DATOS (DBA)


Es el responsable para el buen funcionamiento de toda una estructura de datos y todo su entorno de trabajo. Esta persona deber tener un alto conocimiento de todo el sistema que envuelve al SGBD Sobre este recae una alta responsabilidad, debido a las graves repercusiones que puede traer una mala gestin de la informacin. Las funciones que se le asignan a un DBA Oracle son las siguientes: y Instalacin y actualizacin del software del SGBD. y Analizar e instalar en la base de datos las aplicaciones con las que van a interactuar los usuarios. Esto, bsicamente lleva consigo:

o o o o o

Asignacin de espacios (tablespaces) en la base de datos y ubicacin de los mismos en los discos de la mquina. Creacin de todos los objetos (tablas, ndices, vistas, etc.) requeridos por cualquiera de las aplicaciones, as como su dimensionamiento dentro de la base de datos. Actualizacin de los parmetros del sistema para el correcto funcionamiento de las aplicaciones. Creacin de los usuarios y asignacin de privilegios, con el fin de controlar la seguridad de acceso de estos a la informacin de la base de datos. Controlar y monitorizar los accesos de los usuarios a la base de datos. Excesivas conexiones pueden provocar cuellos de botella en la red y bloqueos en algunos de los recursos de la mquina. Gestionar y optimizar el rendimiento de los procesos contra la base de datos. Esta ser una de las funciones ms importantes del administrador, porque de nada sirve tener una buena infraestructura montada si los colapsos son continuos y la lentitud en los accesos es constante.

o o

Planificacin de los sistemas de backup y recuperacin de los datos en caso de que sea necesario. Control del crecimiento de los archivos y procesos generados en el sistema por parte del mismo SGBD.

Instalacin de ORACLE 9i

Se ejecuta el Universal Installer de Oracle, el programa Java encargado de realizar las instalaciones y desinstalaciones. Tras su ejecucin ocurre lo siguiente:

Elegir una ruta para la carpeta Home de Oracle. Esa carpeta es la encargada de almacenar el software de base de datos de Oracle. Se nos pregunta qu nombre tendr esa carpeta Home (por defecto se llama OraHome92) y la ubicacin de la misma (normalmente dentro de la carpeta Oracle en el disco con ms espacio disponible). Pulsar Siguiente

Aparece una lista con las posibles instalaciones que permite el CD. Lgicamente se elegir Database si es la base de datos lo que queremos instalar.

La opcin Client permite instalar slo las aplicaciones necesarias para utilizar un servidor Oracle previamente instalado (la instalacin cliente puede instalar herramientas de Administracin o herramientas Runtime, para desarrolladores).

En la siguiente pantalla se nos pregunta qu versin de Oracle instalaremos. Se nos ofrecen tres posibilidades: Versin Enterprise. Versin con todas las posibilidades de Oracle Versin Estndar. Versin para grupos de trabajo o aplicaciones de un solo departamento. Versin Personal. Como la Enterprise pero para un solo usuario y ordenador Personalizada. Permite clarificar mejor la forma de instalar Oracle (es la ms complejo, pero la que ms opciones permite) Elegir nuestra opcin y pulsar Siguiente

Se nos pregunta (salvo que hayamos elegido la versin personalizada) por el tipo de base de datos que se crear en la instalacin. Ya en la instalacin se crea una base de datos que puede ser: Propsito general. Bases de datos que se utilizan para todo tipo de tareas (ante la duda conviene utilizar esta opcin). Procesamiento de transacciones, preparada para utilizar transacciones muy a menudo. Almacenes de datos, base de datos pensada para primar el almacenamiento de grandes volmenes de datos (Warehousing). Personalizada, permite especificar ms claramente la base de datos a utilizar (esta opcin requiere ms pasos que las otras) Slo software, instala el software de base de datos sin crear una primera base de datos (habr que crearla ms adelante

Elegir la opcin preferida (ante la duda elegir uso General) y pulsar Siguiente

Si se est migrando de una versin anterior aparecer un cuadro que nos permite migrar (o no) los datos de la versin anterior. Si el equipo tiene Microsoft Transaction Server se nos pedir el nmero de puerto (normalmente el 2030) que ha de utilizarse para usar dicho software de transacciones.

Se nos pide el identificador (SID, System Identifier) y el nombre global de la base de datos. El nombre global es un nombre nico para la red a la que pertenece el servidor en el que instalamos Oracle (por ejemplo inicial.donbosdco.local). El SID es el nombre que identifica a la base de datos en el ordenador en el que estamos. En el cuadro se pone primero el nombre global el instalador sugiere el SID correspondiente. Pulsar Siguiente

Indicar la ruta en la que se instalarn por defecto los archivos de la base de datos. Es conveniente que esta carpeta est en una unidad distinta a la de la carpeta Home de Oracle, para acelerar el rendimiento. Esta carpeta se suele llamar OraData.

Indicar el juego de caracteres que se utilizar en la base de datos. Normalmente se toma el juego de caracteres que utiliza el sistema operativo. Este dato si se rellena mal ocasiona que algunos de nuestros caracteres nacionales, nunca se muestren adecuadame nte.

Tras aceptar el cuadro anterior se nos muestra un resumen de la instalacin. Tras este resumen comienza la copia de los archivos 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 servicios de red necesarios para el funcionamiento de Oracle, la base de datos y el servidor http de Oracle. (Ver imagen anterior) En cuanto se instala la base de datos y se lanza la instancia asociada a ella (la instancia es la base de datos en ejecucin, desde ese instante al arrancar Windows la instancia estar en memoria salvo que la detengamos) se nos piden las contraseas asociadas a los usuarios administrativos SYS y SYSTEM. Es muy importante recordarlas y no perderlas.

Para comprobar si la instalacin es correcta, se debe hacer lo siguiente.

1. Ir al grupo de programas de Oracle en Windows (normalmente Inicio-Programas-Oracle Home92) y hacer clic sobre Enterprise Manage Console (consola de administracin) 2. Activar la casilla Iniciar en modo autnomo y aceptar el cuadro

3. Desde el programa de administracin, expandir el apartado Bases de datos. Aparecern las bases que hemos creado, despus se nos pedir un nombre de usuario y contrasea para

conectarnos con la base de datos. Inicialmente habr que conectar con el usuario SYSTEM y la contrasea que especificamos para dicho usuario en la instalacin indicar que conectamos como SYSDBA (administrador) lo que nos permite realizar todo tipo de tareas.

Servidor ORACLE

Un servidor Oracle es el software que permite una administracin y desarrollo de bases de datos. Tiene tres posibilidades de ejecucin: Local o basada en host. El servidor se ejecuta en la misma mquina en la que se conectan los clientes. La versin personal de Oracle database, produce servidores de este tipo. Cliente-Servidor. Enfoque ms tpico. El servidor reside en un ordenador distinto respecto al que los usuarios van a usar para conectarse a la base de datos. Cliente-Servidor de Aplicaciones-Servidor. Los usuarios acceden a un servidor de aplicaciones (Oracle Application Server) que, a su vez, accede al servidor Oracle. Los tres elementos (cliente, servidor de aplicaciones, servidor Oracle) pueden estar en tres mquinas distintas. Elementos del servidor Oracle El servidor Oracle est formado por dos elementos: La instancia de la base de datos. Consta de datos (llamados estructuras de memoria) y de procesos en memoria (procesos background) necesarios para dar servicio a los usuarios de la base de datos. Puede haber ms de una instancia si se distribuye la base de datos en ms de una mquina. Cada instancia abre una y slo una base de datos. Ficheros en disco. Representan la base de datos en s. Consta de: Estructuras lgicas: Tablespaces, objetos del esquema de usuario. Estructuras fsicas: Los ficheros de datos almacenados en disco. Los ficheros de datos (asociados a los tablespaces), los ficheros redo log y los ficheros de control Estructura de las bases de datos Oracle Desde el punto de vista de Oracle, una base de datos es una coleccin de datos tratados como una nica unidad. Una base de datos Oracle contiene tres tipos de ficheros: Archivos de datos. Contiene los datos actuales de la base de datos as como el diccionario de datos. Archivos rehacer (redo logs). Almacenan datos recuperables en caso de error grave. Archivos de control. Necesarios para mantener la integridad de la base de datos. Adems se utilizan otros archivos de forma auxiliar Archivos de parmetros. Que definen algunas caractersticas de una instancia Oracle. Archivos de contraseas. Que sirven para autentificar a los usuarios. Copias de archivos rehacer. Utilizadas para la recuperacin de datos.

Instancia de la base de datos

La instancia de la base de datos es uno de los dos elementos de cualquier base de datos Oracle. Sirve para gestionar los datos de la base de datos y proporcionar servicio a los usuarios que acceden a la misma. Est compuesta de: Estructuras en memoria. Procesos en segundo plano (background). Componentes del SGA (System Global Area) y su Utilizacin El SGA es un rea de memoria compartida que se utiliza para almacenar informacin de control y de datos de la instancia. Se crea cuando la instancia es levantada y se borra cuando sta se deja de usar . Sirve para facilitar la transferencia de informacin entre usuarios y tambin almacena la informacin estructural de la BD ms frecuentemente requerida. El SGA es utilizado para el intercambio de datos entre el servidor y las aplicaciones cliente. Una instancia Oracle puede abrir una sola base de datos a la vez.

Componente
Library Cache Database Dictionary Cache Database Buffer Cache Redo Log Buffer Cac

Utilizacin Almacena las sentencias SQL mas recientes en memoria. Buffer para el diccionario de datos. Tablas, columnas, tipos, ndices. Buffer de la base de datos, contiene bloques de datos que han sido cargados desde los Datafiles. Bloques de datos que han sido actualizados.

Componentes del PGA (Process Global Area) y su Utilizacin El Process Global Area es un rea de memoria utilizada por un proceso Oracle. Esta zona de memoria es un rea no compartida en la cual se puede escribir y contiene: y rea e almacenamiento y Informacin de la sesin y Estado del cursor y Espacio de la pila Componente
PMON (Process Monitor) SMON (System Monitor) CKPT (CheckPoint Process) DBWR (Database Write)

Utilizacin Monitorea los procesos de los usuarios en caso de que la conexin falle. Proceso encargado de recuperar la instancia y abrir la base de datos en caso de que ocurra alguna falla. Sintoniza las tareas de grabacin en BD. y Escribe los bloques de datos de la memoria a la base de datos. y Es uno de los dos nicos procesos que tienen permitido escribir en los archivos de datos que componen la base de datos Oracle.
y y

LGWR (Log Writer)

Graba los bloques del Redo Log del Fuffer a los archivos Redo Log File. Escribe las transacciones que se encuentran en los Redo Log a Disco cuando ocurre un commit.

Jerarqua lgica y fsica de los datos

Una base de datos tiene una estructura lgica (que se manipula mediante comandos) y una estructura fsica (la que realmente se almacena en disco). Estructura Lgica Est formada por: Tablespaces. Pertenecen slo a una base de datos y sirven para agrupar los datos de la base de datos. Cada tablespace est formado fsicamente por uno o ms archivos de datos. Estn divididos en 0 o ms segmentos. Se pueden visualizar en lnea o fuera de lnea y pueden ser activados en slo lectura o en lectura / escritura. Segmento. Sirven para almacenar las estructuras lgicas de la base de datos (tablas, ndices,...). Un tablespace se compone de uno o ms segmentos. Pero el mismo segmento no puede estar en ms de un tablespace. Extensiones. Divisin que se hace a cada segmento. El DBA puede aadir o quitar extensiones a los segmentos a fin de hacer que ganen o pierdan espacio.

Bloque Oracle o bloque de datos. Es la unidad mnima de datos para Oracle y se corresponde a una o ms unidades de datos mnimas del sistema operativo en el que nos encontremos. Estructura fsica Archivos de datos. Son archivos en disco que sirven para almacenar los datos fsicamente (en una unidad de disco). Cada archivo de datos pertenece slo a un tablespace. Su tamao se puede gestionar. Bloques de sistema. La divisin mnima de los datos que hace el sistema operativo.

Transacciones Los cambios en la base de datos no son guardados hasta que tras una serie de instrucciones se decide llevar a cabo esos cambios. Hasta ese momento todo lo realizado se toma como provisional. Un fallo en la mquina permitira invertir los cambios. Una transaccin son varias operaciones SQL que forman una unidad de trabajo. Comienza cuando una persona se conecta y de ah hasta que ejecuta la instruccin commit (ejecutar la transaccin) o rollback (anular la transaccin). La anulacin deja la base de datos en el estado anterior al comienzo de la transaccin. Tras un commit o un rollback comienza la siguiente transaccin. En Oracle se admite adems el uso de puntos de ruptura (checkpoints) para almacenar valores intermedios y volver a cualquier de ellos si interesa. Pero esto ralentiza excesivamente el sistema. Usuarios Los usuarios son las personas que acceden de una forma o de otra a la base de datos. Cadausuario tiene una vista determinada de la base de datos. Hay varios conceptos sobre los usuarios a tener en cuenta. Privilegios Controlan el permiso que posee un usuario de ejecutar una determinada instruccin SQL. Un usuario que quiera crear una tabla, deber tener el privilegio (o permiso) adecuado para ello. Adems se pueden colocar privilegios en los objetos, es decir, un usuario propietario de una tabla puede otorgar privilegios a esa tabla (se tratara de un privilegio a nivel de objeto) para que haya otros usuarios que la puedan usar. Privilegios del Sistema Oracle 9i Permite al usuario hacer ciertas tareas sobre la BD, como por ejemplo crear un Tablespace. Estos permisos son otorgados por el administrador o por alguien que haya recibido el permiso para administrar ese tipo de privilegio. En general los permisos de sistema, permiten ejecutar comandos del tipo DDL (Data definition Language), como CREATE, ALTER y DROP o del tipo DML (Data Manipulation Language. Privilegio CREATE ANY INDEX Descripcin Crear cualquier ndice.

CREATE [PUBLIC] SYNONYM Crear sinnimos [pblicos].

CREATE [ANY] TABLE CREATE [ANY] VIEW ALTER ANY INDEX ALTER ANY TABLE DROP ANY INDEX DROP ANY SYNONYM DROP PUBLIC SYNONYM DROP ANY VIEW DROP ANY TABLE SELECT ANY TABLE INSERT ANY TABLE DELETE ANY TABLE ALTER SESSION CREATE SESSION CREATE PROFILE CREATE ROLE CREATE TABLESPACE CREATE USER ALTER PROFILE ALTER ANY ROLE ALTER TABLESPACE ALTER USER DROP PROFILE DROP ANY ROLE DROP ROLLBACK SEGMENT DROP TABLESPACE DROP USER ALTER DATABASE GRANT ANY PRIVILEGE GRANT ANY ROLE UNLIMITED TABLESPACE DROP PROFILE

Crear tablas. El usuario debe tener cuota en el espacio de tablas, o ha de tener asignado el privilegio UNLIMITED TABLESPACE. Crear vistas. Alterar cualquier ndice. Alterar cualquier tabla Borrar cualquier ndice. Borrar cualquier sinnimo. Borrar sinnimos pblicos. Borrar cualquier vista. Borrar cualquier tabla. Efectuar selecciones de cualquier tabla o vista. Insertar en cualquier tabla o vista. Borrar filas de cualquier tabla o vista, y tambin truncar. Alterar los parmetros de la sesin. Conectarse a la BD. Crear perfiles de usuario. Crear roles. Crear espacios de tablas. Crear usuarios. Alterar perfiles existentes. Alterar cualquier rol. Alterar espacios de tablas. Alterar usuarios. Borrar un perfil existente. Borrar cualquier rol. Borrar un segmento de rollback existente. Borrar un espacio de tablas. Borrar un usuario. Aadir CASCADE si el usuario posee objetos. Permite una sentencia ALTER DATABASE. Otorgar cualquiera de estos privilegios. Otorgar cualquier rol a un usuario. Puede usar una cantidad de almacenamiento ilimitada. Borrar un perfil existente.

CREATE ROLLBACK SEGMENT Creacin de segmentos de rollback.

ALTER ROLLBACK SEGMENT Alterar segmentos de rollback.

Privilegios de Objeto

Este tipo de privilegios le permite al usuario hacer cierta accin en un objeto de la base de datos, como puede ser una tabla, vista, funcin etc. Si a un usuario no se le dan estos privilegios solo podras acceder a sus propios objetos. Y estos tipos de p rivilegios los da el dueo del objeto, el administrador o alguien que haya recibido este permiso explcitamente. Los privilegios sobre objetos consienten que un objeto (creado por un usuario) estos privilegios puede ser de SELECT, de UPDATE, de DELETE, de INSERT. Privilegio SELECT INSERT UPDATE DELETE ALTER INDEX REFERENCES EXECUTE READ Descripcin Puede consultar a un objeto. Puede insertar filas en una tabla o vista. Puede especificarse las columnas donde se permite insertar dentro de la tabla o vista. Puede actualizar filas en una tabla o vista. Puede especificarse las columnas donde se permite actualizar dentro de la tabla o vista. Puede borrar filas dentro de la tabla o vista. Puede alterar la tabla. Puede crear ndices de una tabla. Puede crear claves ajenas que referencie a esta tabla. Puede ejecutar un procedimiento, paquete o funcin. Permite leer archivos asociados con objetos BFILE en el directorio del sistema

Rol Son agrupaciones de privilegios que facilitan la tarea de gestionar a los usuarios. As cuando una serie de usuarios van a tener los mismos privilegios, se crea un rol que contenga esos privilegios y a esos usuarios se les asigna el rol. Oracle proporciona varios roles ya preparados, por ejemplo el rol DBA da privilegio absoluto a un usuario. Perfiles Los perfiles permiten definir limitaciones de recursos. Por ejemplo podemos definir un perfil que limite el nmero de sesiones abiertas concurrentemente por un usuario cualquiera, y posteriormente aplicar este perfil a uno o ms usuarios concretos.
ESQUEMA BASICO DE SEGURIDAD

Usuarios

1 Roles

Objetos

Privilegios

Esquemas Los esquemas estn asociados a los usuarios. Agrupan los objetos lgicos que pertenecen al usuario. Es decir es el conjunto de tablas, vistas, sinnimos, instantneas, enlaces de base de datos, procedimientos y funciones, paquetes,... Cada usuario tiene su propio esquema y, en principio, un usuario no tiene acceso a los elementos de otro usuario, salvo que sea un administrador o que otro usuario ceda el privilegio de utilizacin de uno o ms de sus objetos al resto de usuarios. Crear Tablespaces, Usuarios, Tablas Tablespaces Para crear un tablespaces se inicia la sesin en la base de datos donde deseamos trabajar.

Nos dirigimos a Almacenamiento, Tablespaces, clic derecho y crear

En esta ventana creamos el tablespaces TURC, T identifica que es tablesapace, en la parte de Archivo de datos creamos el datafile, utilizamos el mismo nombre del tablespace precedido por la letra D, que lo identifica como Datafile. Determinamos el estado Online

El tipo de tablespace, ser permanente, en el cual trabajaremos, se recomendara crear un tablespace temporal propio y un utilizar el que existe por defecto.

Crear Usuarios Para crear usuario nos dirigimos a Seguridad, Usuarios, clic derecho Crear

En esta ventana se ingresan: El nombre del usuario, el perfil creado para este usuario, la contrasea, seleccionamos los tablespaces creados para este usuario,

En las pestaas de Rol y Sistema, otorgamos los privilegios al usuario, como se puede observar en la siguiente pantalla.

Finalmente creamos el usuario.

Crear Tablas. Para crear tablas damos clic en Objeto, Crear.

Se abrir una ventana donde aparecen todos los objetos que podemos crear, seleccionamos tablas

Si creamos la tabla utilizando el asistente, ingresamos el nombre da la tabla, elegimos el usuario creado como esquema, y el tablesapace

En esta ventana creamos los campos de la tabla, detallando el tipo de datos, tamao y valor por deefecto.

En esta pantalla creamos la clave primaria de la tabla

Al finalizar nos mostrara el cdigo SQL para crear la tabla.

Crear Enlace a la base de datos para Distribucin Editaremos el archivo tnsnames.ora C:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora , y agregaremos las siguientes lneas de configuracin para que el servidor Oracle reconozca nuestro servidor remoto OTAVALO.URCUQUI.LOCAL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = otavalo.urcuqui.local) ) ) Una vez creada la conexin creamos el enlace a la base de datos, en el servidor, nos dirijimos a Distribuido, Enlaces de Base de Datos, clic derecho crear. En la ventana ingresamos el nombre de la conexin, mediante un usuario fijo (el usuario de la base de datos a la cual queremos conectar)

En este caso si queremos distribuir las bases de datos URCUQUI.URCUQUI.LOCAL y OTAVALO. URCUQUI.LOCAL en la base de datos URCUQUI.URCUQUI.LOCAL creamos el enlace a OTAVALO.URCUQUI.LOCAL utilizando un usuario de OTAVALO.URCUQUI.LOCAL , y en la base de datos URCUQUI.URCUQUI.LOCAL creamos el enlace a OTAVALO.URCUQUI.LOCAL utilizando un usuario de URCUQUI.URCUQUI.LOCAL

Bases de datos Distribuidas Se trata de una base de datos a nivel lgico (los usuarios la manejan como una base de datos normal), pero que en realidad (fsicamente) est implementada en varias ubicaciones fsicas, incluso en mquinas diferentes y distantes. Cada mquina ejecuta su propia instancia y conjuntos de archivos y todas se conectan en red para hacer que el usuario no tenga que cambiar su cdigo para reflejar esta distribucin. La dificultad de esta estructura suele estar aliviada por medio de instantneas que graban momentneamente los datos de las tablas distantes. Permiten trabajar con los datos copiados y se programan para que cada cierto tiempo recojan nuevamente los datos a fin de reflejar sus cambios. Gracias a las instantneas no hace falta una sobrecarga tan excesiva de las instantneas de la base de datos. La replicacin de datos consiste en el transporte de datos entre dos o ms servidores, permitiendo que ciertos datos de la base de datos estn almacenados en ms de un sitio, y as aumentar la disponibilidad de los datos y 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 servidor Oracle, mediante el uso de vistas materializadas. La replicacin permite tener una copia exacta de una base de datos alojada en un servidor (maestro) que se guardar en otro servidor (esclavo). Todas las modificaciones que se hagan en la base de datos del servidor maestro se actualizarn inmediatamente en el servidor esclavo. Esto no es una copia de seguridad, ya que si borramos una fila en la base de datos maestra, tambin se borrar en la base de datos esclava.

Esquema de base de datos distribuida en Oracle

Distribucin Las mquinas deben tener instalado el Oracle9i, en modo dedicado. Crear una base de datos en cada una de ellas. Configurando El Servidor Editaremos el archivo tnsnames.ora C:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora , y agregaremos las siguientes lneas de configuracin para que el servidor Oracle reconozca nuestro servidor remoto, usando una resolucin de nombres tns.
YOS = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (COMMUNITY = TCP) (PROTOCOL = TCP) (HOST = yosy1) (PORT = 1521) ) ) (CONNECT_DATA = (SID = XE) ) )

Donde YOS es el nombre del servidor remoto que agregamos, es decir un alias, PROTOCOL es el protocolo de comunicacin hacia el servidor, HOST es el nombre la direccin IP de la computadora

que tiene el servidor, PORT indica el numero de puerto al cual se conectara el servidor y finalmente SID que es el nombre de servicio del servidor remoto. De esta manera nos podremos conectar con el servidor remoto usando la nomenclatura de conexin: Usuario/Password@Alias_Del_Servidor:[Puerto] Donde Usuario es cualquier usuario valido del servidor remoto, Password es la contrasea del usuario remoto, @Alias_del_servidor es el nombre que hemos aadido en el archivo de configuracin tnsnames.ora, y finalmente el Puerto que indica a que puerto se conectara este parmetro es opcional, por defecto las conexiones se realizan al puerto 1521. Una vez editado y configurado archivo, tendremos que configurar nuestro servidor estableciendo un DBLink un enlace a base de datos. Usando la siguiente instruccin: Create database link "Nombre_Del_DBLink" connect to Usuario identified by "Password" using 'HOST[: PUERTO]/SID' De la siguiente instruccin tenemos Nombre_Del_DBLink el cual es un nombre cualquiera para identificar a que base de datos estamos ligados, Usuario el cual debe de ser un usuario remoto valido, Password es la contrasea del usuario remoto, HOST es el nombre direccin ip del servidor, PUERTO indica el numero del puerto al que se conectara el parmetro es opcional, el puerto por defecto es el 152, y por ultimo SID es el nombre del servicio al cual se conectara nuestro servidor. La cual nos proporcionara la facilidad de hacer consultas del tipo: Objeto@DBLink Donde Objeto puede ser cualquier tipo de objeto en la base de datos remota y @DBLink es el enlace a la base de datos, de este modo podremos usar las tablas, vistas, triggers y dems objetos en el servidor. Estos pasos de configuracin se hacen en los dos servidores para que sepuedan comunicar, es decir tenemos que dar de alta el servidor 1 en el servidor 2 y viceversa; adems tenemos que dar de alta un DBLink para cada uno de ellos, una vez teniendo configurados los servidores podremosiniciar la replicacin. Replicando Datos Ahora antes de replicar los datos tenemos que tener datos, necesitamos tener cuando menos una tabla en la base de datos, ahora crearemos una tabla para hacer esta prctica la cual llamaremos: COMPRAS; la cual estar en el servidor 1 (RAMMS) y ser replicada hacia el servidor 2 (YOS). Utilizaremos las sentencias de SQL Plus para crear la tabla con los siguientes campos de la siguiente manera:
CREATE TABLE RAMMS.COMPRAS ( CODIGO VARCHAR2 (8 BYTE) NOT NULL, PROVEEDOR VARCHAR2 (30 BYTE) NOT NULL, PRODUCTO VARCHAR2 (45 BYTE) NOT NULL, PRECIOCOMPRA INTEGER NOT

NULL, PRECIOVENTA INTEGER NOT NULL, CANTIDAD NUMBER NOT NULL ) Y posteriormente: ALTER TABLE RAMMS.COMPRAS ADD ( PRIMARY KEY (CODIGO) USING INDEX TABLESPACE USERS PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE ( INITIAL 64K MINEXTENTS 1 MAXEXTENTS UNLIMITED PCTINCREASE 0 ));

Despus de crear la tabla agregaremos datos en ella, quedando de la siguiente manera:

Ahora realizaremos una consulta desde el servidor 2 (YOS) usando los DBLink, quedando de la siguiente manera: SELECT * FROM COMPRAS@DBLINKRAMMS Arrojando la siguiente informacin:

Como podemos observar la consulta funciona es decir que podemos consultar objetos desde el servidor 2, ahora crearemos en el servidor 1 (RAMMS), una tabla LOG para la replicacin de la tabla COMPRAS, con la siguiente instruccin:
CREATE MATERIALIZED VIEW LOG ON RAMMS.COMPRAS NOCACHE LOGGING NOPARALLEL;

Esta tabla guardara los datos cambiados y actualizara de manera instantnea todas las replicas de la tabla COMPRAS. Ahora desde el servidor 2 (YOS) 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 snapshot, lo haremos usando la siguiente instruccin.
CREATE MATERIALIZED VIEW RAMMS.COMPRAS BUILD IMMEDIATE REFRESH FAST ON COMMIT AS SELECT * FROM COMPRAS@DBLINKRAMMS;

Ahora en el servidor 2 (YOS), ya disponemos de una copia exacta de la tabla compras del servidor 1 (RAMMS), y se actualizara automticamente cuando se haga un commit en las transacciones, ahora podemos ejecutar la sentencia: SELECT * FROM COMPRAS; E inmediatamente despus podremos apreciar el resultado de la consulta, ntese que en el servidor 2, no existan datos para la tabla COMPRAS de hecho COMPRAS no es una tabla es una vista!

De esta manera cualquier cambio realizado en el servidor 1, se ver reflejado inmediatamente en el servidor 2, as tenemos la informacin actualizada y lo ms importante distribuida en varios nodos al mismo tiempo.

Galo Barahona galoferb@hotmail.com 2010

You might also like