Está en la página 1de 26

Arquitectura de Oracle 10g

Un administrador de Bases de Datos tiene que saber a la perfeccin como es la arquitectura de su servidor. En el caso de Oracle es necesario saber que procesos, archivos, estructuras, etc. estn involucrados en su entorno. En este artculo nos vamos a enfocar en conocer la arquitectura de Oracle de una manera muy sencilla. Un servidor Oracle consiste de dos entidades: La instancia y la base de datos (independientes pero conectados). Durante el proceso de creacin de una base de datos, se crea primero la instancia, y de ah se crea la base de datos. Una instancia de Oracle consta tiene estructuras de memoria y procesos; su existencia es pasajera ya que se halla en la RAM y el CPU, es decir, su tiempo de vida de la instancia durar mientras exista en memoria. Por otro lado, la base de datos consta de archivos fsicos localizados en el disco duro, y una vez creada existir indefinidamente (hasta que deliberadamente los archivos sean eliminados). Oracle define esta arquitectura para garantizar una abstraccin e independencia entre las estructuras lgicas (que ven los programadores) de las estructuras fsicas (que ven los administradores de sistemas); nicamente el DBA conoce las dos partes de la historia. Instancia: La instancia de Oracle consta de un rea de memoria compartida conocida como SGA (System Global

rea). Esta rea de memoria consta de menos tres estructuras bsicas: Shared Pool: Incluye la Library Cache (rea de memoria que almacena cdigo recientemente

ejecutado) y el Data Dictionary Cache (rea que almacena las definiciones de objetos usados recientemente) Database Buffer Cache: rea de trabajo para la ejecucin de SQL Log Buffer: rea que almacena todos los cambios que son realizados en el Database Buffer Cache A parte de estas tres estructuras principales, tambin existen otras 3 que son opcionales:

Large Pool: rea utilizada para mejorar el rendimiento en servidores compartidos (multithreaded) o
para procesos I/O de disco y cinta Java Pool: rea utilizada si se tiene una aplicacin que va a ejecutar procedimientos Java (ya que Oracle maneja sus APIs con Java muchos administradores consideran a esta rea de memoria como obligatoria) Streams Pool: Utilizado para manejo de Streams A parte del SGA, la instancia de Oracle tiene 5 procesos conocidos como Background process:

SMON: Habilita la conexin entre la instancia y la base de datos. Permite la recuperacin de la base
de datos despus de una falla PMON: Se encarga de gestionar las sesiones de usuario. Cuando un proceso de usuario falla, se encarga de limpiar los procesos restantes

CKPT: Se asegura que la instancia est sincronizada con la base de datos. LGWR: Escribe todos los cambios a los datos que se realizaron en el Database Buffer Cache en los
Redo Log Files del disco DBWn: Escribe los bloques modificados desde el Database Buffer Cache a los archivos de disco Base de datos: La base de datos abarca las estructuras fsicas que se encuentran en disco. Estos archivos se dividen en dos: Requeridos y Externos. Entre los archivos requeridos estn:

Control File: Almacena el status de las estructuras fsicas de la base de datos. Online Redo Log Files: Almacenan un registro de los cambios realizados a la base de datos
mientras estos de van dando Datafiles: Son el repositorio de la informacin En cambio, los archivos externos son:

Parameter File: Define la instancia y los parmetros de inicializacin. Hay de dos tipos Dinmico

(binario, que no se puede ejecutar y se actualiza constantemente) y esttico (que se lo puede editar mediante un editor ASCII y que solamente es ledo una sola vez cuando la instancia se inicia.) Password File: Archivo de sistema que almacena los nombres de usuario y contrasea (encriptadas) para poder autenticar a un usuario sin la necesidad del diccionario de datos. Archive Log Files: Copias de los Online Redo Log Files llenos.

CONSULTA DOS
1. Objetivos
El objetivo de este artculo es describir brevemente los siguientes conceptos bsicos a modo de familiarizacin con las bases de datos ORACLE. Describir brevemente en qu consiste el modelo relacional y el lenguaje SQL Identificar cules son los componentes de una instancia de base de datos y cmo se accede a la base de datos. Describir las tareas bsicas del administrador de base de datos ( DBA ) Describir cules son las herramientas de administracin de base de datos disponibles para el administrador por ORACLE.

2. Base de datos relacional


La base de datos Oracle es un sistema de administracin de base de datos relacionales (RDBMS). El modelo relacional (de un modo sencillo) consiste en utilizar tablas bidimensionales para almacenar la informacin. Consta de tres elementos bsicos: Tablas Conjunto de operadores para manipular esas tablas Reglas de integridad

3. Terminologa de base de datos relacional


Una base de datos relacional contiene varias tablas. Una tabla es la estructura bsica en un RDBMS. Una tabla representa un concepto necesario de la vida real. (Por ejemplo, la tabla empleados). Tabla empleados:

En la estructura bsica del modelo relacional se distinguen los siguientes elementos: Relacin: En el modelo relacional se representa mediante una tabla con m filas y n columnas. Como las tablas son esencialmente relaciones, se utilizarn los trminos matemticos relacin y tupla, en lugar de los trminos tabla y fila. Atributos: Son las columnas de la tabla. Corresponden a las propiedades de las entidades Cada uno de estos atributos puede tomar valores dentro de un rango determinado, que se llama dominio. Varios atributos pueden compartir un nico dominio.

Dominio: Rango de valores aceptable para un atributo dado. Este rango depende exclusivamente del atributo y va a condicionar los valores posibles dentro de cada celda de la tabla. Tuplas: Es el nombre que recibe cada una de las filas de la tabla. Cardinalidad de la relacin: es el nmero m de tuplas de la relacin. Grado de la relacin: Es el nmero n de atributos que intervienen en la relacin.

Una vez visto qu es una tabla o relacin, vamos a enumerar sus propiedades principales: Todas las filas de una tabla estn compuestas por el mismo nmero y tipo de atributos que, adems, aparecen siempre en el mismo orden. No puede haber filas repetidas. Es decir, todas las filas de la tabla deben diferenciarse entre s al menos en el valor de un atributo. El orden en que aparecen las filas dentro de la tabla no es relevante. En cada celda de la tabla slo puede aparecer un valor. Adems este valor debe estar dentro del dominio de la columna correspondiente.

Una tabla no puede contener dos filas iguales. Esto obliga, necesariamente, a que haya uno o varios atributos que se puedan utilizar para distinguir unas tuplas de otras. Cualquier atributo o conjunto mnimo de ellos que sirva para este propsito se denomina clave candidata. Es decir, una clave candidata permite identificar de forma nica una fila de una tabla. Es posible que la nica clave candidata de una relacin est formada por todos los atributos de la misma. A la clave candidata que el usuario escoge para identificar las tuplas de una relacin se la denomina clave primaria. (primary key). Una propiedad fundamental de la clave primaria consiste en que, bajo ninguna circunstancia, puede adoptar el valor nulo, ya que si as lo hiciera perdera su capacidad para identificar las tuplas de la relacin. El resto de claves candidatas que no han sido elegidas como clave primaria reciben el nombre de claves alternativas o secundarias.

4. Instancia Oracle
Una instancia de Oracle comprende estructuras de memoria conocidas como SGA (System Global Area) y los procesos background de Oracle. La instancia de base de datos Oracle comprende tambin los datafiles, redo log files y los control files.

5. SQL (Structured Query Language)


Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar un conjunto de operaciones sobre las mismas. Se caracteriza por el manejo del lgebra relacional y el clculo relacional. Permite recuperar informacin de una base de datos. Con SQL entre otras cosas podemos: Consultar datos de una base de datos Insertar, actualizar y borrar datos de una tabla Crear, reemplazar, alterar, borrar objetos Controlar el acceso a la base de datos y a sus objetos Garantizar la consistencia e integridad de la base de datos Otorgar y Revocar permisos.

6. Sentencias SQL

7. SQL para acceder a la base de datos


La comunicacin con el servidor de base de datos se realiza usando SQL. Las sentencias pueden ser introducidas por un usuario o ser ejecutadas por un programa. Estas sentencias son procesadas y el resultado es devuelto al usuario.

8. Tareas de administrador de base de datos


Podemos considerar tareas del administrador de base de datos las siguientes: Instalar y actualizar el software de oracle Crear base de datos Realizar las actualizacin de la base de datos y el software Levantar y Parar la instancia de base de datos Manejar las estructuras de almacenamiento de Oracle Manejar los usuarios de Oracle Manejar los esquemas Realizar backups y recuperar la base de datos Monitorizar la base de datos Ajustar la instancia de base de datos (tunning)

9. Herramientas usadas para administrar una base de datos oracle.


Oracle Universal installer ( Instalador de Oracle ) Database Configuration Assistant ( Asistente para la configuracin de oracle ) Database Upgrade Assistant ( Actualizar base de datos ) Oracle Net Manager ( Para configurar la red de oracle ) Oracle Enterprise Manager ( Para administrar la base de datos ) SQL* Plus adn iSQL*PLUS ( Para realizar sentencias SQL contra la base de datos ) Recovery Manager ( Para recuperar bases de datos ) Data Pump ( Para realizar copias de seguridad, antiguo imp/exp) SQL*Loader ( Para realizar la carga de datos )

CONSULTA TRES

Roles y Responsabilidades del DBA de Oracle El administrador de la base de datos de una empresa es siempre considerado como la persona con ms experiencia en el rea de bases de datos. Por lo

anterior, es conveniente tener muy claras las expectativas que se generan en torno a su trabajo y cules son los principales roles que debe asumir dentro del marco corporativo o de un proyecto. Tareas bsicas del DBA Instalacin de nuevos componentes del software Una de las tareas principales del DBA consiste en la instalacin peridica de nuevas actualizaciones de software de Oracle, tanto en lo referente a programas de aplicaciones como a herramientas administrativas. Tambin es recomendable que el propio DBA y otros usuarios de Oracle prueben la instalacin y nuevas configuraciones antes de migrarlas a los ambientes de produccin. Interaccin con el administrador del sistema En la mayora de los casos los programas slo pueden ser instalados o accedidos por el administrador del sistema. En este caso, el DBA debe trabajar siempre muy bien coordinado con l para garantizar que tanto la instalacin y configuracin de software como de hardware permita un adecuado funcionamiento del motor de base de datos y de las aplicaciones. Garantizar la seguridad del sistema El DBA debe siempre monitorear y administrar la seguridad del sistema. Esto involucra la incorporacin y eliminacin de usuarios, administracin de espacios de disco (cuotas), auditorias y una revisin peridica para detectar probables problemas de seguridad. Monitorizacin El DBA debe monitorear continuamente el rendimiento del sistema y estar preparado para efectuar ajustes de sintonizacin de ste. En ciertas oportunidades esto involucra cambiar slo algunos parmetros y otras veces reconstruir ndices o reestructurar tablas. Respaldos Debido a que la tarea ms importante del DBA es proteger la integridad de los datos, se deber desarrollar una estrategia efectiva de respaldos y recuperacin de datos para mantener la estabilidad de toda la informacin guardada. Las

frecuencias de estos respaldos debern decidirse dependiendo de la cantidad de procesos que alteran los datos a travs del tiempo. Prevencin de riesgos Otra tarea del DBA es la de calendarizar mantenciones a las bases de datos (archivos lgicos) o cooperar en el mantenimiento de las mquinas al administrador del sistema. El DBA debe fortalecer sus esfuerzos en orden a eliminar problemas o situaciones potencialmente peligrosas. Tareas adicionales del DBA Otras tareas de importancia que corresponden con frecuencia realizar a un DBA son: Analizar datos y efectuar recomendaciones concernientes a mejorar el rendimiento y la eficiencia en el manejo de aquellos datos que se encuentran almacenados. Apoyar en el diseo y optimizacin de modelos de datos. Asistir a los desarrolladores con sus conocimientos de SQL y de construccin de procedimientos almacenados y triggers, entre otros. Apoyar en la definicin de estndares de diseo y nomenclatura de objetos. Documentar y mantener un registro peridico de las mantenciones, actualizaciones de hardware y software, cambios en las aplicaciones y, en general, todos aquellos eventos relacionados con cambios en el entorno de utilizacin de una base de datos.

La Base de Datos La base de datos de Oracle tiene una capa lgica y otra fsica. La capa fsica consiste de archivos que residen en el disco y los componentes de la capa lgica son estructuras que mapean los datos hacia estos componentes fsicos. La Capa Fsica Ya se dijo que consiste de archivos fsicos que se encuentran en los discos. Estos pueden ser de tres tipos diferentes: Uno o ms datafiles

Los datafiles almacenan toda la informacin ingresada en una base de datos. Se pueden tener slo uno o cientos de ellos. Muchos objetos (tablas, ndices) pueden compartir varios datafiles. El nmero mximo dedatafiles que pueden ser configurados est limitado por el parmetro de sistema MAXDATAFILES. Dos o ms archivos redo log (de deshacer) Los archivos del tipo redo log almacenan informacin que se utiliza para la recuperacin de una base de datos en caso de falla. Estos archivos almacenan la historia de cambios efectuados sobre la base de datos y son particularmente tiles cuando se necesita corroborar si los cambios que la base de datos ya ha confirmado se han efectuado realmente en los datafiles. Uno o ms control files Estos archivos contienen informacin que se utiliza cuando se levanta una instancia, tal como la informacin de dnde se encuentran ubicados los datafiles y los archivos redo log. Estos archivos de control deben encontrarse siempre protegidos. La Capa Lgica La capa lgica de una base de datos consta de los siguientes elementos: Uno o ms tablespaces El esquema de la base de datos (schema), el cual consiste de objetos como tablas, clusters, ndices, vistas, procedimientos almacenados, triggers, secuencias y otros. Los Tablespaces y los Datafiles Como se mencion, una base de datos se encuentra dividida en una o ms piezas lgicas llamadas tablespaces, que son utilizados para separar la informacin en grupos y as simplificar la administracin de los datos. Lostablespaces pueden ocupar uno o ms datafiles. Si se decide que utilice varios datafiles, el administrador del sistema puede gestionar que stos queden localizados en discos diferentes, lo que aumentar el rendimiento del sistema, principalmente por la mejora en la distribucin de la carga de entrada / salida. En la figura siguiente se aprecia la diferencia entre estos tres conceptos. Una base de datos de ejemplo contiene tres tablespaces lgicos (parte superior de la figura) que utiliza para almacenar informacin del sistema, de los datos del usuario y de los ndices de las tablas. Asimismo, existen los espacios fsicos (datafiles) que

guardan esta informacin en los diferentes discos disponibles y que se sealan en la parte inferior del dibujo.

Figura No. 2 Relacin entre la base de datos, los tablespaces y los datafiles

Segmentos, Extensiones y Bloques Dentro de los tablespaces y datafiles, el espacio utilizado para almacenar datos es controlado por el uso de ciertas estructuras; stas son las siguientes: Bloques:Un bloque es la unidad de almacenamiento ms pequea en una base de datos Oracle. Contiene una pequea porcin de informacin (header) referente al bloque en s y el resto a los datos que guarda. Generalmente, un bloque de datos ocupar aprox. 2 KB de espacio fsico en el disco (asignacin tpica). Extensiones: Es un grupo de bloques de datos. Se establecen en un tamao fijo y crecen a medida que van almacenando ms datos. Tambin se pueden redimensionar para aprovechar mejor el espacio de almacenamiento. Segmentos: Es un grupo de extensiones utilizados para almacenar un tipo particular de datos. Existen 4 tipos de segmentos: datos, ndices, rollback y temporales.

Figura No. 3 Relacin entre bloques, extensiones y segmentos El Esquema de la base de datos Un esquema es una coleccin de objetos lgicos, utilizados para organizar de manera ms comprensible la informacin y conocidos como objetos del esquema. Una breve descripcin de los objetos que lo componen es la siguiente: Tabla:Es la unidad lgica bsica de almacenamiento. Contiene filas y columnas (como una matriz) y se identifica por un nombre. Las columnas tambin tienen un nombre y deben especificar un tipo de datos. Una tabla se guarda dentro de un tablespace (o varios, en el caso de las tablas particionadas). Cluster: Un cluster es un grupo de tablas almacenadas en conjunto fsicamente como una sola tabla que comparten una columna en comn. Si a menudo se necesita recuperar datos de dos o ms tablas basado en un valor de la columna que tienen en comn, entonces es ms eficiente organizarlas como un cluster, ya que la informacin podr ser recuperada en una menor cantidad de operaciones de lectura realizadas sobre el disco. Indice:Un ndice es una estructura creada para ayudar a recuperar datos de una manera ms rpida y eficiente. Un ndice se crea sobre una o varias

columnas de una misma tabla. De esta manera, cuando se solicita recuperar datos de ella mediante alguna condicin de bsqueda (clusula where de la sentencia), sta se puede acelerar si se dispone de algn ndice sobre las columnas-objetivo. Vista: Una vista implementa una seleccin de varias columnas de una o diferentes tablas. Una vista no almacena datos; slo los presenta en forma dinmica. Se utilizan para simplificar la visin del usuario sobre un conjunto de tablas, haciendo transparente para l la forma de obtencin de los datos. Proced. Almacenado:Son programas que permiten independizar el manejo de datos desde una aplicacin y efectuarla directamente desde el motor de base de datos, disminuyendo as el trfico de informacin a travs de la red y mejorando el rendimiento de los procesos implementados mediante estos programas. Trigger:Un trigger es un procedimiento que se ejecuta en forma inmediata cuando ocurre un evento especial. Estos eventos slo pueden ser la insercin, actualizacin o eliminacin de datos de una tabla. Secuencias: El generador de secuencias de Oracle se utiliza para generar nmeros nicos y utilizarlos, por ejemplo, como claves de tablas. La principal ventaja es que libera al programador de obtener nmeros secuenciales que no se repitan con los que pueda generar otro usuario en un instante determinado.

Arquitectura de Oracle

Figura No. 4 Vista general de la Arquitectura de Oracle La Arquitectura general de Oracle consiste de varios procesos corriendo en la mquina donde reside la instancia, ms los espacios de memoria dedicados a ejecutar procesos especficos o al almacenaje de informacin de cada proceso y la base de datos fsica propiamente tal, con sus archivos de control, de datos y de transacciones.

LA INSTANCIA ORACLE Una instancia de Oracle est conformada por varios procesos y espacios de memoria compartida que son necesarios para acceder a la informacin contenida en la base de datos. La instancia est conformada por procesos del usuario, procesos que se ejecutan en el background de Oracle y los espacios de memoria que comparten estos procesos.

Figura No. 5 Arquitectura de la Instancia de Oracle

El rea Global del Sistema (SGA) 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 (cuando se haceshutdown). La informacin que se almacena en esta rea consiste de los siguientes elementos, cada uno de ellos con un tamao fijo: El buffer de cach (database buffer cache) Almacena los bloques de datos utilizados recientemente (se hayan o no confirmado sus cambios en el disco). Al utilizarse este buffer se reducen las operaciones de entrada y salida y por esto se mejora el rendimiento. El buffer de redo log: Guarda los cambios efectuados en la base de datos. Estos buffers escriben en el archivo fsico de redo log tan rpido como se pueda sin perder eficiencia. Este ltimo archivo se utiliza para recuperar la base de datos ante eventuales fallas del sistema. El rea shared pool: Esta sola rea almacena estructuras de memoria compartida, tales como las reas de cdigo SQL compartido e informacin interna del diccionario. Una cantidad insuficiente de espacio asignado a

esta rea podra redundar en problemas de rendimiento. En resumen, contiene las reas del cach de biblioteca y del cach del diccionario de datos. El cach de biblioteca se utiliza para almacenar cdigo SQL compartido. Aqu se manejan los rboles de parsing y el plan de ejecucin de las queries. Si varias aplicaciones utilizan la misma sentencia SQL, esta rea compartida garantiza el acceso por parte de cualquiera de ellas en cualquier instante. El cach del diccionario de datos est conformado por un grupo de tablas y vistas que se identifican la base de datos. La informacin que se almacena aqu guarda relacin con la estructura lgica y fsica de la base de datos. El diccionario de datos contiene informacin tal como los privilegios de los usuarios, restricciones de integridad definidas para algunas tablas, nombres y tipos de datos de todas las columnas y otra informacin acerca del espacio asignado y utilizado por los objetos de un esquema. Procesos de la Instancia Segn lo que se advierte en la figura 5, los procesos que se implementan en una instancia de Oracle y su funcin principal son los siguientes: DBWR (database writer): Es el responsable de la escritura en disco de toda la informacin almacenada en los buffers de bloques que no se han actualizado. LGWR (log writer): Es el responsable de escribir informacin desde el buffer de log hacia el archivo redo log. CKPT (checkpoint): Es el responsable de advertir al proceso DBWR de efectuar un proceso de actualizacin en el disco de los datos mantenidos en memoria, incluyendo los datafiles y control files (para registrar elcheckpoint). Este proceso es opcional, si no est presente, es el proceso LGWR quien asume la responsabilidad de la tarea. PMON (process monitor): Su misin es monitorizar los procesos del servidor y tomar acciones correctivas cuando alguno de ellos se interrumpe en forma abrupta, limpiando la cach y liberando los posibles recursos que pudieran estar asignados en ese momento. Tambin es responsable por el restablecimiento de aquel proceso que se ha interrumpido bruscamente. SMON (system monitor): Levanta una instancia cuando se le da la instruccin de partida (al comienzo del trabajo, encontrndose previamente en shutdown). Enseguida limpia los segmentos temporales y recupera las transacciones que

pudieran haberse interrumpido debido a una falla del sistema. Adems disminuye la fragmentacin del sistema agrupando aquellas extensiones libres que existen dentro de la base de datos. ARCH (archiver): La funcin de este proceso es la de respaldar la informacin almacenada en los archivos redo log cuando stos se llenan. Este proceso est siempre activo cuando se ha establecido el modo ARCHIVELOG. Si el sistema no est operando en este modo se hace ms difcil recuperar el sistema sin problemas luego de una falla general. El rea Global de Programas (PGA) Esta rea de memoria contiene datos e informacin de control para los procesos que se ejecutan en el servidor de Oracle (relacionados con la base de datos, por supuesto). El tamao y contenido de la PGA depende de las opciones del servidor que se hayan instalado. Las Transacciones El trmino transaccin describe a una unidad lgica de trabajo que est compuesta de una o ms sentencias SQL, que deben terminar con una instruccin commit o rollback. En ese instante, una nueva transaccin dar comienzo y estar activa hasta que se ejecute alguno de esos dos comandos otra vez. Cabe destacar que una transaccin no se considera confirmada hasta que sta se termina de escribir en el archivo de redo log. CREACIN DE UNA BASE DE DATOS Generalidades En este captulo no se discutir en detalle como se debe crear una instancia o activar sus servicios porque se supone conocido el mecanismo de conectarse a una base de datos o instancia ya creada. Sin embargo, se repasarn los principales comandos que un DBA debiera reconocer para configurarla porque es un hecho que siempre utilizar alguna herramienta grfica que le permita con mucha facilidad crear instancias y cree automticamente los archivos de configuracin. Un repaso no viene nada de mal. En primer lugar debemos suponer que el software de Oracle ya se encuentra instalado o que estamos en ello. En la misma operacin de instalacin se nos

preguntar si deseamos crear una instancia y, posteriormente, una base de datos dentro de ella. Si no es el caso y debemos configurar cada una de ellas ya sea porque no existen, porque las que existen no nos satisfacen o estn relacionadas con otros temas o porque no disponen de suficiente espacio, entonces la secuencia correcta es la siguiente:

Figura No. 6 Secuencia de creacin de Instancias y Bases de Datos

Creacin de una Instancia Cada vez que se crea una instancia con alguna herramienta de administracin (generalmente grfica) como DBA Studio (por ejemplo), y queda correctamente configurada, se actualizan todos los archivos que sean necesarios y se puede reconocer posteriormente con un nombre corto que la identifica en forma nica y que se conoce como el SID (system identifier). Para crear una instancia desde la lnea de comandos del sistema operativo donde se encuentra instalado Oracle, se puede utilizar el utilitario ORADIM80 que se proporciona con la versin 8 del software. La sintaxis es la siguiente:
ORADIM80 -NEW -SID mkt -INTPWD mypass

Donde se han omitido los parmetros opcionales y los nombres "mkt" y "mypass" corresponden a los valores elegidos para nombrar la instancia y el password de la cuenta internal, que es el usuario DBA por defecto que se crea.

Arranque de la Instancia Una instancia de Oracle puede ser arrancada de forma manual o automtica. La primera opcin puede efectuarse tanto desde la lnea de comandos como desde una interfaz grfica (Oracle Enterprise Manager o DBA Studio).

Para la configuracin del arranque automtico debe establecerse esta opcin en algn lugar del sistema operativo. As, en Windows NT se configura como un servicio y en Unix, por ejemplo, se establecen las opciones en un archivo del sistema. En el caso de tener que arrancar la instancia en forma manual, se puede utilizar el siguiente comando:
STARTUP parmetros

Y los parmetros pueden ser:


PFILE = archivo_de_parmetros Si

se desea especificar una serie de parmetros

de inicializacin agrupados. MOUNT base_de_datos Si se desea levantar (montar) al mismo tiempo una base de datos (pero no abrirla). NOMOUNT No monta ninguna base de datos. OPEN base_de_datos Levanta la instancia y luego monta y abre una base de datos. RESTRICT Levanta la base de datos en modo restringido, es decir, slo los usuarios que tengan el privilegio "RESTRICT SESSION" podrn acceder a ella. Creacin de una base de datos Disear una base de datos y definir sus propiedades y caractersticas de implementacin (lgicas y fsicas) pensando en los sistemas que harn uso de ella es una tarea muy compleja. Todo el esfuerzo que se debe invertir en esta etapa tendr como resultado que su administracin se haga ms fcil o ms compleja en el futuro. Una base de datos se comienza creando los archivos de redo log, los archivos de control y el tablespace de sistema (de nombre system). Este ltimo almacena una estructura muy importante que es el diccionario de datos (data dictionary) que es el rea que contiene toda la informacin de los datafiles, los esquemas y el resto de informacin relevante de la base de datos. Al igual que en el caso de las instancias, es mucho ms cmodo utilizar alguna de las herramientas grficas mencionadas con anterioridad. En la secuencia de creacin de una base de datos se deber ingresar una gran cantidad de informacin de configuracin, tal como:

Nombre, SID, password de la cuenta internal Ruta del archivo de inicializacin (initxxx.ora; donde xxx corresponde al SID) Ruta de los archivos de control y tamao de sus datafiles Datos de tamao de datafiles para los tablespaces de usuarios, de sistema y temporal, entre otros Tamao de los archivos redo log etc. AREAS LOGICAS Y ARCHIVOS FISICOS Tablespaces y Datafiles Ya hemos dicho que un tablespace es una unidad lgica que denota el espacio de almacenamiento de datos dentro de una base de datos y que estn constituidos por uno o ms datafiles, que son los archivos fsicos que ocupan efectivamente el espacio en el disco duro. Cuando se crea una base de datos, hay que crear al menos un tablespace, por lo que durante el proceso de creacin de sta siempre se indica el tablespace principal, de nombre SYSTEM. Su correspondiente datafile ser entonces el fichero fsico al que habr que asignar una ruta, un nombre y un tamao. Los usuarios con caractersticas de DBA que se generan automticamente al crear una instancia son SYS y SYSTEM. Es a partir del trabajo de ellos que la base de datos comienza a crecer y es posible configurar nuevos usuarios, otras reas de datos (tablespaces) e implementar en forma fsica un modelo de datos en algn esquema. No es recomendable crear nuevos usuarios o procesos que compartan el tablespace del sistema, por lo que una de las primeras tareas del DBA consiste en crear nuevos esquemas (cuentas de usuario) y asignarlestablespaces diferentes (que tambin se debern crear). Creacin de un Tablespace Para crear un tablespace desde la interfaz de comandos, se debe escribir la siguiente sentencia:
CREATE TABLESPACE nombre DATAFILE ruta_y_nombre_del_datafile SIZE tamao;

Ejemplo:

create tablespace datos_prueba datafile c:\oracle81\oradata\mkt\tb_mkt01.dbf size 10 0M; La cursiva representa valores a escoger para nombrar el tablespace, la ruta de su datafile y el tamao del mismo. Ms tarde se pueden seguir aadiendo datafiles al mismo tablespace para otorgar ms espacio de almacenamiento. Con la sentencia anterior se est creando un tablespace llamado "datos_prueba", al cual se le ha asociado un datafile ubicado en el directorio "c:\oracle81\oradata\mkt" de nombre tb_mkt01.dbf (la extensin dbf es siempre obligatoria) y que ocupa 100 megabytes de espacio en el disco. Una prctica muy habitual y recomendada para quienes deben configurar los tablespaces de una base de datos es que implementen espacios diferentes para almacenar los ndices de las tablas y otros distintos para almacenar las tablas y sus datos. Y si adems sus correspondientes datafiles (para los ndices y para los datos) se encuentran en discos separados se acelerar el acceso a los datos por partida doble. Eliminacin de un Tablespace Para eliminar un tablespace que no se vaya a ocupar ms, el DBA debe en primer lugar asegurarse que ste no est albergando objetos que se estn utilizando en alguno de los sistemas que se encuentren en explotacin (o desarrollo). Una de las primeras medidas de seguridad que se deben considerar es no eliminar el tablespace inmediatamente, sino que dejarlo "deshabilitado" un tiempo prudente mientras se espera a recibir algunas incidencias de los usuarios por este hecho (que no podrn acceder a l, como si se hubiese eliminado). Si se comprueba que efectivamente el tablespace ya no es necesario, entonces se puede proceder a eliminarlo sin problemas. La sintaxis para deshabilitar un tablespace es la siguiente:
ALTER TABLESPACE nombre OFFLINE;

Y para habilitarlo de nuevo:


ALTER TABLESPACE nombre ONLINE;

Y para eliminarlo definitivamente:

DROP TABLESPACE nombre;

Otra utilidad de poner un tablespace fuera de lnea (deshabilitado) es la de poder efectuar tareas administrativas sobre l, ya que esa condicin nos garantiza que ningn usuario podr estar accediendo a los objetos que contiene (tablas, vistas, etc.), por lo que se podran efectuar, por ejemplo, labores de respaldo o mantencin de los objetos, entre otras. Manipulacin de Datafiles Mediante el manejo de los archivos fsicos de una base de datos (datafiles) podemos redimensionar los tablespaces, permitiendo la asignacin de ms espacio. Para aumentar el tamao de un tablespace se puede optar por alguno de estos dos caminos, representados por las instrucciones que permiten implementar la medida: Agregar un datafile (por ejemplo, al tablespace datos_prueba): alter tablespace datos_prueba add datafile c:\oracle81\oradata\mkt\tb_mkt02.dbf size 50M; aumentar el tamao de un datafile ya existente: alter datafile c:\oracle81\oradata\mkt\tb_mkt01.dbf resize 150M; La primera instruccin indica que se va a crear un nuevo datafile para el tablespace que se ha quedado pequeo, aumentando su capacidad en 50 megabytes. En el segundo ejemplo, no se menciona el tablespace porque lo que se hace es redimensionar un datafile, cuyo nombre es nico en la ruta mencionada y que Oracle ya conoce que est asociado a algn tablespace(datos_prueba en el ejemplo). Su tamao se debe escribir de nuevo, por lo que realmente no se han aadido 150 megabytes como dice la instruccin, sino slo 50, porque ya tena 100 megabytes al inicio. Los segmentos de Rollback

Los segmentos de rollback son reas lgicas de la base de datos que contienen informacin de las transacciones que se encuentran en curso y que an no han sido confirmadas o deshechas. Recuerde que todas las transacciones deben confirmarse en la base de datos en algn momento, con la instruccin COMMIT de SQL. Asimismo, se puede deshacer un grupo de transacciones completamente (mientras no se haya hecho elcommit) mediante la instruccin ROLLBACK. Mientras las transacciones se ejecutan, los cambios se van almacenando en estos segmentos de rollback para disponer de ellos en la eventualidad que haya que deshacerlos. Estos segmentos se utilizan en forma concurrente por una o ms transacciones. Es labor del DBA el ajustar sus parmetros adecuadamente para proveer un uso eficiente del espacio que utilizan. Siendo un rea que almacena datos, ocupa tambin extensiones, que son grupos lgicos de bloques de datos. Cada una de estas extensiones va almacenando la informacin de las transacciones pendientes de confirmarse y va liberando espacio a medida que stas se van confirmando. Cada vez que una extensin se completa se busca ms espacio y se toma otra extensin. Este algoritmo de bsqueda de extensiones va a verificar siempre que la primera se haya desocupado (verificando que las transacciones que almacena ya se han confirmado) y volver a utilizarla. Por lo anterior se debe pensar en un segmento de rollback como un buffer circular, ya que intenta utilizar siempre las mismas extensiones de datos.

Figura No. 7 Extensiones en un segmento de rollback Creacin de un segmento de Rollback

Para crear un segmento de rollback desde la lnea de comandos de SQL, se debe respetar la sintaxis siguiente:
CREATE [PUBLIC o PRIVATE] ROLLBACK SEGMENT nombre_segmento_rollback TABLESPACE nombre_tablespace STORAGE ( INITIAL nmero_en_K_o_M NEXT nmero_en_K_o_M OPTIMAL nmero_en_K_o_M MINEXTENTS nmero MAXEXTENTS nmero );

Donde los parmetros de la clusula STORAGE se refieren a lo siguiente: Initial: Tamao de la extensin inicial en Kilobytes (K) o Megabytes (M). Next: Tamao de las extensiones sucesivas del segmento de rollback. Optimal: Tamao ptimo de crecimiento. Oracle intenta dejar todas las extensiones con este tamao. MinExtents: Nmero mnimo de extensiones que se debern asignar al segmento. MaxExtents: Nmero mximo de extensiones. El segmento slo crecer hasta alcanzar este nmero. Estados de un segmento de Rollback Un segmento de rollback puede encontrarse en cualesquiera de los siguientes estados: OFFLINE: No ha sido asociado a ninguna instancia de la base de datos. ONLINE: Ha sido adquirido por alguna de las instancias y puede contener datos de transacciones activas.

NEEDS RECOVERY: Contiene datos de transacciones que no pueden hacer rollback porque alguno de sus datafiles se encuentra inaccesible o corrupto. PARTLY AVAILABLE: Contiene informacin de una transaccin "en duda" que son transacciones en entornos de base de datos distribuidas de las que an no se ha recibido respuesta. INVALID: El segmento ha sido borrado. Para cambiar el estado de un segmento de rollback se debe ejecutar una instruccin cuya sintaxis es como sigue:
ALTER ROLLBACK SEGMENT nombre_segmento estado;

Para conocer qu segmentos de rollback existen en todos los tablespaces y el estado en que se encuentran, podemos ejecutar la siguiente sentencia: SELECT segment_name, tablespace_name, status FROM dba_rollback_segs; Que ciertamente, por los objetos a los que accede, slo podr ejecutar un DBA. Esto es particularmente importante si se desea poner algn tablespace en estado offline, ya que en primer lugar deberan encontrarse tambin offline todos los segmentos de rollback que contiene. Los archivos "Redo Log" Los archivos de "deshacer" se utilizan para almacenar la informacin de todas las transacciones que se llevan a cabo en la base de datos. De esta manera, se cuenta con un registro fiable de las operaciones que se han llevado a cabo para poder reconstruirlas en un eventual proceso de recuperacin de la base de datos, si se hubiera producido una falla. Una base de datos usualmente mantiene dos o ms archivos de redo log, los que van guardando todas las transacciones que se van efectuando. De hecho, la instruccin COMMIT no se completa mientras no se efecta la escritura en esos archivos.

Figura No. 8 Mecanismo de escritura en los archivos redo log