Vous êtes sur la page 1sur 146

MANUAL DE ADMINISTRACION DE BASES DE DATOS

UNIDAD 1 Fundamentos de los Sistemas Gestores de Bases de Datos

[1.1] Funcionamiento los Sistemas Gestores de Bases de Datos


[1.1.1]Sistemas Gestores de Bases de Datos

Un Sistema Gestor de Base de Datos (SGBD) es el software que permite gestionar bases de datos,
ocultando la fsica de la misma y permitiendo su gestin desde un nivel ms conceptual. Dicho
software permite separar las aplicaciones (los programas) de los datos; de modo que los programas
negocian con el SGBD el acceso a los datos.

En definitiva se trata de un software complejo, pero de gran importancia por lo delicado de la rama de
la informacin a la que se dedica. Los SGBD han crecido de manera exponencial estos ltimos aos
por el xito de Internet, que ha provocado el acceso a miles y miles de bases de datos por parte de
millones de usuarios cada da.

[1.1.2]modelo ANSI/X3/SPARC

El grupo de trabajo SPARC de la seccin X3 del organismo de estndares ANSI, diseo un modelo en
el que indicaba cmo deba funcionar un SGBD para asegurar la separacin entre datos y aplicaciones.
Este organismo defini tres y as especific tres niveles:

Nivel externo. Define el nivel en el que los usuarios y usuarias utilizan la base de
datos. La forma de ver la misma oculta la estructura real de la base de datos. Este
nivel ofrece el objetivo final de una base de datos, que es la visin de la misma
que poseen los usuarios y que gestionar observar de forma cmoda la
informacin almacenada en el sistema.

Este nivel es creado por los desarrolladores o programadores de la base de datos.

Nivel interno/fsico. Se refiere a la forma en la que realmente se almacena la


informacin de la base de datos. Los administradores (DBA) de la base de datos
son los encargados de crear y configurar la base de datos a este nivel. Por lo tanto
este nivel es el ms relacionado con los contenidos de este manual.
Nivel conceptual. Define la base de datos haciendo referencia a la forma en la
que se relaciona la informacin, ocultando la forma en la que realmente se
almacena en el ordenador. Es un nivel ms humano que el fsico, pero no tanto
como el externo.

Este nivel lo gestionan los analistas y/o diseadores de la base de datos. Los esquemas de la
base de datos relacionados con este nivel (esquema conceptual y esquema lgico) son los
primeros que se crean.
La Ilustracin 1, muestra la idea de los niveles en el modelo ANSI. Los tres niveles usan un modelo de
trabajo para crear los esquemas (diagramas) de trabajo de la base de datos. La idea es que pasar de un
nivel a otro sea un proceso automatizado (mediante lo que ANSI llama funciones de traduccin.

La Ilustracin 2 muestra la propuesta arquitectnica del modelo ANSI/X3/SPARC. En ella se observa


el proceso de creacin de una base de datos dividida en la fase de definicin y la de creacin. Los
nmeros del esquema expresan el funcionamiento:

El administrador empresarial (lo que hoy en da se conoce como analista) crea


el esquema conceptual. ste se procesa con la ayuda de un procesador de
esquema conceptual (lo que hoy en da se conoce como herramienta CASE).
De ese proceso se obtienen metadatos, la informacin que permite describir a la
propia base de datos.
El esquema conceptual se modifica por parte del administrador de la base de
datos para producir el esquema interno de la misma usando un procesador de
esquemas internos que genera nuevos metadatos.
A la vez el administrador de aplicaciones (jefe de desarrollo) genera el
esquema externo usando otro procesador que generar nuevos metadatos.
La fase de manipulacin la inicia el usuario, el cual gestiona los datos usando
esquemas externos. Los puntos 9 a 14 lo que hacen es transformar la informacin
pedida por el usuario de forma externa, a su forma fsica. Ese paso requiere dos
transformaciones intermedias, pasando por los esquemas conceptuales e internos
(para lo cual se usan los metadatos almacenados).

[1.1.3]Niveles de abstraccin actuales

Hoy en da se definen ms niveles de trabajo con las bases de datos. Se habla de cinco (a veces incluso
de ms) niveles. Estos niveles son (empezando desde el ms cercano al usuario):

Nivel externo. Sigue representando la vista que poseen los distintos usuarios de
la base de datos. En realidad los esquemas de este nivel son los ltimos que se
crean y lo hacen los desarrolladores o programadores.
Nivel conceptual. Actualmente se considera as al nivel que representa los
primeros esquemas de la base de datos, que son aquellos que disean los
analistas o diseadores. Ejemplo de modelo que opera a este nivel es el
modelo Entidad/Relacin.
Nivel lgico. Se acerca ms a la fsica de la base de datos. En este nivel se hace
referencia a estructuras de organizacin de informacin que varan segn el tipo
de SGBD que se utilice. Este nivel sigue siendo manejado por los analistas. En
muchos casos (aunque ciertamente es peligroso) los diseadores/as de la base de
datos empiezan por este nivel saltndose el anterior. En la actualidad el modelo
relacional sigue siendo el modelo ms habitual para crear esquemas a nivel
lgico.
Nivel interno. Es el primero en el proceso de modelado de la base de datos que
se realiza sobre el software gestor de la base de datos (teniendo en cuenta que lo
externo, las aplicaciones, se crean ms tarde). Usa el lenguaje de la base de datos
para crear las estructuras de datos definidas en el nivel lgico. Este nivel lo
maneja el administrador de la base de datos (o DBA).
Nivel fsico. Se refiere a como se organizarn los datos en el disco, en qu
ordenadores se crea la base de datos, si es distribuida o no, sistema operativo
necesario, estructura de directorios y archivos, configuracin de servidores y
sistema operativo, poltica de copia de seguridad,

La persona encargada de definir el nivel fsico esto es la administradora de la base de datos o


bien la administradora del sistema. En realidad hay acciones referidas a este nivel que se
hacen antes que las del nivel anterior; otras se irn haciendo despus o a la vez.

[1.1.4] funciones del SGBD

Cualquier Sistema Gestor de Bases de Datos debe de ser capaz de realizar tres funciones bsicas:

Funcin de descripcin o definicin. Mediante ella se crean los metadatos de la


base de datos. Es la que utilizan los administradores y analistas de las bases de
datos para crear los esquemas lgicos, internos y fsicos. Esta funcin se realiza
mediante el lenguaje de descripcin de datos o DDL, aunque se puede realizar
mediante herramientas grficas que faciliten esta tarea.

Las instrucciones SQL estndar que se disearon para realizar esta funcin son CREATE,
ALTER y DROP.

Funcin de manipulacin. Permite modificar y utilizar los datos de la base de


datos. Se realiza mediante el lenguaje de modificacin de datos o DML. Esta
funcin a veces se divide en tres
o Modificacin propiamente dicha, realizada mediante un lenguaje DML,
que permite aadir, modificar y eliminar datos. En SQL se realiza mediante
las instrucciones INSERT, DELETE y UPDATE.
o Consultar datos. Realizada con un lenguaje DQL. En SQL se realiza
mediante la potente instruccin SELECT.
o Control de transacciones.Realizada con un lenguaje DTL. ROLLBACK y
COMMIT son las instrucciones creadas para esta funconalidad.
Funcin de control. Mediante esta funcin los administradores poseen
mecanismos para proteger las visiones de los datos permitidas a cada usuario. Es
la funcin relacionada con la seguridad de las bases de datos. El lenguaje que
implementa esta funcin es el lenguaje de control de datos o DCL.

En SQL son GRANT y REVOKE las instrucciones realizadas con esta funcin.

[1.1.5]tareas del DBA

Estos apuntes estn dedicados a la labor del administrador de bases de datos o DBA. Las tareas ms
comnmente aceptadas como implcitas a la labor de un DBA son:

Configurar e instalar el hardware en el que se instalar el servidor o


servidores de bases de datos. Implica decidir qu hardware es el ptimo e
implementar memoria, discos e instalacin de red necesaria. A veces hay un
segundo administrador (el del sistema) que se encarga de ello pero basndose en
las necesidades expuestas por el DBA.
Configurar e instalar el Sistema Operativo. Tambin la gestin mnima del
sistema operativo para que la base de datos funcione correcta y rpidamente.
Nuevamente, puede ser una tarea coordinada con un administrador del sistema.
Instalacin y mantenimiento del SGBD. Seleccionando la ms adecuada forma
de instalacin y configurando lo necesario para su ptimo rendimiento, acorde con
las necesidades. Tambin es parte de esta tarea el control de las actualizaciones
del sistema de bases de datos que sean necesarias.
Crear y configurar las base de datos. Creacin de la estructura interna de la
base de datos (tablas, usuarios, permisos, vistas,). Es otra de las tareas ms
habitualmente relacionadas con el DBA y la primera fase (y las ms crtica) en a
administracin de una base de datos.
Control de los usuarios y los permisos. En definitiva establecer las polticas de
seguridad ante accesos no cualificados, tan imprescindibles en toda base de datos.
Gestin de la seguridad. Complemente la tarea anterior para proteger al
sistema ante ataques de terceros o condiciones que comprometan la estabilidad
del sistema.
Monitorizar y optimizar el rendimiento de la base de datos. Un DBA debe
detectar los cuellos de botella del sistema y actuar en consecuencia. Esto incluye
optimizar las instrucciones, crear estructura de acceso veloces o mejorar la
infrastructura hardware y software.
Realizar tareas de copia de seguridad y recuperacin. Quiz la tarea ms
crtica. Consiste en realizar acciones para en caso de catstrofe poder recuperar
todos los datos

[1.2] opciones de funcionamiento de un SGBD


[1.2.1]SGBD monocapa

Se trata de Sistemas Gestores instalados en una mquina desde la que se conectan los propios usuarios
y administradores. Es decir todo el sistema est en una sola mquina.

La ventaja es la seguridad y la clara desventaja la baja disponibilidad e incomodidad de trabajo.

Es un modelo que slo se utiliza con bases de datos pequeas y poca cantidad de conexiones. El
software Access de Microsoft es considerada un sistema gestor monocapa (aunque tiene algunas
posibilidades para utilizar en dos capas).
[1.2.2]SGBD de dos capas

Usa un modelo de funcionamiento tipo cliente/servidor. La base de datos y el sistema gestor se alojan
en un servidor, mientras que los clientes acceden desde mquinas distintas a travs de la red (sea local o
global).

Los usuarios requieren disponer de un software de acceso denominado cliente de base de datos. En el
servidor hay procesos encargados de atender a estas peticiones.
En los sistemas bicapas hay dos posibilidades:

Arquitectura cliente/servidor nico. Un solo servidor gestiona la base de


datos, todos los clientes se conectan a l para realizar las peticiones a la base de
datos.
Arquitectura cliente/multiservidor. La base de datos se distribuye entre varios
servidores. El cliente no sabe realmente a qu servidor se conecta; el software de
control de comunicaciones se encargar de dirigir al usuario al servidor adecuado.
De forma lgica, es como si se tratara de un solo servidor aunque fsicamente sean
muchos (el cliente no percibe que haya ms de un servidor).

[1.2.3]SGBD de tres o ms capas

En este caso entre el cliente y el servidor hay al menos una capa intermedia (puede haber varias). Esa
capa (o capas) se encarga de recoger las peticiones de los clientes y luego de comunicarse con el
servidor (o servidores) de bases de datos para recibir la respuesta y enviarla al cliente.

El caso tpico es que la capa intermedia sea un servidor web, que recibe las peticiones a travs de
aplicaciones web; de este modo para conectarse a la base de datos, el usuario solo requiere un
navegador web, que es un software muy habitual en cualquier mquina y por lo tanto no requiere una
instalacin de software adicional en la mquina cliente.
Este modelo es el que ms se est potenciando en la actualidad por motivos de seguridad y ocultacin
de la base de datos.

El servidor intermedio, en muchos casos, realmente es el que aloja la interfaz de manejo de los usuarios
de la base de datos. En trminos del modelo ANSI, es el que almacena y sirve los esquemas externos de
la base de datos.

interfaces de acceso a las bases de datos

El servidor intermedio se suele comunicar con el servidor de bases de datos a travs de un componente
(un driver) que proporciona a los programadores una interfaz (API) de acceso a la base de datos. Las
interfaces ms populares son:

ODBC (Open DataBase Connectivity). Interfaz muy utilizada y veterana auspiciada


por Microsoft para acceder a todo tipo de bases de datos (tanto relacionales como
no relacionales) a travs de SQL incrustado en el cdigo. Funciona en todo tipo de
sistemas y plataformas.
JDBC (Java DataBase Connect). Interfaz de uso habitual para los programadores
del lenguaje Java creada por la empresa Sun Microsystems (creadora del
lenguaje Java). Es similar a la anterior, pero utilizable solo en este lenguaje.
OLE DB (Online Linking and Embeded DataBases). Interfaz de bajo nivel para el
acceso a bases de datos de todo tipo. Se basa en PDBC al que aporta nuevas
posibilidades. No ha tenido el xito que sigue teniendo ODBC.
ADO (ActiveX Data Objects). Interfaz creada por Microsoft para el acceso a bases
de datos a travs de objetos ActiveX creados en Visual Basic.
ADO.Net. Interfaz de acceso a base de datos para aplicaciones basadas en la
plataforma .Net de Microsoft.
GDA (GNU Data Access). Puesto que las interfaces de acceso pertenecen a
empresas, GDA es una interfaz abierta creada para acceder a todo tipo de bases
de datos a travs de una serie de funciones y mdulos lo ms genricos posibles.
La idea en su diseo era proporcionar la funcionalidad de ODBC o JDBC pero desde
la ptica del software abierto.

[1.3] repaso del modelo relacional


[1.3.1]fundamentos del modelo relacional

El Modelo Relacional fue enunciado por Edgar F. Codd en los aos 70 y, todava, sigue siendo el
modelo ms utilizado por los Sistemas Gestores de Bases de Datos comerciales.

Codd se bas en los teoremas de conjuntos de Cantor y Childs para crear un modelo flexible,
entendible y eficiente de base de datos. Las implementaciones iniciales de este modelo fueron muy
costosas, pero ahora hay cientos de sistemas comerciales que usan este modelo.

Los detalles fundamentales de este modelo son:

Los datos se organizan en tablas. Cada tabla contiene datos referidos a un


elemento distinguible en el mundo real (personas, facturas, contratos, etc.)
Las tablas estn formadas por filas y columnas. Las columnas indican un atributo
(nombre, primer apellido, salario, etc.), cada fila es un ejemplar de cada elemento
del mundo real. Por ejemplo, si una tabla se usa para almacenar los datos de los
trabajadores, cada fila representa los datos de un trabajador.
La interseccin entre fila y columna contiene un dato concreto.
Una columna, o un conjunto de columnas, se establecen como clave principal o
primaria de la tabla, de modo que los datos que contienen son distintos en cada
fila de la tabla.
Para poder relacionar datos de diferentes tablas, se usan claves secundarias o
forneas. Datos que se refieren a claves primarias de otras tablas.
En las tablas relacionales se pueden aplicar estas restricciones:
o Clave primaria (Primary Key, PK). Las columnas marcadas as, identifican
cada fila y adems no pueden quedar vacas ni repetir valores en diferentes
filas.
o Unicidad (Unique, UK). Lasa columnas marcadas con ella no pueden repetir
valores en diferentes filas.
o Obligatoriedad (Not Null, NN). Las columnas con esta restriccin,
obligatoriamente deben de contener algn valor (no pueden quedar vacas).
o Integridad referencial (Foreign Key, FK). Los valores de esas columnas
deben de corresponderse con los de las columnas de la clave principal con
cuya tabla se relacionan.

[1.4] Sistemas Gestores de Bases de Datos Comerciales de tipo


Relacional
[1.4.1]licencias de software

El gur del software libre, Richard Stallman denomina al software propietario (software cuyo uso y
explotacin se rige por un contrato privado emitido por la empresa fabricante) software privativo. La
razn es que la licencia de uso de ese software no permite ver ni editar el cdigo fuente original y, por
lo tanto, impide modificar el mismo y adaptarlo a nuevas funcionalidades.

Por otro lado, el propio Stallman define al software que s permite este proceso, software libre. En
ambos casos el software no tiene por qu ser gratuito. Es decir, la diferencia no es la gratuidad sino la
libertad de utilizar el cdigo fuente del software.

Una definicin, quiz menos tendenciosa, es la que diferencia al software en: software de cdigo
abierto (aquel cuyo cdigo fuente est a disposicin del cliente) y software de cdigo cerrado u
oculto. Est diferencia de software se debe a dos formas diferentes de entender la fabricacin de
software.

Los defensores del cdigo cerrado argumentan que es lgico protegerle para evitar copiar su tecnologa
por parte de la competencia e incluso por razones de seguridad del mismo, al no poder asegurar su
correcto funcionamiento ante modificaciones de terceros.

Los defensores del cdigo abierto estn a favor porque ofrece la posibilidad de poder modificar el
cdigo por parte de miles de programadores en todo el mundo que pueden compartir dichas mejoras y
as rpidamente y de manera dinmica perfeccionar el producto. Argumentan que es ms seguro este
software ya que permite detectar problemas y virtudes ms rpidamente.

[1.4.2]SGBD de cdigo cerrado

Normalmente las licencias de uso de Sistemas Gestores de Bases de Datos con cdigo cerrado usan
licencias tipo CLUF o EULA, acrnimos equivalentes (en espaol y en ingls respectivamente de) de
contrato de licencia de usuario final.

En estas licencias, el usuario firma unas condiciones de uso por el software, entre las que siempre
figuran el hecho de no poder distribuir libremente el mismo y que est restringido a unas condiciones
de trabajo concretas . Por ejemplo se restringe el nmero de mquinas en el que se puede instalar o el
nmero de usuarios que la pueden utilizar.

Ejemplos de SGBD de este tipo son:

Oracle Database. Propiedad de Oracle Corporation. Es el SGBD ms veterano y


ms influyente ya que la mayora de mejoras al SQL original se desarrollaron para
este SGBD. Sigue siendo uno de los SGBD comerciales ms utilizados y adems
posee una gran relacin con el lenguaje Java, acrecentada por la compra de la
empresa creadora del mismo, Sun Microsystems.

Presume de su gran estabilidad y escalabilidad, un control avanzado de transacciones y de sus


lenguajes internos de manejo. Especialmente famoso es su lenguaje procedimental PL/SQL. Es
un SGBD multiplataforma, que se puede instalar en diferentes sistemas, especialmente Linux de
tipo Red Hat Enterprise, Windows y Solaris.
DB2. Propiedad de IBM, es una de las bases de datos comerciales ms populares.
Desarrollada para Windows, UNIX y Linux. Implementa XML de manera nativa y
dispone de amplias facilidades de migracin de datos (especialmente desde
Oracle) as como uso de transacciones avanzadas.
SQL Server. Propiedad de Microsoft. Originalmente basado en el cdigo del
SGBD SyBase que Microsoft. Actualmente SyBase (ahora perteneciente a la
empresa SAP) y SQL Server son productos diferentes. SQL Server dispone de una
gran escalabilidad, estabilidad, uso de transacciones, entorno grfico avanzado y
de xito entre los programadores de la plataforma .NET (tambin de Microsoft por
su compatibilidad con esta).
Informix. Propiedad de IBM desde 2001 (anteriormente perteneciente a la
empresa Informix). Durante los aos 90 fue el sistema ms popular por detrs de
Oracle, por lo que sigue siendo el software de gestin de las bases de datos
numerosos negocios

[1.4.3]SGBD de cdigo abierto

licencias de cdigo abierto

GPL (GNU General Public License). Es la licencia ms utilizada en el mundo del


software de cdigo abierto. Fue creada por Richard Stallman para el proyecto
GNU, por lo tanto es la licencia del sistema Linux. Es la Free Software
Fundation la entidad encargada de actualizar y revisar esta licencia.

Esta licencia permite:

o Modificar y distribuir el software bajo esta licencia (incluso si se modifica ).


o Cobrar por la distribucin del software (incluso si lo hemos modificado)

Las restricciones ms importantes que realiza esta licencia son:

o Disminuir, en las obras distribuidas, la licencia original. Es decir no


podemos, por ejemplo, cerrar el cdigo original o modificar esa licencia.
o Distribuir el software sin el cdigo fuente original.
o Distribuir el software sin suministrar a los destinatarios una copia de la
licencia GPL del software.
o Aplicar derechos de copyright, si el autor no indica explcitamente que la
obra original era GPL.
Licencia BSD. Es la que se cre para los sistemas BSD (Berkeley Software
Distribution). Es menos restrictiva que la anterior. Permite modificar y distribuir el
software bajo esta licencia (incluso si se modifica ) en la forma que queramos
siempre que se cumpla
o Si distribuimos el software debemos mantener el aviso de copyright anterior
del software en el que se basa nuestra distribucin.
o No podemos usar el nombre de los autores originales ni de sus
colaboradores para apoyar o promocionar una distribucin modificada del
software original.
Hay que tener en cuenta que incluso podemos modificar software con licencia BSD y
distribuirle bajo una licencia de software cerrado. El caso ms tpico de esta idea es el sistema
Mac OS de Apple que se basa originalmente en un sistema BSD.

Licencia MIT. Licencia creada por el Instituto Tecnolgico de Masachusetts,


para sus distribuciones de software, concretamente se utiliz para el sistema X
Window System. Es, como la anterior, muy permisiva. Permite modificar y
redistribuir el software en la forma que el usuario desee, basta con incluir el aviso
de copyright de esta licencia (que incluso se puede modificar).
Licencia Apache. Presente en todo el software distribuido por la fundacin
Apache. Solo exige que se avise al usuario que el software original utilizaba
licencia Apache, pero se permite que una distribucin de software sea ms
restrictiva que el original (al estilo de las dos licencias anteriores).
Dominio pblico. Es la licencia ms permisiva de todas. De hecho un software
bajo esta denominacin no tiene ningn derecho de autor o restriccin de uso. Es
la licencia de uso de las obras (sean del tipo que sean) a las que le caducan los
derechos de autor.

productos comerciales de cdigo abierto

MySQL. Inicialmente creada por la empresa MySQL AB, posteriormente


comprada por Sun Microsystems que, a su vez, fue comprada por Oracle. Ha
sido considerada como la principal SGBD de la comunidad de programadores de
cdigo abierto y de hecho en Internet sigue siendo la principal base de datos
asociada a una aplicacin web. Mantiene su licencia de tipo GPL, pero posee una
segunda licencia cerrada para opciones de compra comercial con soporte.

Es muy popular por su histrica asociacin con el lenguaje PHP, por su buena estabilidad, gran
escalabilidad, e incluso uso de transacciones y lenguaje procedimental; adems de ser un
producto con infinidad de plataformas posibles para su instalacin.

MariaDB. Derivada la anterior por Michael Widenius, fundador de MySQL. La


idea es disponer de un producto compatible con MySQL que mantenga la licencia
GPL de forma perdurable. Esta siendo muy exitosa y est reemplazando a MySQL
en numerosas instalaciones de Linux.
PostgreSQL. Versin de cdigo abierto basada en el producto Ingres de la
Universidad de Berkeley. Usa licencia de tipo MIT. Es muy potente y,
probablemente, sea el SGBD relacional ms respetuoso con los estndares. Hoy en
da, est considerada como la ms potente de las bases de datos de cdigo abierto
y a partir de su ncleo se han creado otros productos de gestin de bases de
datos.
SQLite. Creada por el desarrollador Richard Hipp, usa una licencia de dominio
pblico. Presume de ser totalmente relacional, compatible con ACID (gestin de
transacciones completo) e incluso incluir un lenguaje procedimental (al estilo de
PL/SQL). Todo ello en apenas 300KB de espacio.

Est escrita en C y guarda todo lo que necesita en un solo fichero para cada base de datos. Su
ligereza y potencia aceptable la han hecho muy popular en muchas aplicaciones e incluso en los
sistemas operativos mviles (casi todos la integran).
[1.5] bases de datos NoSQL. modelos diferentes del relacional
[1.5.1]introduccin

Las bases de datos relacionales han sido el modelo ms popular desde finales de los aos 70 por su
solidez y gran facilidad para disear sistemas complejos. Sin embargo en estos ltimos aos empiezan
a estar desbordadas ante el uso de bases de datos que tienen que dar servicio veloz y concurrente a
miles de usuarios, los cuales son capaces de generar enormes cantidades de informacin en poco
tiempo.

Esta informacin en una base de datos relacional habra que validarla con las reglas e integridad que se
imponen en esas bases de datos, indexarla y asegurar su uso en transacciones, etc.

En un sistema con miles de entradas por minuto (como ocurre con las bases de datos de las redes
sociales), el sistema se colapsara. Por ello se han diseado bases de datos que se saltan el modelo
relacional y que ya no utilizan el lenguaje SQL. De ah el nombre de sistemas NoSQL.

Aunque este trmino se utiliza para designar a las bases de datos documentales, grficas y otros
esquemas de bases de datos; actualmente se utiliza especialmente para designar a las bases de datos que
requieren tantas transacciones por segundo, que el esquema relacional tradicional no dara abasto para
ello.

La base terica de este modelo se basa en el teorema de CAP o de Brewer, que indica que en un
sistema distribuido no se pueden asegurar simultneamente estas tres reglas:

Consistencia (C). Que consigue que la informacin sea la misma (y en todo


momento) en todos los nodos que almacenan los datos
Disponibilidad (A de Availability). Que hace que cada instruccin realizada sobre
los datos reciba la confirmacin de si ha sido satisfactoria o no. Es decir, se tiene la
seguridad de que el sistema siempre atiende a los usuarios ocurra lo que ocurra.
Tolerancia a fallos (P de Partition tolerance), que permite que el sistema siga
funcionando aun cuando se pierdan datos u ocurran errores.

Un sistema relacional de base de datos podra asegurar la C y la A, pero no la disponibilidad en caso de


una gran demanda de peticiones. Las bases de datos NoSQL siempre son tolerantes a fallos a cambio de
no asegurar la consistencia (como ocurre con CouchDB o Cassandra) o la disponibilidad (como
ocurre con MongoDB o Redis).

[1.5.2]diferencias con bases de datos SQL

Las bases NoSQL utilizan un modelo diferente en el que los datos se almacenan de forma menos
estricta, en especial no siguen estas reglas:

Transacciones ACID, como s hacen los SGBD potentes relacionales (como


Oracle, DB2, SQLServer o PostgreSQL). ACID hace referencia a las propiedades:
o Atomicidad (A). Que implica que ninguna instruccin se pueda quedar a
medias. Es decir o se ha ejecutado completamente o no, aunque ocurra un
error grave en el servidor.
o Consistencia (C). Asegura que una transaccin siempre mantiene la
integridad de los datos, se anule o se lleve finalmente a cabo la transaccin.
Incluso en cualquier momento intermedio de la transaccin.
o Aislamiento (I). Asegura que las transacciones simultneas no se afecten
entre s. Es decir que una transaccin ser independiente de la otra.
o Durabilidad (D). Asegura que cuando se confirme la transaccin, los
efectos de sus instrucciones sern definitivos, independientemente de que el
sistema se apague o cierre por un error grave.

No obstante hay bases de datos NoSQL que son capaces de gestionar transacciones ACID, al
menos en los nodos centrales (los que compactan la informacin definitiva).

En la mayora se usa una alternativa conocida como BASE, que es una norma de disponibilidad
y consistencia menos ambiciosa.

Datos no relacionales. Los datos no se almacenan en tablas relacionales que se


combinan mediante operaciones de tipo JOIN. El modelo lgico es distinto y
variable dependiendo del sistema.
SQL como lenguaje de consulta. En su lugar utilizan lenguajes de programacin
como Java, JavaScript o C++ para acceder a los datos y otros como XML o
JSON para definir los datos y metadatos.

[1.5.3]usos habituales de las bases de datos NoSQL

Datos de registros que se modifican cada poco tiempo (logs de servidores web,
listado de peticiones http, etc.)
Datos que se producen de forma paralela (se graban a la vez)
Datos con relaciones complejas, difcilmente consultables desde SQL o
representables de forma relacional
Datos desestructurados o combinaciones de datos estructurados y
desestructurados.
Datos que se producen a gran velocidad

[1.5.4]tipos de bases de datos NoSQL


Se consideran dentro de esta clasificacin a estos tipos de bases de datos:

Clave/valor. Basadas en el funcionamiento de los arrays asociativos. Se asocia


una clave (no repetible) a uno o varios valores.
o Amazon Dynamo DB. Desarrollada por la empresa Amazon, es un
proyecto propiedad de esta empresa implementada para gestionar la
enorme cantidad de transacciones de esta empresa y como una de las bases
de su negocio en la nube. Almacena los datos en estructuras clave, valor:
los valores son elementos binarios y, por lo tanto, opacos salvo desde la
propia base de datos.
o Redis. Posee licencia BSD. Usa un modelo de asociacin de claves a un
contenido indexado. Usa la RAM de forma intensiva para almacenar los
datos. El resultado de su arquitectura es una base de datos muy veloz. Por
ello cada vez es ms utilizada
o Oracle NoSQL. SGBD de Oracle que permite modelado de datos de forma
relacional, como documentos JSON o como datos de tipo clave/valor.
Almacenes documentales. En ella, la informacin importante utiliza un formato
documental; es decir, un formato que encapsule la informacin y sus metadatos.
Los datos se almacenan usando XML, JSON o incluso formatos binarios como PDF
o Microsoft Office.
Los documentos se asocian a un valor clave (key) que permite su indexacin. Algunas bases de datos
comerciales de tipo documental son:

MongoDB. Todava es el SGBD de tipo NoSQL ms utilizado. Tiene licencia GNU y


utiliza un formato documental llamado BSON que es una versin binaria del
lenguaje JSON. Las funcionalidades de acceso y gestin de datos y metadatos se
realizan mediante JavaScript.
Apache CouchDB. Dentro de la familia Apache (y usando licencia de cdigo
abierto Apache) es una base de datos NoSQL orientada a almacenar documentos.
Usa formato JSON para almacenar los datos y las consultas se realizan mediante
JavaScript. Permite gestionar la informacin mediante peticiones HTTP de tipo
REST.

Almacenes de columna ancha (wide column stores). Se trata, en realidad, de


una modalidad de base de datos de tipo clave/valor en la que los datos se
almacenan en tablas, filas y columnas. La diferencia con las relacionales es que el
nombre y tipo de las columnas varan de fila a fila.
o Google BigTable. Base de datos propietaria utilizada para muchos de los
servicios de almacenamiento de Google. Los datos se almacenan en una
estructura multidimensional de tres claves (fila, columna y fecha) y
permiten ser particionados. El modelo fsico se basa en el Google File
System, modelo de archivos propietario de Google.
o Apache Cassandra. Con licencia Apache, es muy popular y de contrastada
potencia. Se desarroll inicialmente por facebook. Los datos se almacenan
en tuplas sin relaciones de integridad. Presume, adems, de un crecimiento
exponencial en estos ltimos tiempos y de ser el motor de base de datos de
servicios como twitter o Netflix.
o Apache HBase. Licencia Apache. Se bas en BigTable. Se utiliza en
numerosas aplicaciones basadas en datos. HBase es parte del proyecto
Hadoop de Apache para el proceso de Big Data.
Basadas en grafos. Utilizan una estructura de los lenguajes de programacin
conocida como grafo, que permite relacionar los datos a travs de enlaces que
facilitan el recorrido por los mismos. Se usa para almacenar datos con relaciones
complejas (por ejemplo trayectos con coordenadas GPS, relaciones sociales,).
o Neo4j. Es el SGBD de este tipo ms utilizado. Es capaz de asegurar
transacciones de tipo ACID. Posee licencia GPL y est programada en Java.
Usa el lenguaje CQL (Cypher Query Language) creado para las bases de
datos de este tipo. Permite la gestin de los datos a travs de peticiones
HTTP de tipo REST. Su licencia es GPL
o OrientDB. Se la considera de este tipo, pero en realidad permite organizar
los datos en forma documental, con clave/valor u orientada a objetos. Las
relaciones entre los datos siempre utilizan un modelo de grafos en todo
caso. Usa licencia Apache
Bases de datos nativas XML. El formato documental XML se utiliza en casi
cualquier base de datos comercial actual. Se habla de nativas cuando el sistema
utiliza en todo momento XML para almacenar y gestionar los datos. En ellas la
informacin se almacena en forma documental utilizando XML y se maneja con los
lenguajes relacionados con XML: XQuery, XPath, XSL, La gestin avanzada se
realiza con conectores que permiten manejar el XML desde lenguajes clsicos
como por ejemplo Java. Ejemplos:
o Mark Logic Server. Usa licencia comercial.
o BaseX. Utilizada por la comunidad GitHub (que es un servicio de
almacenamiento en la nube utilizado por miles de programadores), de libre
uso.
o Virtuoso. Posee licencia GPL. En realidad es un sistema multimodelo que
permite manipular los datos desde un enfoque relacional o basado en grafos
de tipo RDF (lenguaje de definicin basado en XML).

[1.5.5]BigData y MapReduce

idea del Big Data

Big Data es un trmino que se utiliza para hacer referencia a los datos que son tan enormes y complejos
que requieren mtodos de gestin y consulta sobre los mismos que escapa a las tcnicas clsicas de
trabajo con bases de datos.

El uso de este trmino se ha potenciado debido a la produccin masiva de informacin digital que se
realiza continuamente desde Internet.

Para que un conjunto de datos sean considerados Big Data, tienen que ser enormes en cuanto a
cantidad, muy variados en tipo y estructura, producidos a gran velocidad y veraces (informacin real).
MapReduce

Se trata de un modelo de programacin que permite procesar enormes volmenes de datos. Se basa en
computacin distribuida.

Muchas bases de datos NoSQL poseen funciones de tipo MapReduce, pero la implementacin de este
modelo es especialmente utilizada en sistemas de trabajo con BigData.

MapReduce no utiliza un modelo lgico de base de datos, sino que trabaja con sistemas de ficheros
directamente. En este sentido hay dos soluciones muy populares para almacenar los ficheros:

Google File System (GFS). Solucin de archivos distribuidos creada de forma


propietaria por Google para aplicar MapReduce.
Hadoop File System (HDFS). Solucin similar a la anterior, pero gratuita y de
cdigo abierto.

soluciones comerciales
Apache Hadoop. Se trata de un marco (framework) de trabajo que permite
trabajar con grandes volmenes de datos de forma distribuida. Une el sistema de
ficheros HDFS (para el amacenamiento de los datos) con MapReduce (para el
proceso). Es, de largo, la solucin ms utilizada para trabajar con BigData.
Apache Spark. Es otro framework de trabajo con una finalidad similar pero que
admite diferentes posibilidades para el almacenamiento de datos (incluido HDFS).
Es ms rpido que Hadoop por lo que se usa ms para aplicaciones que requieren
gran velocidad de proceso de datos (inteligencia artificial, aplicaciones de tiempo
real, machine learning,etc.).

Se pueden utilizar ambos marcos (Spark y Hadoop) a la vez.

UNIDAD 2 Arquitectura de Oracle Database

[2.1] comunicacin con los servidores Oracle Database


[2.1.1]elementos de la comunicacin con un servidor Oracle

Para comunicar con el servidor de bases de datos, Oracle Database proporciona un sistema de al menos
dos capas. Lo que implica a un cliente y a un servidor, los cuales utilizar alguna red de computadoras
para conectar. Sin embargo es muy habitual que entre la capa del cliente y la del servidor haya que
atravesar otra capa, formando un modelo de tres capas (segn lo visto en el captulo anterior). La
Ilustracin 12 resalta los elementos ms importantes en la comunicacin cliente/servidor de Oracle:
La comunicacin entre el cliente y el servidor se realiza a travs de dos procesos:

Proceso de usuario. Software que se ejecuta en el lado del cliente y se encarga


de recoger las instrucciones lanzadas por el usuario y enviarlas al servidor.
Proceso servidor. Software que se ejecuta en el servidor de bases de datos y
que se encarga de procesar el cdigo lanzado por el usuario.

Normalmente, hay un proceso servidor para cada usuario que conecte con la base de datos. Es decir, si
hay diez conexiones, habr diez procesos de usuario y diez procesos servidores.

Oracle, no obstante, proporciona un modo de trabajo llamado servidor compartido, en el que un


mismo proceso servidor atiende a varios procesos de usuario. La razn es ahorrar memoria, aunque no
sea tan eficiente como el modo dedicado.

[2.1.2]sesin y conexin

Hay dos elementos en la comunicacin cliente/servidor que conviene diferenciar:


Conexin. Mecanismo de comunicacin entre el lado del cliente y el lado del
servidor. A los extremos de esa comunicacin se encuentran los procesos de
usuario y de servidor.
Sesin. Abarca la comunicacin desde el mismo cliente hasta llegar a la base de
datos. Una sesin requiere autentificar al usuario y otorgarle los recursos
necesarios para una correcta comunicacin. La sesin finaliza cuando el usuario
abandona la aplicacin de usuario o bien cuando desconecta. Un mismo usuario
puede establecer varias sesiones (normalmente).

Es posible incluso que a travs de la misma conexin se cree ms de una sesin. Esa es la
diferencia clave. La sesin hace referencia a datos que tienen que ver con el usuario y
contrasea del sistema Oracle.

Los datos de la sesin se almacenan en el servidor. Los administradores pueden indagar sobre
las sesiones actuales a travs de la vista V$SESSION.

[2.1.3]modos de servidor dedicado y compartido

En principio, la forma de trabajar de Oracle Database es la que se conoce como modo de servidor
dedicado. En ella por cada proceso servidor atiende a un nico proceso de usuario. Dicho de otro
modo, hay tantos procesos servidores como procesos de usuario.
Sin embargo existe la posibilidad de trabajar en modo de servidor compartido. En este caso cada
proceso servidor atiende a varios procesos de usuario. Uno, o ms, procesos, llamados dispatchers
(repartidores), se encargan de asignar a cada proceso de usuario el proceso servidor adecuado.

En este modo se ahorra memoria, ya que la memoria de usuarios se almacena en la zona global
compartida (llamada SGA).

[2.1.4]establecimiento de conexin

La conexin tpica a Oracle comienza con una peticin de acceso desde el lado del cliente.

Un proceso conocido como Listener, consigue escuchar dicha peticin. El Listener es uno de los
elementos fundamentales de Oracle Database. Su labor es gestionar el trfico de las peticiones del
cliente.

Una vez el Listener detecta la nueva peticin, se establece conexin y comenzarn a comunicarse el
proceso de usuario con su proceso servidor correspondiente.

El Listener se mantiene escuchando la comunicacin (observar Ilustracin 15).

[2.2] funcionamiento de la instancia de Oracle


[2.2.1]arquitectura general de Oracle Database
Un servidor Oracle Database es el conjunto formado por estos dos elementos:

La instancia de Oracle. Formada por el conjunto de procesos y las estructuras de


datos en memoria que requiere el servidor cuando est en funcionamiento.
Archivos de la base de datos. Los archivos en disco que almacenan de forma
permanente la informacin de la base de datos. La base de datos en s, la forman
los archivos de datos, los de control y los Redo Log.
Un servidor de Oracle puede poseer ms de una instancia, pero en general en estos apuntes
trabajaremos bajo la hiptesis de tener un sistema de instancia simple. Las instancias mltiples se dan
en sistemas distribuidos, en los que es posible disponer de ms de una instancia (alojada en diferentes
servidores) para la misma base de datos.

La Ilustracin 15 resume la arquitectura de Oracle. En ese diagrama las elipses representan procesos,
los rectngulos son almacenes de datos en memoria RAM y los cilindros, archivos en disco.

[2.3] estructuras en memoria de la instancia de Oracle


[2.3.1]elementos de la memoria
Ilustracin 16. Elementos de la memoria de Oracle. Se resaltan los principales componentes internos
as como la comunicacin entre el proceso cliente y el proceso servidor y su relacin con la PGA y la
SGA.
Como ya se ha comentado, una instancia est compuesta por las estructuras de memoria en las que se
graban datos y por los procesos que dan servicio a la base de datos.

La Ilustracin 16 muestra el detalle de los componentes de la instancia. Cada proceso servidor (si el
modo de trabajo es dedicado) atienden cada uno a un usuario.

Los datos en la instancia poseen dos grandes estructuras de almacenamiento:

SGA (Server Global Area). Zona de la memoria en la que se guardan los datos
globales de la instancia. Esos datos son los que comparten todos los procesos
servidores, por lo que la mayora de sus componentes son memorias de tipo
cach. Muchas de sus reas llevan el nombre de Pool. trmino ingls que, en este
contexto, puede traducirse como fondo. En el sentido de un espacio en el que se
reservan activos.
PGA (Program Global Area). Zona de la memoria en la que se guardan los datos
referentes a un proceso servidor concreto. Si el modo de trabajo es dedicado, si
hay 5 conexiones habr 5 procesos servidores y, por lo tanto, 5 PGAs. Al conjunto
de todas las PGAs en uso, en un momento dado, se le llama instancia PGA. El
tamao de la instancia PGA se puede calibrar dentro de las opciones de
configuracin.

Pasamos, a continuacin, a detallar los elementos de la instancia de Oracle. Inicialmente empezaremos


por los elementos de la memoria y despus detallaremos los principales procesos.

[2.3.2]componentes de la PGA

Como se ha comentado, la PGA contiene datos necesarios e independientes para cada proceso servidor.
La informacin que contiene permite acelerar el proceso de las instrucciones SQL del clienteLa PGA se
divide en dos zonas:

Espacio de pila. Este espacio siempre (aun en modo compartido de servidor) se


guarda fuera de la SGA. Es decir, se mantiene en la PGA siempre.
UGA (User Global Area). Es el rea global de usuario. En modo de servidor
compartido este rea puede pasar a la SGA (a la zona comn de memoria). Este
rea se compone de los siguientes elementos:
o rea de trabajo SQL. Para el proceso de las instrucciones SQL. A su vez se
dividen en:
rea de ordenacin. Para acelerar la ejecucin de las clusulas
ORDER BY o GROUP BY.
rea hash. Para uniones de tipo hash entre tablas.
rea de creacin de bitmaps. Para crear ndices de tipo bitmap.
rea de fusin de bitmaps. Para resolver ndices de tipo bitmap.
o Memoria de sesin. Con los datos de las variables de sesin y de control
de la sesin de usuario.
o rea privada SQL. Contiene informacin sobre la instruccin SQL en curso.
Es un almacenamiento que permite almacenar datos referidos al estado de
ejecucin de las consultas y otras instrucciones. Lo ms significado de este
rea es el uso del cursor.
El cursor es una estructura dentro del rea privada que permite volcar al proceso de usuario los
datos de las consultas SQL. Si una consulta devuelve 2000 filas, el cursor se encarga de ir
volcando poco a poco esos datos.

Para ello un puntero en el rea de datos del usuario permite relacionar los datos que ve el
usuario con los datos del rea privada.

Como ya se ha comentado, en el caso de utilizar un modo de servidor compartido hay datos que pasan a
la SGA. Concretamente, la UGA pasar a la SGA y las PGA de cada conexin almacenarn solo el
espacio de pila.

[2.3.3]componentes de la SGA

Pool Compartido (Shared Pool)


Se trata de una zona de memoria utilizada para acelerar la ejecucin de las instrucciones SQL y
PL/SQL.

Su espacio se divide en:

Cach de biblioteca (Library Cache). Almacena cdigo ejecutable de SQL y


PL/SQL. Siempre que se ejecuta una nueva instruccin (SQL o PL/SQL), se
comprueba si la ejecucin de la misma esta disponible en este rea. Dentro de
este cach tenemos:
o rea SQL compartida (Shared SQL area). Contiene el plan de ejecucin de
la instruccin y el rbol de anlisis de la misma. De esta forma se ahorra
memoria cuando se repiten las instrucciones. Tambin los elementos PL/SQL
son cacheados de esta forma.
o rea SQL privada. Normalmente los datos privados de los usuarios,
referidos a informacin sobre su sesin, necesarios para que una instruccin
se ejecute correctamente, se almacenan en la PGA (como se puede
comprobar en el apartado anterior). Pero en el modo compartido de
servidor, se almacena en la SGA, concretamente en la cach de biblioteca en
una zona separada del rea de SQL compartida.
Cach de Diccionario de Datos (Data Dictionary Cache). Se la conoce tambin
como cach de fila ya que sus datos se almacenan en forma de fila (en el resto
de cachs se almacenan en forma de bloques). Contiene informacin para acelerar
el acceso a los metadatos que utilizan las instrucciones (tambin en la Cach de
Biblioteca se guarda informacin sobre metadatos).
Cach de resultados (Results cache). Tanto para SQL como para
PL/SQL, almacena fragmentos de consultas SQL y PL/SQL para aprovecharlos en
consultas posteriores. El parmetro de sistema RESULT_CACHE_MODE permite
establecer si todas las consultas almacenarn fragmentos en cach o slo las
marcadas de forma especfica.
rea fija. Es una zona pequea donde se almacenan los datos necesarios para la
carga inicial de la SGA en memoria.
Cach de Bferes de Datos (Database Buffer Cache)

Est dividida en bloques (ms adelante se explica lo que es un bloque de base de datos) y es la
estructura (normalmente) que ms ocupa en la SGA. Oracle Database intenta que la modificacin de
datos en el disco tarde lo menos posible. La estrategia principal es escribir lo menos posible en el disco.

Por ello cuando una instruccin provoca modificar datos, inicialmente esos datos se graban en esta
cach. La grabacin ocurre tras la confirmacin de una transaccin. Despus, cada cierto tiempo, se
grabarn todos de golpe en los ficheros de datos (concretamente cuando ocurra un checkpoint).
Los datos, aunque no estn grabados realmente en disco, sern ya permanentes y aparecern en las
consultas que se realicen sobre ellos, adems esas consultas sern ms rpidas al no acceder al disco.
Esto ltimo es la segunda idea, que los datos a los que se accede ms a menudo, estn en memoria y no
se necesite leerlos del disco.

Los bferes de la cach se asignan con un complejo algoritmo basado en LRU (Last Recently Used)
que da prioridad a los bferes que se han utilizado ms recientemente.

Cada bfer puede estar en uno de estos estados

Sin uso (Unused). Son bloques que no se estn utilizando actualmente, por lo que
estn libres para cualquier proceso que requiere almacenar datos en ellos.
Limpios (Clean). Son bferes que se han utilizado, pero cuyos datos ya estn
grabados en disco. El siguiente checkpoint no necesitara grabar estos datos, por lo
que estn disponibles si se requiere su reutilizacin.
Sucios (Dirty). Contienen datos que no se han grabado en disco. Se deben de
grabar en el disco en cuanto ocurra un checkpoint, de otro modo podramos perder
informacin.

Adems, con respecto al acceso, los bferes pueden tener estas dos situaciones:

Libres (Free o Unpinned). Ningn proceso le est utilizando.


Pinned. Estn siendo utilizados por un proceso, por lo que otra sesin no puede
acceder a este bfer.

La lectura de bferes sigue este proceso:

[1]Si necesitamos un dato, se le busca en esta cach. Si se encuentra se entrega, siempre y cuando no
est ocupado por otro proceso (pinned).

[2]Si el dato requerido no se encuentra en el bfer, ocurre un fallo de cach. Este fallo implica leer los
datos del disco y pasarlos a memoria (los bferes necesarios se marcarn como bferes limpios).

[3]En ambos casos, si la instruccin implica modificar los datos de ese bfer, se modifica y pasa a ser
un bfer sucio.

[4]Cuando ocurre un checkpoint, el proceso DBWn, graba bferes sucios a disco (lo mismo si se
detecta que quedan pocos bferes limpios o sin uso) y se marcan como bferes limpios.

Otro detalle de esta zona de la SGA es que los bferes se agrupan en fondos de almacenamiento
(Pools). Estos fondos son:

Pool por defecto. Es el de uso normal. Normalmente es el nico, salvo que se


especifique el uso de otros.
Pool KEEP. Se utiliza para bloques de uso muy frecuente, pero que dentro del
fondo por defecto podran ser reutilizados continuamente si no disponemos de
espacio suficiente.
Pool RECYCLE. Se utiliza para bloques de uso muy poco frecuente. El uso de este
pool previene de usar estos bloques en el pool por defecto.
Pools nK. El tamao de bloque es una cuestin importante en una base de datos
(ms adelante se especificara lo que es un bloque). Aunque la base de datos tiene
un tamao de bloque por defecto, en algunos tablespaces (elemento en el que se
guardan los objetos, se describe ms adelante), podramos variar ese tamao. Por
ello podramos tener otros cachs orientados a estos elementos de tamao
especial. En la Ilustracin 19, como ejemplo, aparecen dos fondos de tamao 2K y
4K.

Bfer de Redo Log

Se trata de un bfer circular. Se van utilizando los bloques y, cuando se han usado todos, se vuelven a
reutilizar los primeros en caso necesario y as continuamente.

Su funcin es almacenar la informacin acerca de los ltimos cambios (DML confirmados y DDL)
realizados sobre la base de datos. Esta informacin se vuelca continuamente, mediante el proceso
LGWR, a los archivos de datos.

Los Redo Log son necesarios para recuperar los datos que no han podido ser grabados definitivamente
en disco (normalmente por ocurrir una situacin de excepcin antes de un CHECKPOINT).
Pool Grande (Large Pool)

rea opcional de la SGA que proporciona espacio para los datos necesarios para realizar operaciones
que impliquen muchos datos:

Backup y restauracin, para copias de seguridad.


Procesos de Entrada/Salida del servidor.
Memoria libre. Para aliviar el trabajo de la instancia.
Consultas en paralelo.
Almacenamiento de la UGA. Normalmente la UGA se almacena en la PGA, pero
en modo de servidor compartido se podra almacenar en este rea.
Cola de peticiones. Especialmente importante cuando el servidor recibe
numerosas peticiones. No se almacenan bloques de datos en este caso.
Cola de respuestas. Tampoco utiliza bloques, sino estructuras ms apropiadas
para las colas.
Esta rea de memoria no ocupa bloques usando el algoritmo LRU (a diferencia del Pool Compartido y
de la Cach de Bferes de Datos), sino que los bloques quedan asignados hasta que queden marcados,
por el proceso que los utiliz, como libres para otros procesos.

Pool de Java

Slo se usa para los programas que utilizan Java.

Pool de Streams

Lo usa slo el componente Oracle Streams (utilizado para bases de datos distribuidas) y sirve para
almacenar en bferes, datos manejados por dicho componente.

[2.4] procesos de la memoria de Oracle


[2.4.1]tipos de procesos

Proceso de usuario.
Procesos de bases de datos. Compuestos por:
o Proceso servidor.
o Procesos en segundo plano.
Procesos de la aplicacin. Son demonios (daemons), servicios residentes que
se ejecutan de forma automtica. El ms conocido es el listener de red.
[2.4.2]tareas de los procesos servidores

Los procesos servidores atienden a los procesos de usuario. Sus labores fundamentales son:

Analizar el cdigo SQL o PL/SQL lanzado por el proceso de usuario


Establecer el plan de ejecucin de la consulta SQL lanzada por el usuario
Leer los datos requeridos por ese cdigo en la memoria SGA o en el disco (si no
estn en la SGA).
Devolver los resultados al proceso de usuario o indicarle, si es el caso, el error
producido.

[2.4.3]procesos en segundo plano

Los procesos en segundo plano se ejecutan al lanzar la instancia de Oracle y quedan residentes en
memoria realizando diversas labores en el servidor. La vista V$DBPROCESS permite obtener
informacin de los procesos en memoria.

A continuacin se detallan las acciones de los principales procesos.

DBWn.

El proceso de escritura de base de datos (DataBase Writer Process) DaEscribe los bloques
modificados del buffer de cache de la base de datos (dirty buffers) de la cach de bferes de datos de la
SGA a los archivo de datos en disco. Eso no ocurre en todo momento, sino cuando se produce un
evento de tipo checkpoint.

El hecho de que esto se haga solo cada cierto tiempo (el tiempo establecido para el checkpoint) se debe
a que, de otro modo, el funcionamiento del servidor sera muy lento si se accediera ms a menudo al
disco.

La n en el nombre (DBWn) indica que no hay un solo proceso DBW, sino que puede haber hasta 20
dependiendo de la potencia del servidor (DBW0, DBW1, ). En un sistema con un solo procesador lo
lgico es que haya solo uno. El parmetro de sistema DB_WRITER_PROCESSES se encarga de
definir el nmero de procesos DBWn.

La escritura en disco de los bloques sucios ocurre si:

Un proceso servidor necesita modificar datos en la cach de bferes de datos y no


encuentra bloques libres o limpios.
Hay un checkpoint o punto de control.

DBW escribe los bferes en disco en lotes, para ganar eficacia. Al grabar los datos, graba el nmero de
secuencia de cambio (SCN) en el disco. Este nmero indica la transaccin que se est grabando. Como
en los Redo Log tambin se usa esa secuencia, los datos grabados en los Redo Log y en los ficheros de
datos se pueden comparar y saber qu archivos estn ms al da (siempre estarn ms actualizados los
Red Log) y as, en caso de recuperacin, determinar los SCN que faltan.
Como se ha dicho antes, se graban los datos cuando ocurre un checkpoint o cuando faltan bloques para
asignar en la cach de bferes de datos. En realidad en ambos casos, diremos que ha ocurrido un
checkpoint.

Hay dos formas de actuar de DBW, la diferencia est en el tipo de checkpoint que le llega. Hay dos
tipos: checkpoint incremental y checkpoint total (cuando se habla de checkpoint a secas, nos
estaremos refiriendo a este ltimo).

La cuestin es que puede haber miles y miles de bferes ocupados para ser guardados en los archivos
de datos, lo que supone que esa sea una tarea larga y, por lo tanto, peligrosa porque durante todo el
tiempo de escritura, un error crtico podra dejar la base de datos corrupta y no funcionar.

Los checkpoints incrementales slo escriben unos cuantos bferes sucio marcndolos como libres, as
el tiempo de grabacin es ms rpido.

Slo cuando llega el checkpoint de verdad, el total, se graban absolutamente todos los bferes sucios.
Esto ocurre menos a menudo, por lo que el riesgo de que se corrompa el disco, es menor.

DBW acta si ocurre una de estas circunstancias (las tres primeras se corresponden a un checkpoint
incremental y solo la ltima es un checkpoint total):

[1]No hay bferes libres en el bfer de datos de la SGA para seguir almacenando informacin; es
decir, la cach de datos est a tope de ocupacin. Si esto ocurre, Oracle escribe unos cuantos bloques
sucios en los archivos de datos para poder liberar la ocupacin de la memoria y disponer de ms
bferes libres.

[2]Hay demasiados bloques sucios. En ese caso se escriben unos cuantos bloques sucios en disco para
liberar espacio. Es un caso previo al anterior que se basa en una medida de ocupacin preventiva para
no esperar a que no haya bferes libres, que sera ms dramtico.

[3]Se cumpli el tiempo de tres segundos de espera. En una base de datos ocupada, este evento no se
cumple jams. Ocurre cuando el sistema est sin hacer nada durante tres segundos. En ese caso se
escriben unos cuantos bloques sucios. Si la base de datos sigue desocupada los siguientes tres
segundos, se escriben otros tantos bloques. As poco a poco (mientras la base de datos siga desocupada)
acabar volcando todos los bferes en disco.

[4]La aparicin de un evento de checkpoint (lo que hemos denominado un checkpoint total). Esto
provoca escribir absolutamente todos los bloques sucios. Es el momento de mximo trabajo en disco y,
por lo tanto, el momento ms crtico porque en un
checkpoint se pueden tener que grabar miles de datos. Por ello, Oracle inicialmente pone el parmetro
que controla el tiempo de aparicin de un checkpoint a cero (que es lo mismo que tiempo infinito).

LGWR

Proceso de escritura de logs (LoG WriteR Process). Proceso encargado de escribir en los archivos redo
log. Escribe los datos del bfer de Redo Log (en la SGA) a los archivos Redo Log en disco. Lo hace
cuando:
Se confirma una transaccin. En ese caso LGWR incluye una entrada de
confirmacin en el bfer Redo Log. As quedar marcado que, en ese momento, los
archivos Red Log estn al da. Hasta no grabar esos datos, no se retorna al usuario
la confirmacin de su transaccin.

A la transaccin se le asigna un nmero de cambio de sistema (llamado SCN). Este SCN se


graba en los archivos Red Log. Este nmero es fundamental para recuperar los datos en caso de
desastre.

Si se llena un tercio del buffer. En este caso se graban datos sin confirmar. Solo
se hace por temor a que se llene el bfer y perdamos informacin.
Justo antes de que acte el proceso DBWn. Antes de que el proceso DBW
escriba bferes sucios en disco indica a LGWR que escriba los registros Redo Log
en disco. Cuando confirma la escritura, entonces DBW actuar escribiendo en los
archivos de datos..
Cada tres segundos.

En el buffer redo log se almacena informacin sobre los cambios recientes acaecidos en la base de
datos. Como los datos no se escriben inmediatamente en los archivos de datos, esta informacin es la
vital para recuperar la base de datos en caso de problemas.

Las instrucciones DML estn limitadas por la velocidad de este proceso al guardar los datos. Es decir,
la velocidad en grabar los datos en una base de datos Oracle, viene determinada por la velocidad de
LGWR.

En caso de gran actividad de instrucciones DML entre varias sesiones, LGWR puede realizar
confirmaciones en grupo para minimizar el impacto de la escritura en disco.

CKPT

Proceso encargado de registrar la llegada de un checkpoint, momento en el que se graban bferes de


datos en los archivos de datos. CKPT graba en los archivos de control la posicin de checkpoint y el
SCN correspondiente en los Red Log.

Tambin graba en los archivos de datos (en la cabecera) para actualizarla con la informacin del punto
de control y la informacin sobre el ltimo SCN que se ha grabado.

Adems comunica a DBW la necesidad de grabar los bferes sucios.

SMON

System Monitor. Proceso encargado de monitorizar el sistema. Sus principales labores son:

Recuperar la instancia al iniciar.


Limpiar segmentos temporales que ya no se usan.
Recuperar los datos de las transacciones existentes en los Redo Log que no estn
grabadas en los archivos de datos durante el arranque de la instancia.

SMON puede ser invocado por otros procesos.


PMON

Process Monitor. Se encarga de gestionar el fallo en un proceso de usuario. Sus labores son:

Comprobar el estado de los procesos servidores y distribuidores (dispatchers).


Reiniciar procesos servidores y distribuidores que hayan fallado.
Si falla un proceso de usuario
o Limpia la cach de bferes de datos
o Libera los recursos que se utilizaron para atender a ese proceso de usuario

RECO

Se usa solo en bases de datos distribuidas. Resuelve los fallos ocurridos en transacciones distribuidas.
Cuando detecta fallos en una transaccin que tiene diferentes datos en los distintos servidores, se
encarga de resolver la situacin.

MMON y MMNL

MMON es el proceso monitor de manejabilidad (manageability monitor process), encargado de realizar


tareas relacionadas con el AWR, rea de volcado de estadsticas de los servidores Oracle.

MMNL es el proceso ligero de monitorizacin de manejabilidad (manageability monitor lite process),


encargado de escribir estadsticas desde el histrico de sesiones activas (ASH) en la SGA de Oracle a el
disco.

Ambos son procesos necesarios para que la informacin estadstica sobre la ejecucin de Oracle est al
da.

ARCn.

Procesos de archivado (archiver processes), encargado de escribir los archivos redo log histricos.
Estos archivos son copias de los archivos Red Log. Se usan para recuperar informacin o para devolver
la base de datos a un estado anterior.

Solo funcionan en modo ARCHIVELOG de la base de datos.

La n indica que pueden ser varios procesos (ARC0, ARC1, etc.).

CJQ0 y Jnnn

Es el gestor de colas de trabajo (job queue processes). Los trabajos son tareas programadas por los
usuarios que se pueden ejecutar varias veces.

Cada trabajo se asocia a un proceso Jnnn (por ejemplo J001).

El programador de tareas de Oracle puede invocar a CJQn cuando se necesitan ejecutar trabajos.
Entonces CJQ0 lanza los procesos Jnnn de forma apropiada. Cuando finalizan los trabajos, CJQ0 se
queda en estado de espera, hasta que se le vuelva a necesitar.
FBDA

El FlashBack Data Archiver Process, es el proceso encargado de grabar la informacin del rea de
Flashback. Esta rea se usa para el caso de necesitar que la base de datos regrese a un estado anterior.

[2.5] estructuras de almacenamiento en disco


[2.5.1]introduccin

Una base de datos Oracle necesita los siguientes archivos para grabar la informacin de la misma:

Archivos de datos
Archivos de control
Archivos Red Log

Adems posee (o puede poseer) estos otros archivos para que la ejecucin sea correcta:

Archivos de parmetros
Archivo de contrasea
Archivos de traza y alerta
Archivos histricos (o archivados) Red Log
Archivos de copia de seguridad

[2.5.2]archivos de datos

Son los archivos que almacenan los datos en s de la base de datos. Graban la informacin de las tablas.
Para optimizar su funcionamiento y su gestin, Oracle utiliza una estructura que relaciona la lgica de
la base de datos, con la parte fsica.

Esta lgica interna de Oracle se describe a continuacin.

estructuras lgicas de almacenamiento de Oracle

En realidad estas estructuras forman un esquema de la base de datos que se situaran conceptualmente
entre el esquema interno y el fsico de la base de datos.

Oracle llama a estas estructuras Logical Storage Structures, por lo que en espaol se suele traducir
como estructuras lgicas de almacenamiento.
tablespaces

Los espacios de tabla o tablespaces, son una estructura lgica que, conceptualmente, se sita entre la
lgica de la base de datos y las estructuras fsicas que almacenarn los datos.

En la base de datos, se manejan objetos a nivel lgico (tablas, columnas, filas, vistas, ndices,). La
informacin de esos objetos se tiene que almacenar en archivos de datos. Oracle crea los tablespaces
como un elemento intermedio entre el nivel lgico y el nivel fsico de la base de datos. Relaciona
ambas pticas para optimizar el funcionamiento del sistema.
Por defecto Oracle proporciona los siguientes espacios de tabla:

USERS. Almacn por defecto en el que los diferentes usuarios de la base de datos
almacenan sus objetos.
SYSTEM. Para los objetos del sistema como el diccionario de datos
SYSAUX. Para componentes adicionales de la base de datos como por ejemplo el
repositorio del Enterprise Manager.
Naturalmente podemos crear otros tablespaces y asignarles los archivos de datos que deseemos.

Los tablespaces se dividen en segmentos, estos en extensiones y las extensiones en bloques.

Un tablespace puede abarcar ms de un fichero de datos. Cada fichero, sin embargo, se asigna a
solamente un tablespace.

segmentos

En cada tablespace existen segmentos, que estn relacionados directamente con un objeto de la base de
datos (una tabla, un ndice,). Hay tres tipos de segmentos:

Segmentos de usuario. Almacenan los objetos de base de datoscreados por los


usuarios. Por ejemplo:
o Segmentos de datos. Almacenan los datos de las tablas (incluidas las
particionadas y las tablas en cluster, que son tipos de tablas avanzadas).
o Segmentos de ndice. Almacenan los datos necesarios para la creacin de
ndices.
o Segmentos de tipo LOB. Para almacenar los datos de tipos grandes de
Oracle: CLOB y BLOB.
Segmentos de anulacin (undo). Almacena la informacin necesaria para
revertir cambios realizados en los datos. El uso tpico es la ejecucin de la
instruccin ROLLBACK (aunque hay muchos ms).
Segmentos temporales. Almacenan datos intermedios que Oracle necesita para
completar consultas o instrucciones complejas que relacionan gran cantidad de
datos (CREATE INDEX, SELECT DISTINCT, uniones, intersecciones, GROUP BY,
etc.). Estos segmentos les crea y elimina Oracle automticamente.

El mismo segmento puede estar presente en ms de un archivo de datos (como en la Ilustracin 22


ocurre con el segmento que almacena la tabla 3). Esta idea se usa para segmentos que almacenan datos
de objetos con mucho contenido.

Para explicar, muchas veces se relaciona segmento con tabla. Pero realmente los segmentos almacenan
otros objetos.

Por ejemplo esta instruccin (que crea una tabla no relaciona):

CREATE TABLE obras(titulo VARCHAR2(30));

Solo creara un segmento para almacenar los datos de la tabla.

Sin embargo esta otra:

CREATE TABLE obras(


id_obra NUMBER PRIMARY KEY,
titulo VARCHAR2(30) UNIQUE,
texto CLOB
);

Crear, al menos, estos segmentos:

Un segmento para los datos de la tabla obras.


Otro para el ndice de la clave principal.
Otro para el ndice de la restriccin UNIQUE sobre la columna ttulo.
Otro para los datos CLOB.
Otro, de tipo ndice, para relacionar los datos CLOB con las filas de la tabla.

extensiones

Los segmentos se dividen en extensiones. Las extensiones son divisiones dentro del segmento que
permiten asegurar que el sistema tiene reservado un conjunto de bloques contiguos en el disco. Es decir
las extensiones evitan fragmentar en exceso los discos.

El funcionamiento es el siguiente: cuando hemos llenado un segmento, entonces se aade una


extensin (el tamao de las extensiones se puede calibrar) y eso significa que se amplia el segmento en
el tamao de dicha extensin. Es decir, se reserva ese espacio.

De esa forma los bloques siguientes (hasta llenar la extensin) que se aadan, tendremos la seguridad
que irn contiguos en disco, disminuyendo su fragmentacin.

Como es lgico, una extensin est asociada a slo un archivo.

bloques de datos
Es el elemento de datos ms pequeo distinguible por Oracle. Cada extensin consta de una serie de
bloques. El tamao de bloque se puede configurar por parte del DBA para optimizar el rendimiento.

El tamao del bloque de datos debe cumplir que sea mltiplo del tamao de bloque del disco del
Sistema Operativo. Es decir si en un disco concreto, el Sistema Operativo tiene un tamao de bloque de
16KB, slo podremos asignar tamaos de bloque de 16 KB, 32 KB, 48 KB, 64 KB etc.

En el bloque de datos de Oracle, los datos se organizan en filas. As se asegura que cada fila se
almacena junta en el bloque de datos. Adems en cada bloque se graba una cabecera con informacin
general del bloque, de la tabla a la que pertenece y de las filas que almacena.

El espacio libre del bloque est en el interior, de modo que la cabecera y la informacin de las tablas
crecen hacia el interior del bloque (vase Ilustracin 25).

posibilidades de gestin fsica de los archivos de datos


Oracle puede gestionar los archivos de datos de varias formas:

Como archivos normales del Sistema Operativo. Es el caso ms fcil y


habitual, la gestin de los archivos se delega al sistema operativo. Lo que implica
que se puedan copiar, borrar o examinar como cualquier otro archivo del sistema.
Como particiones RAW. En ese caso todos los archivos de datos se integran en
una estructura que, desde el sistema, parecera un archivo binario normal. La
nica finalidad es ocultar los archivos contenidos; en la prctica no se usa mucho.
Gestionadas mediante el Automatic Storage Management (ASM). Se trata de
un sistema de archivos propietario de Oracle que permite que la gestin de los
archivos se realice desde una capa propia, en lugar de delegarla al Sistema
Operativo.

Con ASM se consigue mayor rapidez y potencia ya que proporciona numerosas opciones de
trabajo.

Su instalacin es sencilla y sus puntos fuertes es el agrupar archivos y no unidades lgicas,


permite ajustar parmetros de balanceo, redundancia o la integracin eficiente en sistemas
distribuidos.

Al ser un formato propio, requiere dar formato a unidades de disco (sea reales o virtuales)
usando este sistema de archivos. ASM se basa en crear grupos de discos los cuales contienen
uno o ms discos ASM. Los grupos de discos se manejan como si fueran uno solo, para
conseguir redundancia y balanceo de carga.

Los archivos de este sistema (archivos ASM) se corresponden con los archivos de datos de
Oracle.
Usando el Clustered File System (OCFS). Usado para instalaciones de servidores
distribuidos en clster (RAC) permite que los archivos se compartan entre varios
servidores, haciendo que, en apariencia, su gestin sea como la de los archivos
normales. Otra opcin, mucho ms utilizada, es ACFS que permite usar el sistema
ASM en modo clster.

[2.5.3]archivos Redo Log

Los Redo Log son dos o ms archivos que sirven para almacenar las instrucciones DML que se van
confirmando en la base de datos. No graban datos, sino la informacin necesaria para que esa
instruccin se lleve a cabo.

Sirven para recuperar los datos en caso de desastre. Por ejemplo, si la base de datos ha confirmado una
transaccin correspondiente al nmero de secuencia de cambio nmero 9550, significar que esa
secuencia estar grabada en los Red Log. Sin embargo, puede que los archivos de datos estn en la
9540. Lo cual significa que hay 10 secuencias en los Redo Log que no se han grabado en los ficheros
de datos. Si ocurre un desastre en este instante y el sistema se cierra, dependemos de los Redo Log para
recuperar esas secuencias.

Los redo log graban las instrucciones de transacciones confirmadas y los datos necesarios para volver a
realizarlas. La informacin en los redo log se graba casi instantneamente, por lo que siempre estn
ms al da que los archivos de datos. Adems, sirven como histrico de los cambios realizados en la
base de datos. Lo que puede permitir retornar a la base de datos a un punto concreto.

Los ficheros Redo Log funcionan de forma circular. Cuando se llena uno, se produce un evento de tipo
log switch. Si ocurre un log switch en el ltimo archivo, se usa el primero, sobrescribiendo la
informacin que tuviera.

El funcionamiento consiste en lo siguiente:

[1]Cuando el usuario realiza instrucciones DML o DDL, el proceso servidor graba en el Bfer Redo
Log en la SGA, la informacin necesaria para que esa instruccin se vuelva a ejecutar, si fuera
necesario.
[2]El proceso LGWR, cuando las instrucciones son definitivas (bien transacciones aceptadas o
instrucciones DDL por ejemplo), copia los datos del bfer a los archivos redo log.

[3]Cuando llenamos el archivo redo log actual, se produce el evento log switch; entonces los siguientes
datos pasan al siguiente archivo redo log. Con ste ocurrir lo mismo y as sucesivamente con cada
archivo del que dispongamos.

[4]En cada cambio de archivo, se genera un nmero de secuencia que va anotando la secuencia de
redo log (lo que es lo mismo, el nmero de eventos log switch que han ocurrido), as podemos tener
ahora el nmero de secuencia 12 indicando que hemos hecho 12 cambios de archivo (o sea, han
ocurrido 12 eventos log switch).

[5]Cuando ya hemos ocupado todos los archivos, al terminar de llenar el ltimo se produce el
consiguiente log switch y como no hay ms archivos disponibles, grabar los siguientes datos en el
primer archivo sobrescribiendo los que ya existieran (y perdiendo esos datos). El nmero de secuencia
seguir incrementndose, no volver a empezar de nuevo.

[6]Todo este proceso sigue continuamente

multiplexacin, grupos de redo log

Los archivos redo log suelen constituir grupos. Esto significa que el primero archivo redo log, en
realidad ser un grupo de archivos. Cada grupo consta de varios archivos redo log clnicos
correspondientes a las mismas secuencias (es decir tendremos varios archivos idnticos con los datos
de una secuencia). La idea es que, si falla uno, tengamos otra copia disponible.

Cuando se graba un dato de tipo redo, se graba secuencialmente en todos los archivos miembros del
grupo de forma multiplexada. Es decir, primero en uno, luego en otro y as hasta terminar el grupo.

Es tarea del administrador determinar la configuracin de los redo log (nmero de grupos, nmero de
archivos, .). As como decidir en qu discos se almacena cada archivo miembro de cada grupo. Lo
ideal, es que los miembros de cada grupo estn en discos distintos para mayor seguridad.

Adems hay que tener en cuenta que la grabacin de la informacin en los redo log debe de ser lo ms
rpida posible; la grabacin en disco (desde el bfer) es crtica, porque durante dicha grabacin la
sesin queda parada hasta terminar el volcado de datos. Por ello los discos donde se almacenen redo
log deben de ser muy rpidos.

Por defecto la base de datos tendr tres grupos, pero con un solo miembro cada uno (es la situacin
mostrada en la Ilustracin 27). Eso significa que no hay multiplexacin y, por lo tanto, hay riesgo alto
de perder un redo log.

[2.5.4]histrico de archivos redo log (archive redo log)

Se explic en el apartado anterior que los archivos redo log tienen un comportamiento circular, es decir
que cuando llegamos al ltimo archivo, si se llena; entonces los siguientes datos pasan al primero,
borrando la secuencia que estuviera grabada en l.
Esto no tiene que ser un problema ya que desde que se vuelve al primer archivo de la secuencia, los
datos pueden estar ya grabados definitivamente en los archivos de datos mediante el proceso DBW.

Pero puede ocurrir que no sea as y esos datos no estuvieran grabados, por lo que en caso de cada del
sistema les perdemos y eso sera una situacin de desastre.

El registro histrico de archivo redo log (tambin llamado archivados redo log) evitan esta situacin.
Para ello la base de datos debe de estar en modo ARCHIVELOG (el modo contrario es el
NOARCHIVELOG que es el habitual), si es as, entonces cada vez que ocurre un evento log switch
(es decir cada vez que hay un cambio de secuencia), el proceso ARCn (la n significa que puede haber
varios: ARC0, ARC1,) graba una copia de la secuencia actual en el histrico.

Por ejemplo supongamos que tenemos tres grupos de archivos redo log y estamos en modo
ARCHIVELOG:

[1]Inicialmente el proceso LGWR graba en la secuencia 1, suponemos que est secuencia se graba en
el grupo 1 de archivos redo log (hay que recordar que un grupo de redo log puede estar formado por
varios archivos clnicos redo log)

[2]Cuando la secuencia 1 se llena, pasamos a la secuencia 2 (se produce un log switch) y entonces el
proceso ARC graba una copia de la secuencia 1 en el directorio de los histricos redo log (cuya ruta se
puede configurar).

[3]Cuando la secuencia 2 se llena, entonces se copia esa secuencia en el histrico y pasaremos a la


secuencia 3

[4]Cuando la secuencia 3 se llena, LGWR empezar a sobreescribir el grupo redo log que tena la
secuencia 1. El proceso ARC grabar una copia de la secuencia 3.

[5]Entonces se empezar a grabar los siguientes redo log en el grupo 1, sobrescribiendo la informacin
anterior. Pero no pasa nada porque tenemos copia de todas las secuencias, incluida la 1.

Evidentemente el problema de esta forma de trabajar es el espacio que necesitamos. Adems obligamos
a Oracle a usar cada vez ms los discos, con ms procesos funcionando que requieren grabacin en
ellos. A cambio aseguramos que no perderemos informacin.

Incluso podemos multiplexar cada archivo del histrico para tener, no ya una copia, sino varias de cada
secuencia, con lo que la seguridad es an mayor.

[2.5.5]archivos de control

Se trata de archivos binarios y de tamao pequeo que contienen la estructura de la base de datos, es
decir metadatos. Este archivo tambin se puede multiplexar para aumentar la seguridad, con lo que
puede haber varios. Lo normal es tener al menos dos, ya que es un recurso crtico.

Los archivos de control contienen:

Nombre de la base de datos


Fecha y hora de la creacin de la base de datos
Informacin sobre checkpoints y redo logs (secuencia actual de redo log, n de
checkpoint,)
Modo de archivado de la base de datos.
Nmero de secuencia del redo log actual.
Metadatos para labores de backup y recuperacin de datos.
Ubicacin de los archivos de datos, redo log e histricos redo log
Informacin sobre los tablespaces actuales

[2.5.6]otros archivos

archivos de parmetros

Contienen los parmetros generales de configuracin de la base de datos. Los parmetros son el
conjunto de una clave y un valor. Por ejemplo el parmetro con clave SGA_MAX_SIZE tendra como
valor el tamao mximo que podremos tener de SGA.

Hay dos tipos de archivos de parmetros:

SPFILE. Se trata de un archivo de parmetros binario. El formato habitual del


archivo de parmetros es este y slo permite su edicin modificando los
parmetros desde Oracle.
PFILE. Archivo de parmetros en forma de texto. La ventaja es que se puede
editar su contenido incluso desde fuera de Oracle (directamente con un editor de
texto).

Lo aconsejable es usar el formato SPFILE pero tener al menos una copia en formato PFILE.

Los parmetros sirven para cambiar y conocer la configuracin de Oracle. Cada parmetro refleja un
aspecto del funcionamiento de Oracle; modificndole, modificaremos el comportamiento de la
instancia de Oracle.

archivos de contraseas

Contienen la lista de contraseas cifradas de los usuarios administradores. Son imprescindibles para
que los usuarios de tipo DBA puedan conectar con la base de datos. En caso de prdida no se podr
validar a los usuarios administradores, por lo que se conservacin es crtica.

archivos de traza

Son archivos de texto que permiten establecer el seguimiento del funcionamiento de la base de datos.
Gracias a ellos podremos saber las acciones llevadas a cabo por muchos procesos importantes de
Oracle (como PMON y SMON por ejemplo) y as detectar problemas o cuellos de botella en el
rendimiento.

El nmero y funcionamiento de cada archivo de traza se puede configurar para realizar el seguimiento
deseada al funcionamiento de la base de datos..
archivo de alerta (alert log)

Es, en cierto modo, un archivo de traza pero que sirve para almacenar informacin sobre el
funcionamiento de Oracle. Es el diario de Oracle, graba todas las cosas importantes acaecidas (cuando
se inici la instancia, cada aparicin de checkpoint, los eventos log switch,).

Es un archivo de texto que se crea cuando la base de datos se lanza por primera vez y continuamente
almacena lo que ocurre en ella.

archivos de copia de seguridad

Imprescindibles para la recuperacin de la base de datos en caso de desastre.

archivos temporales

Son un tipo especial de archivo de datos que sirve para almacenar datos que proceden de operaciones
que mueven tanta informacin que no cabe en la memoria y se necesita cachear en disco. Contienen
datos intermedios necesarios para ejecutar algunas instrucciones. Cuando las instrucciones finalizan, se
van borrando esos datos.

log de operaciones flashback

Oracle tiene la posibilidad de retornar la base de datos a un momento concreto de tiempo. Es un volver
al pasado que permite anular una situacin grave de prdida de datos. Para ello se debe configurar
Oracle con posibilidad de usar un rea de flashback.

El archivo log para flashback contiene informacin necesaria para poder devolver la base de datos a un
estado anterior en el tiempo. Es decir, son fundamentales para que una operacin de tipo flashback
pueda funcionar.

archivos DMP

Se utilizan para realizar operaciones de exportacin e importacin de datos. Contienen informacin


independiente de la plataforma que permite realizar exitosamente la operacin de exportacin e
importacin. La informacin que contienen es binaria.

UNIDAD 3 Instalacin de Oracle Database

[3.1] instalacin de SGBD


[3.1.1]sobre la instalacin de SGBD

Los Sistemas Gestores de Bases de Datos son herramientas software complejas. Por ello su instalacin
no es sencilla. Hay que tener en cuenta consideraciones sobre la red, el uso de recursos, la dedicacin
del hardware concreto en el que instalemos el sistema,
Todo ello hace que el proceso de instalacin sea muy extenso y complejo; aunque ha mejorado
enormemente en estos aos gracias asistentes que facilitan la tarea.

Instalar una base de datos implica conocer muy bien el funcionamiento de las bases de datos y la
arquitectura del SGBD concreto que vamos a instalar. En estos apuntes nos centramos en la instalacin
de Oracle 11g, que es uno de los sistema ms populares a nivel empresarial. Por supuesto necesitamos
conocer su arquitectura para que durante la instalacin preparemos el software y la base de datos de la
forma ms eficiente respecto a nuestras necesidades y capacidades del sistema.

[3.1.2]antes de instalar: seleccin del SGBD

En los manuales de instalacin de bases de datos no se suele hablar del proceso previo, sin embargo, es
enormemente importante. Se le debe dedicar mucho tiempo a esta decisin, porque una vez elegido el
SGBD, es ms difcil cambiar de idea luego, ya que nuestra eleccin requiere inversin y tiempo. Se
comentan los puntos que decidirn nuestras decisiones.

paso 1: seleccin por requisitos

Se trata de analizar qu necesitamos del SGBD. En este sentido algunas cosas a tener en cuenta pueden
ser:

Tamao de la base de datos. Un gran tamao de base de datos requiere utilizar


software muy potente para la gestin de la misma, adems podra plantear el
hecho de separar los datos en distintas unidades de disco o incluso mquinas lo
que podra requerir clsteres o sistemas distribuidos.
Conectividad. Si necesitamos que la base de datos sea accesible desde Internet,
una Intranet o incluso si bastara con un solo equipo de acceso.
Nmero de usuarios. Un nmero grande de usuarios requiere controles
avanzados de seguridad para diferenciar permisos en los usuarios.
Nmero de conexiones simultneas. Suele ser el punto lgido de requisitos, ya
que un gran nmero de conexiones simultneas implica SGBD con grandes
capacidades de trabajo concurrente y pocos sistemas seran capaces de
conseguirlo.
Aprovechamiento de hardware. Puede ser que sea el propio hardware de la
empresa el que predetermine la seleccin al estar limitados por el mismo. Si
estamos atados al hardware, ste se convierte en el requisito fundamental, ya que
deberemos elegir un software que funcione fluidamente con nuestro hardware a
cambio, quizs, de no poder utilizar herramientas modernas.
Poltica de empresa. Por ejemplo si la empresa tiene una poltica de uso de
software libre, o si tiene acuerdos con empresas concretas de software a las que
se compran otros productos.

paso 2: comprobar requerimientos

Una vez seleccionado el SGBD ahora tenemos que asegurarnos de cumplir nosotros los requisitos que
exige. Todos los sistemas indican qu requisitos necesitan en cuanto a:

Sistemas operativos. No todos los SGBD son multiplataforma, lo normal es que


sean compatibles con unas cuantas plataformas: Windows, Linux, Unix,
Paquetes o aplicaciones preinstaladas. A veces se requiere que el sistema
posea algn software previo a la instalacin del SGBD. En el mundo Linux se suele
requerir de paquetes (como por ejemplo el compilador de C, o libreras especiales
de entrada salida,); en Windows es alguna actualizacin (como sus clsicos
Service Pack) o software de terceros que se requiere (como la mquina Java, el
Framework .Net o un servidor web concreto).
Memoria RAM. Es el requisito que ms importa: ms RAM, ms ligero funciona el
sistema. Oracle en su versin 11g aconseja al menos 1 GB de RAM
Procesador. Se suele exigir un modelo y una velocidad mnima en el mismo.
Disco duro. Se exige un espacio mnimo de disco.
Requisitos de red. Se puede exigir que el equipo tenga una funcin concreta
como que sea un servidor de dominio, o que tenga una conectividad particular
(como una direccin IP fija).
Requisitos de configuracin de sistema. A veces se exigen crear usuarios
concretos, modificar parmetros del sistema operativo, etc.
Incompatibilidades. A veces se indican productos con los que existen problemas
de compatibilidad.

[3.2] instalacin de Oracle


[3.2.1]documentacin

Oracle tambin dispone de manuales de libre descarga en la direccin:


http://docs.oracle.com/en/database/ Desgraciadamente toda la documentacin slo se encuentra en
ingls.

[3.2.2]herramientas de administracin de Oracle

OUI. Oracle Universal Installer. Instalador universal de Oracle, herramienta para


instalar software de Oracle.
DBCA, DataBase Computer Assistant. Software que facilita la creacin de bases de
datos Oracle. Requiere que el software de Oracle para gestionar bases de datos
est instalado.
DBUA, DataBase Computer Assistant. Asistente para actualizar bases de datos.
netmgr. Oracle Net Manager. Software para configurar la conectividad de las
aplicaciones y bases de datos.
NetCA, Network Computer Assistant. Se encarga de crear o modificar el Listener
de Oracle, el proceso que encarga de escuchar peticiones y de lanzar el proceso
servidor.
OEM, Oracle Enterprise Manager. Consola que facilita la realizacin e las tareas
tpicas de un DBA de Oracle. Posibilidades:
o Consola de Bases de Datos de Enterprise Manager. Aplicacin web que
permite realizar las tareas de administracin sobre una base de datos.
o Enterprise Manager Grid Control. Permite configurar las bases de de
datos en Grid, tecnologa de Oracle para bases de datos distribuidas.
SQL*Plus. Lnea de comandos que permite ejecutar cdigo SQL.
srvctl. Lnea de comandos para tareas administrativas avanzadas.
RMAN. Software para realizar copias de seguridad y las labores de restauracin de
las mismas.
Pump de datos. Permite transferir datos entre diferentes bases de datos a gran
velocidad.
SQL*Loader. Herramienta para importar datos procedentes de fuentes de datos
externas a Oracle.

[3.2.3]directorios de Oracle. comprender la estructura OFA

El SGBD comercial Oracle slo se puede instalar en sistemas Windows, Linux (y slo en versiones
Red Hat Enterprise y SuSe Enterprise) y Solaris. Normalmente se instala a travs del software
conocido como Oracle Universal Installer (OUI), que al ser un programa Java, es el mismo en todas
las plataformas (salvo por algunos pasos que varan debido a las particulares de cada sistema
operativo).

Como es posible que un sistema posea varios usuarios, e incluso que cada uno realice varias
instalaciones de software Oracle para bases de datos, Oracle ha diseado una recomendacin para
organizar los directorios en los que se instalarn sus productos. Es, por lo tanto, un estndar en las
instalaciones que conviene conocer tanto si instalamos nosotros Oracle, como si son otros los
instaladores; ya que si son tcnicos profesionales seguirn esta recomendacin y nos ser fcil conocer
las rutas del sistema.

La recomendacin de instalacin se llama Oracles Optimal Flexible Architecture (OFA).

OFA impone la estructura de directorios y archivos en el sistema que Oracle debe utilizar en cada
instalacin. Las razones de su uso son:

Seguir unas pautas comunes en los nombres de directorios y archivos en todas las
instalaciones de Oracle, lo cual facilita a todos los administradores encontrar todo
lo necesario en cada instalacin.
Si se realizan mltiples instalaciones de bases de datos, asegurar una forma
coherente de indicar los directorios base de estas instalaciones.
Permitir que varios usuarios puedan lanzar sistemas Oracle en el mismo sistema
sin que ocurra ningn problema.
Facilitar las tareas de administracin, especialmente las de aadir bases de datos,
instalar software y administrar usuarios.

Sus elementos fundamentales son las variables de sistema ORACLE_BASE y ORACLE_HOME,


que son las que tienen asignadas las rutas fundamentales.

Oracle Base

El directorio Oracle Base, es la raz de las instalaciones de Oracle (de todos los productos, de todas las
versiones). En el modelo OFA en Linux deben cumplir la forma:

/pm/h/u

Donde:
p. Es el nombre de un texto estndar que suele ser corto y conciso y que define el
nombre de la unidad de montaje. El ms usado en el mundo Linux/Unix es la letra
u. Otros instaladores usan la palabra ora. Oracle recomienda que la base de datos
se distribuya entre varias unidades de disco (o que al menos estn en un sistema
RAID), por lo que se usara u01 para la primera unidad, u02 para la segunda,
En Windows este parmetro simplemente es la letra de la unidad de disco
m. Es una expresin numrica que va de 01 a 09. En Windows no se usa este
parmetro.
h. Es el nombre de un directorio estndar. Se suele usar el nombre app, ya que es
el nombre estndar para indicar que el directorio contiene una aplicacin.
u. El nombre del usuario propietario de la instalacin (por ejemplo oracle)

La ruta ms habitual es:

/u01/app/oracle

En el caso de Windows la ruta sigue la expresin (si oracle es el nombre del usuario que instala la
aplicacin):

unidad:\app\oracle

y esta ruta debe estar en la raz de cualquier unidad de disco. Por ejemplo
C:\oracle\app

ruta a los archivos de datos

La base de datos en el modelo OFA se almacena en un directorio llamado oradata que se estar dentro
del directorio Oracle Base. Dentro de oradata se utiliza el nombre de instancia de la base de datos. Por
ejemplo (Linux):

/u01/app/oracle/oradata/orcl

La base de datos de nombre orcl est almacenada en el directorio de todas las bases de datos (oradata)
que, a su vez, cuelga del directorio Oracle Base.

Dentro de esa ruta se deberan encontrar estos archivos:

Archivo de control. Con el nombre control.ctl


Archivos redo log. Con el nombre redo01.log, redo02.log,
Archivos de datos. Con el nombre del tablespace que contienen y un nmero
(opcional, pensado para el caso en el que un tablespace se divida entre varios
archivos). Por ejemplo user01.dbf

Oracle Home

Se trata del directorio raz de una instalacin concreta de Oracle (Oracle 11g R2, Oracle 10g, etc.). Su
ruta OFA es:

ORACLE_BASE/product/versin/nombre_instalacin
La versin es la versin del producto que se instala y el nombre de la instalacin es una texto estndar
propuesto por Oracle. Esa propuesta es:

dbhome para instalaciones de servidor de bases de datos


client para instalaciones de software cliente
grid para una implementacin de la estructura en malla de Oracle.

Cuando se instala ms de una vez el mismo producto se aade un nmero a la rura. Por ejemplo, en el
caso de dbhome si hay dos instalaciones una tomara dbhome_1 como raz Oracle Home y la otra
dbhome_2.

Ejemplo de ruta completa Oracle Base en un sistema Linux:

/u01/app/oracle/product/11.2.1/dbhome_1

En Windows:

c:\oracle\app\product\11.2.1\dbhome_1

subdirectorios de administracin

Oracle recomienda que los archivos necesarios para administrar Oracle se encuentren dentro del
directorio admin que, a su vez, est dentro de Oracle Base. Dentro de este directorio colgar otro por
cada instancia de la base de datos y dentro de este ltimo cuelgan todos los directorios con informacin
administrativa. Por ejemplo los archivos de parmetros en una instalacin de Oracle Database en Linux
podran tener esta ruta:

/u01/app/oracle/admin/orcl/pfile

Donde orcl es el nombre de la base de datos y pfile es el nombre del directorio que almacena los
archivos de parmetros de Oracle.

La recomendacin completa de directorios es la siguiente:

subdirectorio uso

arch Histricos redo log (archivados redo log)

adump Archivos de auditoria

create Scripts de creacin de bases de datos

dpdump Volcados de exportacin/importacin de datos (archivos dump)

exp Archivos para exportacin de datos

logbook Archivos de estado e histricos de funcionamiento de la base de datos


subdirectorio uso

pfile Archivos de parmetros

scripts Scripts SQL

Oracle Inventory Directory

Este directorio se comparte con todas las instalaciones de Oracle en el sistema. Sirve para indicar qu
productos hay instalados.

En cuanto se instala el primero producto Oracle, comprueba a ver si existe directorio de inventario; de
no ser as, se crea. Si puede respetar la estructura recomendada OFA, en Linux se instalar en la raz
(por ejemplo /u01/app/oraInventory), de no ser as se instalar en el directorio del usuario que instala
Oracle ($HOME/oracle/oraInventory).

En Windows se coloca siempre en la carpeta de Oracle dentro de la carpeta de aplicaciones de


Windows (por ejemplo en C:\Program files\Oracle\Inventory).

Por otro lado Oracle dispone de un archivo que permite encontrar el inventario, que en Linux suele ser
/etc/oraInst.loc y en Windows es la clave de registro:
HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\inst_loc

Oracle Network Files Directory

Se trata del directorio que contiene los archivos de configuracin de la red, en especial tnsnames.ora y
listener.ora que contienen la configuracin fundamental. Se suele encontrar en la ruta:
ORACLE_HOME/network/admin

resumen de directorios

La siguiente imagen muestra la estructura de directorios ms reseable en una instalacin tpica de


Oracle Database 11g:
[3.3] instalacin en Windows
[3.3.1]prerrequisitos

hardware

Sistema. Oracle en Windows requiere un PC Intel x86, AMD64 o Intel EM64T


Memoria. Al menos 1 GB de RAM y el doble en virtual.
Espacio en disco duro. Al menos 6 GB para la instalacin (algunas instalaciones
requieren menos). Adems necesitamos poder almacenar 500 MB en la carpeta
TEMP del sistema.
Tarjeta grfica. Debe de ser capaz de mostrar 1024 por 768 pxeles como
mnimo y 256 colores.

En Windows, el icono equipo es el que nos permite conocer estas propiedades usando las propiedades
de dicho icono.

software
Sistema Operativo.
o Windows 2003 Server y 2003 Server R2.
o Windows XP Professional.
o Windows Vista, pero no la versin Home Edition.
o Windows Server 2008 y 2012. No la versin Server Core.
Compiladores. Se usan para la gente que crean aplicaciones en Oracle usando
lenguajes como Pro C, Pro COBOL,
o Visual C++.NET 2005 8.0 o Intel 10.1 C
o .Net Express.
Navegador. Para configurar algunos servicios de Oracle. Debe de ser navegador
moderno (Internet Explorer 6 o superior, Firefox 2.0 o superior, Safari 3.1 o
superior, Chrome 3.0 o superior)
Usar direccin IP nica en la mquina en la que se instala Oracle. Es decir
no usar DHCP para direccionar la IP en el servidor de Oracle. No es un requisito
obligatorio, pero es muy recomendable.

[3.3.2]proceso de instalacin

Es aconsejable crear un usuario relacionado con Oracle con permisos administrativos y con l instalar
el software. La razn: ser coherente con las rutas OFA comentadas anteriormente, que de otra forma
harn referencia al usuario con el que instalemos Oracle sea o no relacionado con l.

En Windows, de la configuracin de las variables de entorno (PATH, ORACLE_HOME,) y de la


mayora de detalles de configuracin del sistema se hace cargo el instalador de Oracle, sin que
tengamos que intervenir previamente (a diferencia de la instalacin en Linux).

[1]Descargar los archivos ZIP correspondientes a nuestra instalacin y descomprimirlos en la misma


carpeta. Desde esa carpeta (suele llamarse database) lanzar el instalador (archivo setup.exe).

[2]Indicar correo electrnico al que Oracle enviar informacin sobre problemas crticos y si deseamos
que nos enve informacin de soporte. En una instalacin de prueba no se rellena ninguno de estos
apartados
[3]Indicar si deseamos con el instalador instalar ya la instancia de base de datos. Lo recomendable es
instalar slo el software de la base de datos.
[4]Indicar si deseamos instalar una instancia nica de Oracle o bien instalar instancias mltiples (base
de datos distribuida). Lo lgico, por ahora, es instalar una instancia nica

[5]Elegir los idiomas


[6]Elegir el tipo de instalacin. Enterprise es la opcin si deseamos instalar Oracle con todas sus
posibilidades. Las diferencias entre las distintas ediciones de Oracle estn disponibles en:

https://docs.oracle.com/cd/B28359_01/license.111/b28287/editions.htm

[7]Para elegir componentes concretos de Oracle a instalar, podemos pulsar el botn Seleccionar
Opciones:
[8]Elegir la ubicacin de instalacin. Normalmente el instalador la crear de forma coherente; se
indicarn la base general de Oracle y el Oracle Home del producto que se est instalando en base al
esquema OFA. En cualquier caso se puede cambiar la disposicin segn comprobemos lo que ms nos
interesa.

[9]Si el usuario de instalacin se llama oracle, el directorio Oracle Base ser C:\app\oracle, el Oracle
Home ser algo del tipo:
C:\app\oracle\product\11.2.1\dbhome_1 (suponiendo que sea nuestra primera instalacin de Oracle):
[10]Comprobacin de requisitos. Se comprueba si el hardware y el software cumplen el mnimo de
Oracle. De ser as se comienza la copia de archivos (de otro modo tendremos que arreglar los requisitos
que no cumplamos).
[11]Al final de la copia, normalmente, el cortafuegos de Windows nos avisar de que se est utilizando
un puerto de comunicaciones, debemos dejar pasar dicho puerto para que Oracle funcione. En todo
caso deberemos estar atentos a este hecho porque los puertos que requiere Oracle para trabajar (1521 y
1138 como mnimo) deben de estar abiertos.
[12]Tras la copia, aparece el ltimo cuadro que avisa del fin de la instalacin. Con eso, esta fase est
finalizada.
variables de sistema

Conviene editar una serie de variables de sistema y configurarlas en Windows para su funcionamiento
(por ejemplo desde Administrar Sistema de Windows) son:

ORACLE_BASE. Contendr la ruta de instalacin general de los productos Oracle,


por ejemplo el valor C:\app\oracle
ORACLE_HOME. Ruta al directorio en el que se ha instalado la base de datos, por
ejemplo %ORACLE_BASE%\product\11.2.0\dbhome_1
LD_LIBRARY_PATH. Ruta a las libreras de Oracle, su valor suele ser:
%ORACLE_HOME%/lib
ORACLE_SID. Nombre de la instancia de Oracle (por defecto ORCL). En realidad
con la instalacin, la instancia no est creada. Esta variable se usa tras la
instalacin de la base de datos.
ORACLE_UNQNAME. Nombre nico de la base de datos. Hay instalaciones en las
que varios servidores comparten el nombre de la base de datos, este parmetro
permite diferenciarlos. En todo caso, este parmetro debe de indicarse para que
arranque la utilidad Oracle Enterprise Manager.
PATH. A esta variable de sistema se debe de aadir la ruta a los binarios de
Oracle, es decir: %ORACLE_HOME%\bin

[3.4] instalacin en Linux


[3.4.1]prerrequisitos

hardware
Sistema. Deberemos tener un sistema de tipo PC (AMD o Intel sean de 32 o 64
bits). Para saber bajo qu versin de ordenador est instalado Linux se ejecuta el
comando:

$ uname m
Con ms detalle:

$ uname -a
Memoria. 1GB de RAM (recomendados 2GB). Podemos comprobar la memoria
disponible con el comando:

$ grep MemTotal /proc/meminfo


Adems necesitamos un tamao de rea swap de al menos 1,5 veces el tamao de
la memoria. Lo comprobamos mediante:

$ grep SwapTotal /proc/meminfo


El comando free permite comprobar ambas cosas a la vez.

Espacio en disco. Al menos 5GB para la instalacin. Para comprobar el espacio


libre:

$ df h
Resolucin grfica. Al menos 1024x768 pxeles y 256 colores, es el mnimo que
tiene que producir nuestra tarjeta grfica.

software

sistemas operativos compatibles

Oracle 11g slo es compatible (oficialmente) con estos sistemas (sean de 32 o 64 bits):

Asianux Server 3 (con SP2)


Oracle Linux 4 update 7 Oracle Linux 5 update 2 o versiones superiores.
Red Hat Enterprise Linux. Con los mismos requisitos de versin.
SUSE Linux Enterprise Server. Al menos la versin 10 con SP2 (o la 11 y
superiores)

Podemos averiguar la versin del sistema mediante:

$ cat /proc/version

Adems el Kernel debe de ser al menos el 2.6.9 para las versiones 4 de Oracle Linux y Red Hat
Enterprise. La versin 2.6.18 para Oracle Linux 5, Red Hat 5 y Asinux. SUSE exige la 2.6.21. Se puede
obtener con:
$ uname r

servidor X

Oracle se instala de forma grfica, por lo que el sistema Linux debe de tener activado el servidor X. Si
instalamos desde una conexin ssh habr que activar el servidor x en esa conexin.

configuraciones de red y host

Se requiere que el servidor tenga nombre, no es totalmente imprescindible, pero la mquina en la que
se instala Oracle es un servidor. Eso implica modificar el archivo /etc/hosts para indicar el nombre del
servidor. Por ejemplo:

127.0.0.1 dbserver.salesianos-villamuriel.local
192.168.12.3 db1.salesianos-villamuriel.com

Por la misma razn necesitamos usar direccin IP nica en la mquina en la que se instala Oracle. Es
decir no usar DHCP para direccionar la IP en el servidor de Oracle. Los pasos para realizar esta
operacin son:

Modificar el archivo /etc/sysconfig/network-scripts/ifcfg-eth0 (si nuestra


interfaz de red es la eth0). Y colocar el cdigo de esta forma:

DEVICE=eth0
ONBOOT=yes #Activa la tarjeta de red en el inicio
BOOTPROTO=static #indicamos direccin esttica
IPADDR=192.168.12.3 #IP del servidor
NETMASK=255.255.255.0 #mscara de red
GATEWAY=192.168.12.200 #IP del router
NETWORK=192.168.12.0 #Direccin de red, opcional
BROADCAST=192.168.12.255 #Direccin de difusin, opcional
HWADDR=XX:XX:XX:XX:XX:XX #MAC
TYPE=Ethernet
Modificar el archivo /etc/resolv.conf

search salesianos-villamuriel.local #dominio local


nameserver 192.168.12.2 #nombre servidor DNS
nameserver 8.8.8.8 #nombre servidor DNS

Reiniciar los servicios de red:

# service network start

navegador web

Para configurar algunos servicios de Oracle. Debe de ser navegador moderno (Internet Explorer 6 o
superior, Firefox 2.0 o superior, Safari 3.1 o superior, Chrome 3.0 o superior)
paquetes necesarios

Oracle exige que el sistema tenga instalados un buen nmero de paquetes. Por ejemplo para sistemas
Red Hat Enterprise (incluido CentOS) u Oracle Linux de 32 bits versin 5 se exigen:

binutils versin 2.15.92.0.2


compat-libstdc++-33 versin 3.2.3
elfutils-libelf versin 0.97
elfutils-libelf-devel versin 0.97
gcc versin 3.4.6
gcc-c++ versin 3.4.6
glibc versin 2.41
glibc-common versin 2.3.4
glibc-devel versin 2.3.4
glibc-headers versin 2.3.4
libaio-devel versin 0.3.105
libaio versin 0.3.105
libgcc versin 3.4.6
libstdc++ versin 3.4.6
libstdc++-devel versin 3.4.6
make versin 3.80
numactl versin 0.6.4.i386
pdksh versin 5.2.14
sysstat versin 5.0.5

Para conocer los paquetes exactos a instalar es mejor acudir a la documentacin de Oracle
(https://docs.oracle.com)

La instruccin rpm -q seguida del nombre del paquete nos permite saber si dicho paquete est
instalado (tambin valdran yum list seguida del paquete, si la herramienta yum est instalada). Los
paquetes que falten habr que instalarles.

Tambin hay una serie de paquetes adicionales que se pueden requerir en funcin de nuestro uso
de Oracle. Son los siguientes:

Controladores ODBC:
o unixODBC versin 2.2.12 o superior
o unixODBC-devel versin 2.2.12 o superior
Controladores JDBC/OCI
o Java Development Kit 1.6.0_21 o superior con la extensin para JNDI. En
realidad el propio Oracle incorpora este requisito.
Linux PAM Library

configuraciones en el sistema

El parmetro de Oracle DB_BLOCK_SIZE debe de ser mayor o igual a 4096 para


instalar Oracle Database Vault (salvo que usemos ese componente, no es
necesario)
Hay que comprobar que tenemos suficientes recursos para el usuario oracle. Por
llo tanto copnectamos con dichos usuario y comprobamos con estos comandos que
disponemos de estos recursos:

ulimit Sn # debe mostrar al menos 1024


ulimit Hn # debe mostrar al menos 65536
ulimit Su # debe mostrar al menos 2047
ulimit Hu # debe mostrar al menos 16384
ulimit Ss # debe mostrar al menos 10240
ulimit Hs # debe mostrar al menos 65536

Si los limites no se cumplen, deberemos editar el archivo /etc/security/limits.conf


(necesitaremos al usuario superadministrador del sistema) y aadir estas lneas:

oracle soft nproc 2047


oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
oracle hard stack 65536

Los cambios se producirn al instante


En el Kernel del sistema deberemos comprobar una serie de parmetros
necesarios para que Oracle funciona. La lista de parmetros y sus valores es la
siguiente:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 4294967295
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
Para comprobar si les tenemos bien con al menos ese valor, basta usar el comando

# sysctl a | grep nombreParmetro


Si algn parmetro del kernel no cumple los mnimos, le modificamos o aadimos
en el archivo /etc/sysctl.conf. Despus hay que ejecutar este comando para que
esos cambios tengan lugar al instante en el kernel.

# sysctl -p
Se comprueba de nuevo con sysctl a para asegurar que los cambios han sido
correctos.

automatizacin del cumplimiento de los requisitos software

Los pasos anteriores son extremadamente largos de realizar por la gran cantidad de requisitos a
completar. Adems es bastante habitual que algn paso se nos escape.
Por ello para los sistemas Linux compatibles con Oracle y que, adems, dispongan de la herramienta
yum para instalar paquetes desde repositorios, disponemos de un paquete llamado oracle-validated
que, cuando lo instalemos, se encargar de cumplir la mayora de los requisitos.

Para instalar oracle-validated debemos realizar los siguientes pasos:

[1]Debemos aadir el repositorio de Oracle a nuestra lista de repositorios de la herramienta yum. En el


caso de sistemas Oracle Linux bastarn simplemente con aadir el repositorio como se explica en el
paso 2.

[2]En los sistemas Red Hat Enterprise necesitamos un paso previo: deberemos convertir nuestro
sistema en un sistema compatible con los repositorios de Oracle Linux. Para ello debemos hacer lo
siguiente:1

En sistemas compatibles Red Hat Enterprise 4

# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el4 -O
/usr/share/rhn/RPM-GPG-KEY-oracle

# gpg --quiet --with-fingerprint /usr/share/rhn/RPM-GPG-KEY-oracle


En sistemas compatibles con Red Hat Enterprise Linux 5

# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el5 -O /etc/pki/rpm-gpg/RPM-


GPG-KEY-oracle

# gpg --quiet --with-fingerprint /etc/pki/rpm-gpg/RPM-GPG-KEY-oracle


En sistemas compatibles con Red Hat Enterprise Linux 6

# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-ol6 -O /etc/pki/rpm-gpg/RPM-


GPG-KEY-oracle

[3]Modificar la configuracin de repositorios de Oracle:

En Oracle Linux o Red Hat Enterprise 4:

# cd /etc/yum.repos.d

# mv Oracle-Base.repo Oracle-Base.repo.disabled

# wget http://public-yum.oracle.com/public-yum-el4.repo
En Oracle Linux o Red Hat Enterprise 5:

# cd /etc/yum.repos.d

# wget http://public-yum.oracle.com/public-yum-el5.repo
En Oracle Linux o Red Hat Enterprise 6:
# cd /etc/yum.repos.d

# wget http://public-yum.oracle.com/public-yum-ol6.repo

[4]A continuacin editamos el archivo de configuracin de yum (public-yum-xxx) y cambiamos la lnea


enabled=0 por enabled=1 en los repositorio que deseemos utilizar (normalmente estar activado slo
el ltimo, el ms actualizado que suele ser el ms interesante):

[5]Instalamos el paquete oracle-validated:

# yum install oracle-validated

[6]Actualizamos los paquetes instalados

# yum update

creacin de usuarios y grupos

Para trabajar con Oracle de forma recomendable, necesitamos crear dos grupos en el sistema Linux.

El grupo OSDBA (Administrador de Bases de Datos) que adquirir los privilegios


administrativos de la base de datos (SYSDBA). El nombre que se le da al grupo es
dba. Para crearle:
Un grupo que adquiere los permisos OSOPER (Operador de la Base de Datos) que
adquirir el privilegio SYSOPER. Se le da el nombre de oper.
El grupo oinstall para el Oracle Inventory necesario para la primera instalacin
de productos Oracle. En la primera instalacin, Oracle crea el archivo oraInst.loc
en el directorio de inventario de Oracle y contendr la informacin sobre cul es el
grupo del Oracle Inventory. Si no existe este archivo, entonces deberemos crear
el grupo
Puede haber ms grupos creados para administrar otras cuestiones como por
ejemplo la gestin de ficheros ASM. Pero slo se crean si tenemos la idea de
gestionar as los ficheros.

Las acciones a tomar sern las siguientes (evidentemente si ya hemos hecho algo previamente, no har
falta repetirlo):

[1]Crear el grupo del inventario de Oracle, se llama oinstall:

# groupadd oinstall

[2]Crear el grupo OSDBA (con el parmetro g le podemos asignar un ID concreto), que se debe de
llamar dba:
# groupadd dba

[3]Crear el grupo OSOPER (con el parmetro g le podemos asignar un ID concreto), que se debe de
llamar oper:

# groupadd oper

[4]Opcionalmente, crear el grupo de administracin de sistema ASM (gestor de ficheros propio de


Oracle). Slo si nuestros ficheros usan ASM:

# groupadd asmadmin

[5]Crear el usuario propietario del software de Oracle. Se le llama oracle y debe pertenecer a todos los
grupos anteriores (se le asigna el ID mediante el parmetro
u):

# useradd g oinstall G dba,oper oracle

[6]Asignar contrasea a dicho usuario

# passwd oracle

modificar la seguridad del mdulo SELINUX

Modificar la configuracin del mdulo de seguridad SELINUX para que sea ms permisivo, de otro
modo varias libreras de Oracle no funcionarn porque este mdulo las bloquear.

Bastar con editar en el archivo /etc/selinux/config la lnea:

SELINUX=permissive

crear directorios de Oracle

Siguiendo el modelo OFA comentado anteriormente deberemos crear los directorios necesarios para
instalar Oracle. Suponiendo que nuestro usuario de instalacin es oracle, las acciones para crear el
Oracle Base seran:

# mkdir -p /u01/app/oracle

# chown -R oracle:oinstall /u01

# chmod -R 775 /u0


Tambin en este punto y siguiendo las mismas acciones podemos crear y dar permisos para el
directorio de la base de datos (oradata) que, de otro modo, se crear en $ORACLE_BASE/oradata.

usar el usuario de instalacin

Puesto que ya hemos creado y preparado todo lo referente a la instalacin, tendremos que utilizar el
usuario instalador de Oracle (en todos los ejemplos lo hemos llamado oracle)

variables de sistema

Al menos hay que definir en nuestro archivo script de arranque (normalmente /etc/profile) estas lneas
(usando las rutas anteriores):

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.1/dbhome_1
export ORACLE_SID=nombreBD
export ORACLE_UNQNAME=nombreBD
export ORACLE_HOSTNAME=nombreServidor
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$LD_LIBRARY_PATH
export CLASSPATH=$CLASSPATH:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

[3.4.2]instalacin

Tras descargar los archivos de instalacin y descomprimirlos. Entonces usaremos el usuario creado
para la instalacin (normalmente oracle) y entramos en el directorio con el instalador de Oracle y
lanzamos el Oracle Universal Installer mediante:

$ ./runInstaller

Los pasos son los mismos que en la instalacin en Windows, salvo en aquellos aspectos propios del
sistema Linux (rutas, configuracin del sistema,)

[3.5] crear la base de datos


La base de datos no se tiene por qu crear durante la instalacin. Es posible hacerlo despus, tanto en
Linux como en Windows. De hecho es mejor instalar la base de datos despus.

Normalmente se utiliza el asistente DBCA (Data Base Creator Assistant) que en Windows se encuentra
en Inicio-Programas en el grupo de Oracle en el apartado de Herramientas de Configuracin bajo el
nombre Asistente de Configuracin de Bases de Datos. En Linux es un archivo en la carpeta bin de
la raz de Oracle (el ORACLE_HOME) llamado dbca; para funcionar correctamente se deben
configurar las variables de entorno ya comentadas, ORACLE_HOME y ORACLE_BASE.

En Windows habra que comprobar las variables de sistema en Propiedades del Equipo, en el apartado
de opciones avanzadas. Es importante situar la carpeta bin de Oracle en el Path del sistema tambin en
Windows).
En ambos casos hay que configurar la conexin de red a Oracle. Lo que se conoce como el Listener.
Un listener es un programa residente en memoria (un proceso) que sirve para escuchar lo que llega por
un puerto de red y enviarlo a su destino correspondiente. Sin l, por lo tanto, Oracle no obtendra las
peticiones por red.

Los pasos completos para crear una base de datos en Oracle son:

[1]Lanzar el Asistente de Configuracin de Red (comando netca desde la lnea de comandos).

[2]Elegir Configuracin del Listener y luego Agregar.


[3]Elegir un nombre para l (lo habitual es LISTENER)

[4]Especificar el protocolo por el que se comunica (TCP normalmente)


[5]Elegir el nmero de puerto que utilizar (normalmente el 1521)
[6]Normalmente en este paso, salta el cortafuegos de Windows avisando de que un nuevo programa
intenta utilizar el puerto 1521. En el caso de Linux hay que estar seguros de que tenemos ese puerto
abierto. Lgicamente permitimos el acceso, de otro modo no podramos comunicar con la base de
datos.

[7]Finalmente, salir del asistente (tras decir que no configuramos ms listeners)


[8]El siguiente paso es lanzar el Asistente de Configuracin de Bases de Datos (comando dbca), que
nos permitir configurar totalmente la nueva base de datos.
[9]Paso 1. Avanzar y elegir Crear una base de datos

[10]Paso 2. Avanzar y elegir Personalizar la base de datos, de esa forma no se crearn datos en la
misma y podremos configurar detalladamente las opciones de instalacin. El botn Mostrar Detalles
nos muestra las variables y opciones por defecto para ese tipo de instalacin.
[11]Paso 3. Indicar el nombre de la base de datos (toda nuestra red usar ese nombre) y un
identificador de la base de datos (SID). Normalmente se pone el mismo nombre en ambos apartados.
Este nombre ser por el que nos referiremos en todo momento a la instancia de base de datos, es uno de
los pasos fundamentales por lo tanto.

[12]Paso 4. Asegurar que la casilla que permite configurar el servidor Oracle con Enterprise Manager
est activada. El Enterprise Manager es un administrador visual de las bases de datos Oracle. Lo dems
se suele dejar con sus valores por defecto.
[13]Paso 5. Establecer las contraseas para los usuarios administrativos (en especial para SYS y
SYSTEM). Se puede elegir la misma para todos (vlido solo para sistemas en prueba, por seguridad
conviene crear contraseas distintas para cada usuario). SYS y SYSTEM son los usuarios
fundamentales.
[14]Paso 6. Paso en el que se elige la forma de almacenar los archivos. Se suele elegir un sistema de
archivos normal como sistema de almacenamiento, usar las ubicaciones de la plantilla y se puede pulsar
el botn Variables de ubicacin de archivos para analizar los directorios creados y las variables del
sistema. Las otras son opciones avanzadas de gestin de los archivos, que nos permiten automatizar de
otra forma dicha gestin.
[15]Tras pulsar en Variables de ubicacin de archivos, aparece:
[16]Paso 7. La siguiente permite configurar la recuperacin de Flash. Este modo de recuperacin nos
permite volver hacia atrs en los datos en caso de desastre. Esta utilidad consume mucho disco (Oracle
recomienda al menos el doble del tamao original de la base de datos), pero es enormemente
interesante. Adems desde aqu podemos activar el modo de archivo ARCHIVELOG que nos permite
almacenar los histricos redo log (o archivados redo log) para recuperar la base de datos en caso de
desastre.
[17]En el caso de activar el modo de Archivado, el botn de Editar Parmetros de Modo de
Archivado nos permite elegir el destino y nombre de dichos archivos (incluso podremos elegir varios
destinos para multiplexar los archivos.
[18]Paso 8. En la pantalla siguiente se suelen desactivar todas las casillas, excepto: Enterprise
Manager Repository. El resto le aade funciones que no suelen ser necesarias en una base de datos
estndar. Lo mismo ocurre con los componentes que aparecen al hacer clic en Componentes de datos
estndar, conviene desactivar todos, a no ser que deseemos utilizar alguna de esas funcione, por otro
lado muy interesantes aunque consumen recursos. Todo se podra instalar despus en caso de
necesidad.

[19]La pestaa Archivos de comandos personalizados nos permitira ejecutar un archivo de scripts
para ejecutar instrucciones sobre Oracle durante la instalacin
[20]Paso 9. La pantalla siguiente (cuatro pestaas) permiten modificar los parmetros de inicio de la
base de datos. La mayora son opciones avanzadas, hay que manipularlas sabiendo muy bien lo que se
hace. Las pestaas son:

Memoria RAM. Permite indicar la memoria que dejar nuestro servidor para
almacenar los datos dinmicos configurando lo que se permite que ocupe tanto los
datos globales (SGA) como los propios de cada proceso (PGA). Se puede
configurar al detalle el gasto en memoria, incluso especificar la memoria que
destinamos a cada espacio de almacenamiento (el Buffer de datos, el cach redo,
).
Bloque y conexiones simultneas. El tamao del bloque no se puede modificar
despus, por lo que conviene pensar bien en el tamao apropiado. La razn para
un tamao u otro es la velocidad de la base de datos y el consumo que se hace en
disco. El tamao del bloque debe de ser un mltiplo del tamao de bloque mnimo
del disco segn el Sistema Operativo. El otro valor (normalmente 150), permite
limitar o ampliar el nmero de usuarios simultneos que pueden acceder a la base
de datos, subir ese nmero, aumentara los recursos gastados por Oracle. En el
caso de una base de datos de prueba se puede bajar perfectamente ese valor.
Juegos de caracteres. Permite elegir la forma de codificar el texto. En cualquier
software actual se recomienda el uso de Unicode (urf-8); pero Oracle suele tomar
por defecto la codificacin del Sistema Operativo.
Modo de funcionamiento del proceso servidor. Se trata de la forma en la que
trabajar el proceso servidor. Lo normal es elegir dedicado y as cada proceso
cliente es atendido por un proceso servidor. Cuando tenemos enormes cantidades
de conexiones clientes, en este modo consumiramos todos los recursos y por eso
se configura de modo compartido, en el que un mismo proceso servidor atendera
a varios procesos clientes. Lo usual es usar un modo dedicado salvo que
preveamos que tendremos numerosas conexiones simultneas.
El resto de parmetros del SGBD estn accesibles a travs del botn Todos los
parmetros de inicializacin e incluso se pueden ver los ms avanzados con un
botn que lo indica.
[21]Paso 10. Ahora se puede gestionar la configuracin de los archivos (de control, redo, archivados y
de datos). Incluida la gestin de tablespaces, tamaos mximos de archivos, auto ampliacin del
tamao, Es muy interesante ver todas las posibilidades de esta pantalla (especialmente permite ver la
ubicacin de cada archivo): Todos los apartados que permite son:

Archivo de control. Nombre y ubicacin de los archivos de control (mayor


nmero de ellos, mayor multiplexacin). En la pestaa de Opciones podemos
indicar el mximo nmero de Archivos de Datos, Grupos Redo Log y miembros de
cada Redo Log.
Tablespaces. Podremos crear o suprimir tablespaces (con los botones de la parte
inferior izquierda). Adems dejarles en estado de conectados o desconectados y de
elegir opciones avanzadas sobre su almacenamiento (configuracin de los
segmentos del tablespace).
Archivos de datos. Podemos modificar su nombre y ubicacin as como su
tamao. La ampliacin del archivo cuando est lleno (en definitiva, la gestin de
las extensiones) se puede calibrar desde la pestaa Almacenamiento.

Archivos redo log. Eligiendo Grupos de redo log podemos crear o suprimir
grupos. Dentro de cada grupo podemos establecer los miembros del mismo y su
ubicacin.
[22]Paso 11 y ltimo del dbca. Elegir Crear la base de datos, En todo caso deberamos elegir crear
script de creacin de base de datos y as examinar cmo seran los comandos manuales para crear la
base de datos (muy recomendable hacerlo)

[23]Finalmente se nos informa de la instalacin. Es importante apuntar la pgina del Enterprise


Manager para acceder a ella cuando lo necesitemos. Es ms, lo lgico es guardar la configuracin que
se nos ofrece mediante el botn Guardar HTML.
[24]Una vez iniciada la generacin de la base de datos, merece la pena estar atentos a los mensajes de
Oracle a fin de entender el proceso y dnde se almacena cada elemento.

[25]En la ltima pantalla (si todo ha ido bien), se presentan los datos de la instalacin. Esos datos son
fundamentales, entre ellos est la direccin del archivo de configuracin de Oracle ora.ini y la URL
para entrar en el servidor de aplicaciones Oracle Enterprise Manager que nos permitir administrar la
base de datos en modo grfico.
[3.6] control del listener
Como ya se ha comentado; el proceso que escucha las peticiones de los clientes hacia la base de datos
se conoce como Listener. Es imprescindible para conectar con la base de datos ya que abre el socket.

Para gestionar el listener del servidor se usa el programa lsnrctl, disponible tambin en el directorio
bin del Oracle Home. Sus posibilidades para lanzar o quitar el listener son:

lsnrctl start nombreListener #arranca el Listener

lsnrctl stop nombreListener #para el Listener

lsnrctl status #muestra informacin


Tambin se puede lanzar desde el Enterprise Manager, y como servicio en el caso del entorno
Windows.

[3.7] conectar con la base de datos


[3.7.1]conectar mediante SQL*Plus

lanzar SQL*Plus

La forma clsica de conectar con Oracle, es utilizar la utilidad SQL*Plus, que es un cliente bsico que
permite enviar comandos a Oracle. Para utilizarlo, bastara con ir a la consola de comandos del sistema
y escribir sqlplus:

problemas con el mdulo SELinux

En numerosas instalaciones Linux (por ejemplo en el sistema CentOS), hay problemas al lanzar
SQL*plus, debido a las restricciones del mdulo de seguridad SELinux. Una solucin es dejar en
modo permisivo a SELinux editando el archivo /etc/selinux/config y rescribiendo la lnea siguiente:

SELINUX=permissive

Si no queremos dejarlo en ese estado del todo podemos ejecutar el comando:


# /usr/sbin/enforce 0

Otra opcin permanente y menos peligrosa es ejecutar el comando:

# chcon -t textrel_shlib_t $ORACLE_HOME/lib/*.so

Este comando modifica el contexto de ejecucin de las libreras de Oracle para SELinux de modo que
no se aplique a las libreras de Oracle y as las permite ejecutar.

conexin en modo NOLOG

La forma habitual de conexin con SQL*Plus es con la sintaxis:

# sqlplus /nolog

Entonces entramos en sql*plus sin indicar usuario alguno, de otra forma el programa nos pedira
usuario y contrasea para conectar.

Una vez que hemos conectado con /nolog ahora disponemos del comando CONNECT:

CONNECT usuario/contrasea [@alias] [AS {SYSOPER | SYSDBA} ]

Los usuarios normales no tienen capacidad de manejar la instancia de la base de datos. Slo los que
tienen roles de DBA o privilegios para cortar e iniciar la instancia. A este respecto hay dos privilegios
especiales que permiten a un usuario (que tenga la posibilidad de acceder en modo administrador)
operaciones avanzadas en la base de datos, son:

SYSOPER. Tiene capacidad de arrancar (STARTUP) detener una instancia


(SHUTDOWN), adems de hacer modificaciones a las bases de datos y los
tablespace.
SYSDBA. Adems de lo anterior se le permite crear bases de datos, as como
usuarios con privilegios SYSDBA y SYSOPER.

Ejemplos de conexin:

CONNECT adolfo/natura; --conecta como usuario normal


CONNECT adolfo/natura@asir; --conecta como usuario
-- normal indicando a qu base de datos se conecta
CONNECT adolfo/natura@asir AS SYSOPER;
--dem pero indicando que se conecta con rol de
--SYSOPER
CONNECT / AS SYSDBA

En la ltima, no se indica usuario. Se recoger el usuario del sistema operativo y conectar, siempre
que ese usuario sea miembro del grupo DBA de Oracle (si es el administrador, se toma como usuario
SYS).
El comando para desconectar es DISCONNECT.

[3.7.2]conectar mediante Enterprise Manager, Database Control

lanzar el Database Control

El Enterprise Manager es una utilidad que permite administrar la instancia de Oracle utilizando un
servidor web, en realidad es un programa llamado emctl que se encuentra en el directorio bin de cada
Oracle Home.

La pgina desde la que administramos Oracle se conoce como Database Control y se puede activar o
desactivar desde la lnea de comandos utilizando estas instrucciones:

emctl start dbconsole #arranca el DataBase Control

emctl stop dbconsole #le para

emctl status dbconsole #comprueba el estado actual

Para que el programa funcione, debemos asegurarnos de que el puerto con el que se comunica el
Enterprise Manager est abierto (normalmente el puerto 1158). Esto significa comprobar el cortafuegos
de Windows y Linux. En Linux bastara con los comandos:

# iptables -A INPUT -p tcp --dport 1158 -j ACCEPT

# service iptables restart

Si no hubiramos instalado el Enterprise Manager, podemos usar su asistente de instalacin (slo


funciona en lnea de comandos) emca. Para crear un nuevo repositorio para la instancia de base de
datos se usa:

# emca config dbcontrol db repos create

Se nos preguntarn los datos sobre la instancia y usuarios administradores. Si todo va bien habremos
creado el repositorio de Database Control.

acceso al Database Control

El acceso al entorno de Database Control se hace usando el enlace

https://nombreDeServidor:puerto/em

Normalmente:

https://localhost:1158/em
La direccin ORACLE_HOME/install/portlist.ini contiene los puertos que usa Oracle para el
Enterprise Manager.

Si accedemos a la direccin en el navegador lo normal es que el certificado de la aplicacin no sea


vlido, por lo que los navegadores mostrarn un mensaje de aviso. Deberemos confiar en el certificado
del sitio del Enterprise Manager para acceder al control de la base de datos.

En el caso que falle la carga del Database Control hay que asegurar que disponemos de la variable de
sistema ORACLE_UNQNAME conteniendo el nombre de la instancia (sid). En caso de que no sea as
hay que definirla en las variables del sistema, de manera rpida en Windows sera:

set ORACLE_UNQNAME=nombreBD

Donde nombreBD es el nombre identificativo de la base de datos. Pero lo lgico es aadirla a la lista de
variables del sistema (tanto en Windows como en Linux).

Despus se nos preguntar por el usuario:

Desde este entorno se pueden realizar todas las operaciones de administracin con la base de datos. La
forma de conexin es entrar con SYS (con opcin SYSDBA) y su contrasea. Slo los usuarios con rol
SYSOPER pueden usar el Database Control.
Una vez validado el usuario, entonces podremos gestionar la mayora de aspectos administrativos de
Oracle.

[3.7.3]conexin mediante SQL Developer y otras herramientas grficas

SQL Developer es una utilidad grfica gratuita que permite conectar con Oracle utilizando un entorno
amigable de trabajo y que nos permite tanto ejecutar instrucciones SQL, como PL/SQL como realizar
la mayora de tareas administrativas.

Hay otras herramientas parecidas como Toad de la empresa Quest o DataGrip de JetBrains.

La mayora estn creadas en Java y requieren tener instalado el JDK de Java disponible en:

http://www.oracle.com/technetwork/es/java/javase/downloads/index.html)

En estas herramientas las conexiones con la base de datos se realizan desde un entorno grfico, ms
cmodo que conectar desde la consola de SQL*Plus. La mayora de las herramientas de este tipo estn
pensadas para el desarrollo y no la administracin de Oracle, por lo que no dispondremos de todos los
comandos de administracin, aunque s de la mayora.
1 Informacin completa en http://public-yum.oracle.com

UNIDAD 4 Configuracin de Oracle Database

[4.1] elementos de gestin de servidores de Oracle


En la configuracin y gestin de SistemasOracle Database tenemos diversos elementos a tener en
cuenta:

Instancia de Oracle.
Listener. Proceso encargado de permitir las conexiones.
Interfaz de gestin. Software que nos permite realizar tareas sobre el servidor
Oracle: SQL Developer, SQL*Plus, Oracle Enterprise Database Control,
DataGrip, etc.

[4.1.1]acceso a Database Control

Database Control es parte del Oracle Eterprise Manager, es una consola grfica que permite
gestionar bases de datos Oracle independientes (que no funcionan de forma distribuida).

Normalmente Database Control est disponible en

https://localhost:1158/em

Si no se ha arrancado, el comando de arranque es:

emctl start dbconsole

El comando para detener Database Control es:

emctl stop dbconsole

El comado para ver el estado de Database Control es:

emctl status dbconsole

[4.1.2]acceso mediante SQL*Plus

Desde la lnea de comandos, en el servidor, disponemos del comando sqlplus. Lo normal es conectar en
modo annimo:

# sqlplus /nolog

Pero podemos conectar indicando usuario y contrasea. Posibilidades:

sqlplus usuario. Conecta con Oracle usando el nombre de usuario indicado. Se


pedir por teclado la contrasea del usuario.
sqlplus usuario/contrasea. Conecta usando el usuario y contrasea indicados.
sqlplus / as sysdba. Conecta usando el usuario del Sistema Operativo (que
deber tener rol de administrador en Oracle).

Tambin es posible, tras conectar con Oracle, cambiar de usuario con el comando connect. Este
comando tiene las mismas posibilidades:

connect usuario
connect usuario/contrasea
connect / as sysdba

SQL*Plus admite lanzar scripts, cdigo SQL, al conectar. Ejemplo:

sqlplus hr/hr @inicio.sql

Este comando conecta con el usuario hr (su contrasea tambin es hr) y lanza las instrucciones SQL
contenidas en el archivo inicio.sql.

Si ya estamos dentro de SQL*Plus:

SQL>@inicio.sql

[4.2] manejo de la instancia de la


base de datos
[4.2.1]estados de arranque

Una base de datos Oracle puede estar en uno de estos cuatro estados:

SHUTDOWN. La base de datos est cerrada, ningn archivo ni proceso est en


ejecucin. La instancia de Oracle no est en memoria.
NOMOUNT. La instancia de base de datos est latente en memoria, con los
procesos comunes funcionando. Se abre el archivo de parmetros, se asigna en
memoria el espacio para la SGA, se lanzan los procesos en segundo plano, se
abren los archivos de traza y alerta.
MOUNT. Al estado anterior se aade la lectura de los archivos de control que
permiten determinar cmo se ha de preparar la instancia. Se buscan los archivos
de datos y los Redo Log, comprobando su existencia en las rutas marcadas por el
archivo de control.

En este estado podemos conectar (como administradores) y realizar tareas como:

o Cambio del nombre de los archivos de datos


o Activar el modo ARCHIVELOG
o Recuperacin de la base de datos
o En definitiva, tareas sobre los archivos de la base de datos ya que aun no se
han abierto sus datos.
OPEN. La base de datos est completamente funcional. Para ello se abren los
archivos de datos y los Redo Log y se comprueba la consistencia de los datos.

[4.2.2]inicio de la instancia

Para iniciar la base de datos se usa el comando STARTUP seguido del nombre del estado deseado. Por
ejemplo:
STARTUP MOUNT

Sin indicar estado alguno (escribiendo STARTUP, a secas), se inicia Oracle en modo OPEN.

El comando ALTER DATABASE seguido del estado permite cambiar de estado (solo podremos
cambiar hacia estados superiores). Ejemplo:

ALTER DATABASE OPEN;

modo de sesin restringida

Es un modo especial de trabajo en el que la base de datos est abierta, pero solo se permite el acceso a
usuarios con permiso RESTRICTED (lo poseen los administradores) para hacer tareas especiales de
administracin. Uso:

STARTUP RESTRICTED

Si la instancia ya estaba abierta es:

ALTER SYSTEM ENABLE RESTRICTED SESSION;

Y si lo que queremos es desactivar el modo restringido para pasar a modo normal:

ALTER SYSTEM DISABLE RESTRICTED SESSION;

[4.2.3]parada

Una instancia cuando es arrancada, hasta estar disponible atraviesa todos los estados anteriores.

El comando de apagado de la instancia es SHUTDOWN, su sintaxis:

SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT]

Las opciones son:

NORMAL. Modo en el que no se admiten ms conexiones a la base de datos, pero


las actuales se mantienen. Cuando se cierre la ltima sesin, la base de datos
pasar a estar cerrada (SHUTDOWN), pero, hasta entonces, seguir abierta. Al
cerrar se fuerza un checkpoint y se graban todos los datos del bfer, adems de
cerrarse los archivos.
TRANSACTIONAL. Igual que la anterior, pero ahora se cortan todas las
conexiones que no hayan empezado una transaccin. No se cerrar la base de
datos hasta que finalicen las transacciones iniciadas. Al final, se cierra la base de
datos de la misma forma (es decir, de forma correcta).
IMMEDIATE. No se aceptan nuevas conexiones y se cierran las actuales. Las
transacciones se cortan mediante una instruccin ROLLBACK, cuando se cancele
la ltima, se apaga la instancia de base de datos pero de forma coherente, es decir
con un checkpoint y cerrando y grabando los archivos de datos correctamente (al
igual que en los casos anteriores).
ABORT. Apagado brusco. Todas las conexiones se cortan de golpe, no se cierran
los archivos ni se provoca un checkpoint. No se graba nada en disco. Simula un
apagn repentino.

[4.2.4]borrado de la base de datos

Requiere de estos comandos

[1]Necesitamos cortar la instancia actual:

SHUTDOWN IMMEDIATE;

[2]Iniciar la base de datos en modo MOUNT

STARTUP MOUNT EXCLUSIVE RESTRICT;

[3]Borrar

DROP DATABASE;

Borrar una base de datos requiere de muchsima prudencia, ya que no se puede deshacer y podemos
hacer desparecer cantidades enormes de datos importantes.

Otra opcin (ms fcil) es usar el asistente dbca para eliminar la base de datos. Basta lanzarlO con el
comando dbca y despus elegir la base de datos a borrar y seguir los pasos.

[4.3] parmetros de Oracle


Oracle dispone de una serie (muy extensa) de parmetros que sirven para configurar la base de datos y
la instancia de Oracle. Los parmetros se almacenan en archivos especiales que son ledos por la
instancia de Oracle antes de iniciarse, para as hacerlo con la configuracin que indica el archivo (o
archivos) de parmetros.

El archivo de parmetros puede ser:

De tipo PFILE, acrnimo de Parameters File. Es un archivo de texto plano. Se


puede leer usando cualquier editor de texto.
SPFILE, acrnimo de Server Parameter File. Un archivo binario.

Por defecto Oracle utiliza un archivo binario al arrancar. Es la recomendacin actual en Oracle
Database desde la versin 11g. La razn es que se les considera ms rpidos y la informacin que
contienen es menos accesible.

El problema es que los SPFILE no son editables de forma independiente a Oracle. Por lo que si
cometimos un error en un parmetro y Oracle no arranca, no podremos modificar el parmetro
directamente en el archivo.

[4.3.1]ubicacin del archivo de parmetros


En Oracle 11g el archivo de parmetros SPFile (que es el que se usa por defecto), est en:

Linux/Unix. En ORACLE_HOME/dbs/spfileSID.ora, donde el SID es el


identificador de la base de datos.
Windows. En ORACLE_HOME/database/spfileSID.ora, donde el SID es el
identificador de la base de datos

En el caso de no disponer de SPFile, Oracle puede utilizar un archivo de texto PFILE para almacenar
parmetros. Su ubicacin sera:

Linux/Unix. Est en ORACLE_HOME/dbs/initSID.ora. Por ejemplo:

/u01/app/oracle/11.2.1/db_1/dbs/initbbdd.ora

Windows. Est en ORACLE_HOME\database\initSID.ora

En los archivos de texto PFILE la informacin se almacena de esta forma:

nombreParmetro = valor

Si es un parmetro que puede contener varios valores su sintaxis es:

nombreParmetro = (valor1 [,valor2 [,]])

O bien podemos repetir el parmetro y asignar un valor en cada lnea. Ejemplo:

control_files=/u01/app/oracle/oradata/centora/control01.ctl
control_files=/u02/app/oracle/oradata/centora/control02.ctl
control_files=/aux/back/control03.ctl

El cdigo anterior asigna tres archivos de control a la base de datos.

En los archivo PFILE los comentarios se ponen con el smbolo #.

Los archivos de tipo PFILE permiten su modificacin directa en el archivo. Pero hay que tener un
extremo cuidado al hacerlo ya que un solo error podra provocar que dicho archivo quedara inutilizable
como archivo de parmetros.

Independientemente del tipo de archivo utilizado para almacenar los parmetros, los valores de los
parmetros pueden ser distintos en el archivo respecto al valor que la base de datos utiliza en cada
momento. El contenido de los archivos se ejecuta al iniciar la base de datos, pero luego durante la
ejecucin se pueden modificar.

[4.3.2]gestin de los archivos de parmetros

Como hemos comentado se usa normalmente un archivo binario SPFILE para contener los parmetros.
Pero es lgico disponer de una copia en formato PFILE para el caso en el que el sistema no arranque y
necesitemos modificar directamente el archivo de parmetros.
Por ello Oracle nos permite estas posibilidades con los archivos de parmetros:

CREATE PFILE FROM SPFILE. Crea un archivo PFILE a partir del archivo SPFILE
actual. Coloca el archivo PFILE en su ubicacin por defecto.
CREATE PFILE=ruta FROM SPFILE. Hace lo mismo pero ahora coloca el archivo
PFILE en la ruta indicada.
CREATE PFILE=ruta FROM SPFILE=ruta. Crea el archivo PFILE a partir de un
SPFILE cuya ruta se indica.
CREATE SPFILE FROM PFILE. Crea un archivo SPFILE a partir del archivo PFILE
actualmente en uso. Coloca el archivo SPFILE en su ubicacin por defecto.
CREATE SPFILE=ruta FROM PFILE. Hace lo mismo pero indicando ruta para el
SPFILE resultante.
CREATE SPFILE=ruta FROM PFILE=ruta. Crea el SPFILE en la ruta indicada a
partir de un PFILE, del que tambin se indica su ruta.
CREATE SPFILE FROM MEMORY. Crea el archivo SPFILE a partir de los
parmetros actualmente en memoria.
CREATE SPFILE=ruta FROM MEMORY. Hace lo mismo, pero indicando ruta
para el SPFILE.
CREATE PFILE FROM MEMORY. Crea el archivo PFILE a partir de los parmetros
actualmente en memoria.
CREATE PFILE=ruta FROM MEMORY. Hace lo mismo, pero indicando ruta para
el PFILE.

arranque con un archivo PFILE

Como se ha comentado Oracle Database arranca usando un archivo SPFILE. Pero si necesitamos
arrancar usando un archivo de texto PFILE, podemos arrancar Oracle usando la sintaxis:

STARTUP PFILE=ruta

[4.3.3]cargar parmetros en el arranque de la base de datos

Por defecto Oracle busca los archivos de parmetros por defecto segn el nombre y ruta explicados en
el apartado anterior. Concretamente partiendo de la ruta habitual para los archivos de parmetros
(ORACLE_HOME/dbs o ORACLE_HOME/database) el orden de carga es;

[1]Archivo SPFILE de nombre spfileSID.ora

[2]Archivo SPFILE de nombre spfile.ora

[3]Archivo PFILE de nombre initSID.ora

[4]Archivo PFILE de nombre init.ora

Pero podemos forzar a que se cargue un archivo PFILE que nosotros indiquemos. Para ello basta
arrancar con:

STARTUP PFILE=rutaArchivoPFILE
No podemos arrancar forzando a usar un archivo concreto SPFILE, siempre se usa el SPFILE de la ruta
por efecto (si deseamos otro habr que sustituirle).

[4.3.4]funcionamiento de los parmetros

tipos de parmetros

Derivados. Su valor depende de otros parmetros.


Dependientes del Sistema Operativo. Parmetros cuyos valores dependen del
Sistema Operativo en el que se instale el servidor de bases de datos. Por ejemplo
el tamao de bloque en disco.
Independientes.

parmetros de inicializacin

Estos parmetros determinan como funcionar la instancia de base de datos y sus valores se usan
durante el arranque de la base de datos. Hay dos tipos:

Bsicos. Son unos 30 y contienen lo fundamental en el funcionamiento de la base


de datos.
Avanzados. Son ms de 300. Se usan menos.

[4.3.5]modificacin de parmetros

A la hora de modificar parmetros, tenemos dos posibilidades:

Si el parmetro es esttico, su valor se debe modificar en el fichero de parmetros


(SPFILE o PFILE) y se aplicarn cuando la instancia se reinicie.
Si es dinmico, su valor se puede cambiar en caliente (con la instancia en modo
OPEN) y se aplican al instante. Estos parmetros son de dos tipos:
o A nivel de sesin. Afectan solo a la sesin del usuario. Se modifican con
ALTER SESSION.
o A nivel de sistema. Afectan a toda la base de datos. Se modifican con
ALTER SYSTEM.

Los parmetros de sistema se modifican con:

ALTER SYSTEM SET parmetro=valor


[COMMENTS = comentarios][DEFERRED]
[SCOPE={SPFILE | MEMORY | BOTH }];

SCOPE controla cuando se produce el efecto del parmetro:

SPFILE. Significa que el comando modifica el archivo de parmetros SPFILE y sus


efectos se vern en el siguiente arranque.
MEMORY. El cambio se graba en memoria y se produce inmediatamente, pero
como no toca el archivo SPFILE, en el siguiente reinicio volver a tener el valor
anterior.
BOTH. Hace ambas cosas.
DEFERRED. Hace que el valor asignado funcione en el siguiente reinicio.

Ejemplo:

ALTER SYSTEM SET sessions=200 SPFILE;

En este caso dejamos el lmite de sesiones concurrentes a 200; pero tendr vigor cuando reiniciemos la
base de datos ya que hemos indicado que esta modificacin se grabe en el archivo y no se aplique ahora
mismo.

En el caso de modificar parmetros con ALTER SESSION, no posee las clusulas MEMORY,
BOTH, SPFILE ni DEFERRED, ya que no tienen sentido para modificar los parmetros de una
sesin.

[4.3.6]mostrar valor de los parmetros

Tenemos las siguientes posibilidades:

opcin uso

En SQL*Plus, nos muestra los parmetros referentes a la


SHOW PARAMETER nombre
sesin actual

En SQL*Plus nos ensea los valores de los parmetros


SHOW SPPARAMETER nombre
almacenados en el SPFILE

SELECT * FROM V$PARAMETER


Vista del diccionario de datos con los valores actuales de
WHERE
los parmetros
UPPER(name) LIKE %nombre%

SELECT * FROM V$SPPARAMETER


Vista del diccionario de datos con los valores de los
WHERE
parmetros en el SPFILE
UPPER(name) LIKE %nombre%

SELECT * FROM
V$SYSTEM_PARAMETER Valores de los parmetros que afectan a la instancia actual
WHERE de la base de datos
UPPER(name) LIKE %nombre%

El comando SHOW PARAMETER muestra los parmetros que actan en la sesin actual; SHOW
SPPARAMETER muestra los del archivo SPFILE que sea el actual. La vista V$PARAMETER
contiene los parmetros actuales de la sesin, V$SYSTEM_PARAMETER contiene los parmetros
del sistema y V$SPFILE los del archivo SPFILE se usen o no.

[4.3.7]algunos parmetros

informacin global
parmetro valor

DB_NAME Nombre de la base de datos.

DB_DOMAIN Dominio al que pertenece la base de datos.

Nombre nico de base de datos. Se usa para diferenciar


DB_UNQ_NAME instancias con el mismo nombre de base de datos en sistemas
distribuidos.

Versin de Oracle Database compatible con la instancia de


COMPATIBLE
base de datos

CONTROL_FILES Ruta a los archivos de control (pueden ser varios valores)

DIAGNOSTIC_DEST Ruta, por defecto, inicial a los archivos log y de traza.

Ruta en la que se almacenar el archivo histrico redo log n


LOG_ARCHIVE_DEST_N
n

DB_RECOVERY_FILE_DEST Ruta al directorio de recuperacin de la base de datos

DB_RECOVERY_FILE_DEST_SIZE Tamao del rea Flash de recuperacin

Ruta para los archivos de datos gestionados por Oracle. Por


DB_CREATE_FILE_DEST defecto vale NULL y la ruta ser la habitual (segn el modelo
OFA).

Mximo nmero de archivos de base de datos que pueden ser


DB_FILES
abiertos por Oracle

DB_FLASH_CACHE_FILE Ruta al archivo del rea Flash de recuperacin

DB_FLASH_CACHE_SIZE Tamao del archivo anterior

SESSIONS Mximo nmero de sesiones concurrentes permitidas

Mximo nmero de procesos que puede lanzar la base de


PROCESSES
datos

SHARED_SERVERS Nmero de procesos servidores a crear al iniciar la instancia.

Contiene el nmero de bloques mximos que se escriben en


LOG_CHECKPOINT_INTERVAL
los redo log antes de que se produzca un checkpoint
parmetro valor

Intervalo en segundos mximo que se deja sin que se


LOG_CHECKPOINT_TIMEOUT
produzca un checkpoint.

LOG_CHECKPOINT_TO_ALERT Indica si los checkpoints se graban en el archivo de alertas

Tamao mximo en bloques del sistema operativo de los


MAX_DUMP_FILE_SIZE
archivos de traza

BACKGROUND_DUMP_DEST Destino del archivo de alertas (alert log) y de traza

Destino de los archivos de traza sobre los procesos de


USER_DUMP_DEST
usuario

Permite grabar en archivos de trazado la actividad de los


LOG_ARCHIVE_TRACE.
histricos redo log.

SGA_MAX_SIZE Tamao mximo de la SGA

Con valor distinto de cero indica que el tamao de la SGA se


SGA_TARGET
gestionar automticamente si es cero la gestin es manual

SHARED_POOL_SIZE Tamao del rea compartida de la SGA

LARGE_POOL_SIZE Tamao del Large Pool

JAVA_POOL_SIZE tamao del pool de Java

DB_CACHE_SIZE Tamao de la cach de bferes de datos

LOG_BUFFER Tamao del bfer Redo Log.

DB_BLOCK_SIZE Tamao del bloque de Oracle (de 2 a 32 K)

Tamao del bfer de retencin de bloques de datos del


DB_KEEP_CACHE_SIZE
esquema en memoria

DB_RECYCLE_CACHE_SIZE Tamao de la papelera de Oracle

STREAMS_POOL_SIZE Tamao del bfer para Streams


Puede vale manual o auto. Si elegimos manual podremos
WORKAREA_SIZE_POLICY modificar los siguientes parmetros de uso de la PGA:
parmetro valor

SORT_AREA_SIZE

HASH_AREA_SIZE

BITMAP_MERGE_AREA_SIZE

CREATE_BITMAP_AREA_SIZE

OPEN_CURSORS Nmero mximo de cursores

Indica si Oracle busca un archivo de contraseas. Puede ser:


shared (compartido por varias bases de datos), exclusive
REMOTE_LOGIN_PASSWORDFILE
(solo se usa en una) o none (no se usa archivo de
contraseas)

Lenguaje de la instancia de base de datos. Depende del


NLS_LANGUAGE Sistema Operativo (de la variable de sistema NLS_LANG).
Solo se puede modificar para la sesin.

NLS_DATE_FORMAT Formato de fecha

NLS_NUMERIC_CHARACTERS Formato nacional de nmeros

NLS_CURRENCY Formato de moneda

Ms informacin en:

https://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams.htm

[4.4] diccionario de datos en Oracle


En el caso de Oracle, no utiliza el esquema estndar INFORMATION_SCHEMA para consultar el
diccionario de datos, en su lugar usa una serie de vistas que comienzan con estos trminos:

USER_ Las vistas que comienzan por esta palabra muestran objetos que
pertenecen al usuario/a que hace la consulta
ALL_ Muestra objetos a los que el usuario tiene acceso (sean o no de su
propiedad).
DBA_ Muestra todos los objetos de la base de datos

As USER_TABLES es la vista que muestra todas las tablas del usuario actual. Otras vistas son
(disponibles con el prefijo USER_, DBA_ o ALL_):
Vistas estticas a usar con el prefijo USER_ ALL_ o
Uso
USER_

Muestra todas las tablas accesibles desde nuestro


TABLES
usuario.

COLUMNS Muestra las columnas de las tablas.

CONSTRAINTS Restricciones

COLS_CONSTRAINTS Restricciones indicando las columnas implicadas

VIEWS Vistas

TRIGGERS Lanzadores de cdigo

SEQUENCES Secuencias

SYNONYMS Sinnimos

TAB_COLUMNS Columnas de las tablas

TYPES Tipos definidos en la base de datos

Informacin sobre los datos de tipo VARRAY


VARRAYS
definidos en la base de datos

OBJECTS Objetos de esquema

CATALOG Lista tablas, vistas, sinnimos y secuencias

Lista las dependencias de los procedimientos,


DEPENDENCIES
funciones y triggers

TABLESPACES Tablespaces

SEGMENTS Segmentos

Informacin sobre las extensiones libres en cada


FREE_SPACE
tablespace

EXTENTS Extensiones

INDEXES ndices
Vistas estticas a usar con el prefijo USER_ ALL_ o
Uso
USER_

INDEXTYPES Tipos de ndices

SYS_PRIVS Lista de privilegios de usuario

TAB_PRIVS Privilegios de los objetos

ROLES_SYS_PRIVS Lista de roles y privilegios

AUDIT_SESSIONS Auditora de sesiones

FLASHBACK_ARCHIVE Archivos del repositorio Flashback

Tablas marcadas para ser usadas en modo


FLASHBACK_ARCHIVE_TABLES
Flashback

FLASHBACK_ARCHIVE_TS Tablespaces almacenados en modo Flashback

UNUSED_COL_TABS Columnas que estn sin uso en la base de datos

Estadsticas de usuario sobre el uso de los objetos


USTATS
por parte de los usuarios

Las siguientes vistas estticas slo estn disponibles para los usuarios de tipo DBA:

Vista esttica Uso

DICTIONARY Lista de las vistas del diccionario de datos

DBA_USERS Usuarios de la base de datos

DBA_ROLES Roles de la base de datos

DBA_PROFILES Perfiles de usuario

DBA_TS_QUOTAS Cuotas de los usuarios

DBA_DIRECTORIES Objetos de directorio

DBA_DATAFILES Archivos de datos y pertenencia a los Tablespaces

DBA_TEMP_FILES Archivos de los tablespaces temporales


Vista esttica Uso

DBA_TABLESPACE_GROUPS Informacin sobre grupos de tablespaces

DBA_TEMP_FREE_SPACE Total de espacio libre en los tablespaces temporales

DBA_ROLLBACK_SEGS Informacin sobre los segmentos de tipo Rollback

DBA_UNDO_EXTENTS Extensiones de los tablespaces de tipo deshacer

Informacin histrica mediante instantneas (snapshots) del uso


DBA_HIST_UNDOSTAT
del espacio de tipo deshacer

DBA_PART_TABLES Informacin sobre las tablas particionadas

DBA_RECYCLE_BIN Informacin sobre las papeleras del sistema

DBA_THRESHOLD Umbrales de alerta definidos

DBA_OUTSTANDING_ALERTS Listado de alertas excepcionales en la base de datos

DBA_ALERT_HISTORY Historial de alertas ya borradas

Sesiones que estn bloqueando objetos por cuyo uso otras sesiones
DBA_BLOCKERS
estn en estado de espera

DBA_WAITERS Sesiones en estado de espera por un objeto bloqueado

DBA_DDL_LOCKS Bloqueos DDL

DBA_DML_LOCKS Bloqueos DML

DBA_LOCKS Todos los bloqueos

DBA_ERRORS Errores almacenados en la base de datos

DBA_AUDIT_POLICIES Polticas de auditora

DBA_OBJ_AUDIT_OPT Opciones de auditoria de objetos

DBA_IND_COLUMNS Columnas de los ndices

DBA_IND_STATS Estadsticas sobre los ndices en uso

DBA_RULES Reglas de la base de datos


Vista esttica Uso

DBA_SERVICES Servicios de la base de datos

Hay otras vistas que se generan dinmicamente, es decir contienen informacin que va cambiando
durante la ejecucin de la base de datos. Se las distingue porque comienzan con el texto V$:

Vistas dinmicas Uso

V$INSTANCE Muestra el estado de la instancia de la base de datos

Lista de los parmetros y sus valores actualmente en


V$PARAMETER
funcionamiento

V$system_parameter Parmetros del sistema

Muestra el valor de los parmetros en el archivo SPFILE


V$SPPARAMETER
de parmetros actual

V$DATABASE Informacin sobre la base de datos activa

V$SESSION Sesiones activas

V$PROCESS Procesos activos

V$SESS_IO Contiene estadsticas de entrada/salida por cada usuario

Estado de las operaciones que tardan ms de seis


V$SESSION_LONGOPS
segundos en ejecutarse

V$SYSSTAT Estadsticas de la sesin

Informacin sobre el uso actual y mximo disponible de


V$RESOURCE_LIMIT
cada recurso

Estadsticas sobre el rea compartida de SQL (en el


V$SQLAREA
Shared Pool de la SGA)

V$SGA Estadsticas sobre la SGA

V$SGAINFO Tamao de los componentes de la SGA

V$SGASTAT Informacin sobre el uso de los componentes de la SGA


Vistas dinmicas Uso

V$PGASTAT Uso de la PGA

Tamaos de los componente de la SGA e informacin de


V$SGA_DYNAMIC_COMPONENTS
la ltima operacin realizada sobre ellos

Informacin sobre la cantidad de memoria disponible


V$SGA_DYNAMIC_FREE_MEMORY
para la SGA

V$SGA_TARGET_ADVICE Estadsticas y avisos sobre el uso de la SGA

Informacin sobre el uso del rea para instrucciones SQL


V$SQL_WORKAREA
de la PGA

Informacin sobre el uso del rea para instrucciones SQL


V$SQL_WORKAREA_ACTIVE
de la PGA activa actual

V$CONTROLFILE Informacin sobre los archivos de control

Informacin sobre las secciones del registro de archivo


V$CONTROLFILE_RECORD_SECTION
de control

V$LOG Informacin sobre los archivo Redo Log

V$LOGFILE Informacin sobre los grupos y miembros Redo Log

V$ARCHIVED_LOG Informacin sobre los histricos (o archivados) redo log

Informacin sobre todos los destinos asignados al


V$ARCHIVE_DEST
histrico de Redo Log

Informacin sobre los procesos relacionados con el


V$ARCHIVE_PROCESSES
histrico de redo Log

Informacin histrica sobre los redo Log, secuencias,


V$LOG_HISTORY
secuencias archivadas,

V$TABLESPACE Informacin sobre los Tablespaces

V$ENCRYPTED _TABLESPACE Informacin sobre los Tablespaces encriptados

V$DATAFILE Informacin sobre los archivos de datos

V$DATAFILE_HEADER Cabecera de los archivos de datos


Vistas dinmicas Uso

V$TEMPFILE Informacin sobre los archivos temporales de datos

V$TEMPSEG_USAGE Uso de los segmentos temporales por cada usuario

Estadsticas sobre el uso de espacio para operaciones de


V$UNDOSTAT
deshacer

Informacin sobre el comportamiento de los segmentos


V$ROLLSTAT
de tipo deshacer (undo)

V$TRANSACTION Informacin sobre los segmentos de tipo deshacer

V$DIAG_INFO Informacin sobre archivos de traza

V$ALERT_TYPES Informacin sobre grupos y tipos de alertas

V$METRICNAME Informacin sobre las mtricas del sistema

V$METRIC Valores del sistema actuales para las mtricas

V$METRIC_HISTORY Informacin histrica sobre las mtricas definidas

V$LOCK Informacin sobre bloqueos del sistema

V$SESSION_WAIT Indica el ltimo estado de espera de la sesin actual

Lista de los 10 ltimos eventos de espera por cada sesin


V$SESSION_WAIT_HISTORY
activa

[4.5] archivos de traza y alerta


En Oracle cada proceso en segundo plano puede tener asociado un archivo de traza que ir
monitorizando lo que le ocurre, y esto nos permitir diagnosticar cada fallo.

[4.5.1]archivo de alerta (alert log)

Registra de forma cronolgica los errores ocurridos en la base de datos. Entre los datos que registra,
estn:

Errores internos: bloqueos de la instancia de Oracle, datos corruptos,


Operaciones de administracin de la base de datos (STARTUP, SHUTDOWN,
CREATE, ALTER,..)
Modificaciones en los parmetros principales
[4.5.2]configuracin de los parmetros relacionados

Los siguientes parmetros nos permiten tomar decisiones sobre el funcionamiento de estos archivos o
consultar su valor:

parmetro valor

Contiene la ruta del repositorio de diagnstico automtico de Oracle


DIAGNOSTIC_DEST que es donde, por defecto, se almacenan los archivos de traza y el
log de alertas

Tamao en bloques del sistema operativo mximo de los archivos


MAX_DUMP_FILE_SIZE
log y de traza. Por defecto es unlimited (sin lmite)

BACKGROUND_DUMP_DEST Destino del log de alertas y de los archivos de trazado

Ruta a los archivos de traza que guardan informacin sobre los


USER_DUMP_DEST
procesos de usuario

[4.5.3] vistas relacionadas en el diccionario de datos

vista contenido

V$DIAG_INFO Informacin sobre los archivos de traza

V$DIAG_CRITICAL_ERROR Lista de errores crticos designados por Oracle

DBA_ALERT_HISTORY Historial de alertas

DBA_OUTSTANDING_ALERTS Lista de alertas destacadas

V$ALERT_TYPES Grupos y tipos de alertas

En especial la primera vista es la que nos permite saber los archivos de traza en uso y la ubicacin en la
que se guardan, luego simplemente bastar con examinarles para monitorizar el estado de la base de
datos.

Las consultas ms habituales son:

Ruta al archivo de alerta (en formato XML)


SELECT * FROM V$DIAG_INFO WHERE name LIKE %Alert%;
Ruta al archivo de traza de alerta

SELECT * FROM V$DIAG_INFO WHERE name= Diag Trace;


UNIDAD 5 Administracin de Usuarios en Oracle Database
[5.1] introduccin
Todo acceso a una base de datos requiere conectar mediante un usuario y contrasea. Dicho usuario
dar derecho a utilizar ciertos objetos de la base de datos, pero tendr restringido (salvo que se trate de
un superadministrador) el uso de otros.

A los usuarios se les asigna una serie de privilegios que son los que dan permiso de uso a ciertos
objetos. Estos privilegios suelen agruparse en lo que se conoce como roles, que permiten estructurar
mejor los permisos que se conceden a los usuarios. El perfil del usuario ser el conjunto de permisos y
restricciones que se aplican a dicho usuario.

Por ello cuando un usuario conecta debe probar que es quien dice ser (normalmente mediante una
contrasea), es decir se autentifica. Por otro lado esta autentificacin dar lugar a unos privilegios
(unos derechos) y unas restricciones

Todo lo que se explica en esta unidad se refiere a la gestin de usuarios en la base de datos Oracle 11g.

[5.2] cuentas y permisos administrativos


[5.2.1]cuentas administrativas

Durante la instalacin de Oracle se instalan dos cuentas administrativas y otras dos con permisos
especiales para tareas de optimizacin y monitorizacin de la base de datos:

SYS. Inicialmente posee la contrasea CHANGE_ON_INSTALL que, lgicamente,


hay que cambiar inmediatamente en la instalacin. SYS toma rol de DBA (es decir,
de superadministrador) y es en su esquema donde se crea el diccionario de datos;
por lo que no conviene de ninguna manera crear otro tipo de elementos en su
esquema; es decir, el usuario SYS no debe crear tablas, ni vistas no ningn otro
objeto de la base de datos.
SYSTEM. Posee tambin el rol DBA y se crea durante la instalacin. Como antes,
la contrasea MANAGER que tiene por defecto se debera cambiar en la
instalacin. En su esquema se suelen crear tablas y vistas administrativas (pero no
se deberan crear otro tipo de tablas).
SYSMAN. Usado para realizar tareas administrativas con la aplicacin Database
Control del Enterprise Manager.
DBSMNP. Usuario que tiene permisos para monitorizar Enterprise Manager.

[5.2.2]privilegios administrativos

Oracle posee dos privilegios de sistema asociados a tareas administrativas, son:

SYSDBA. Con capacidad de parar e iniciar (instrucciones SHUTDOWN y


STARTUP) la instancia de base de datos; modificar la base de datos (ALTER
DATABASE), crear y borrar bases de datos (CREATE y DROP DATABASE), Crear
el archivo de parmetros (CREATE SPFILE), cambiar el modo de archivado de la
base de datos, recuperar la base de datos y adems incluye el privilegio de
sistema RESTRICTED SESSION. En la prctica sus capacidades son las asociadas
al usuario SYS.
SYSOPER. Permite lo mismo que el anterior salvo: crear y borrar la base de datos
y recuperar en todas las formas la base de datos (hay modos de recuperacin que
requieren el privilegio anterior).

La vista V$PWFILE_USERS nos permite examinar a los usuarios administrativos.

[5.3] propiedades de los usuarios de Oracle


A los usuarios de Oracle se les puede asignar la configuracin referida a:

Nombre de usuario. No puede repetirse y como mximo debe tener 30


caracteres que slo podrn contener letras del alfabeto ingls, nmeros, el signo
dlar y el signo de guin bajo (_). Adems el nombre no puede comenzar con un
nmero.
Configuracin fsica. Se refiere al espacio asociado al usuario para almacenar
sus datos (lo que Oracle llama tablespace) y la cuota (lmite de almacenamiento)
que se le asigna a dicho usuario y mediante la que se establece el espacio mximo
que el usuario puede gastar en el tablespace.
Perfil asociado. El perfil del usuario indica los recursos y configuracin que
tomar el usuario al sistema
Privilegios y roles. Permiten especificar los permisos que posee el usuario.
Estado de la cuenta de usuario:
o Abierta. El usuario puede conectar y realizar sus acciones habituales
o Bloqueada. El usuario no podr conectar mientras siga en estado
bloqueado. El bloqueo lo realiza el DBA:
o ALTER USER usuario ACCOUNT LOCK
o Expirada. La cuenta agot el tiempo mximo asignado a ella. Para salir de
este estado, el usuario/a debe resetear su contrasea de usuario.
o Expirada y bloqueada.
o Expirada en periodo de gracia. Est en los ltimos momentos de uso
antes de pasar a estado de expirada

[5.4] autentificacin
La autentificacin define la forma en la que el usuario verifica quin es. Hay mtodos de
autentificacin ms seguros que otros. Asegurar la autentificacin implicara asegurar el medio la
comunicacin entre usuario y base de datos con protocolos de cifrado. Por otro lado hay que proteger
especialmente a los usuarios administradores.

[5.4.1]autentificacin por el sistema operativo

Se permite el uso slo en usuarios con privilegios administrativos. En el sistema operativo en el que se
instale Oracle se crean dos grupos de usuarios relacionados con los dos privilegios de sistema SYDBA
y SYSOPER. En Windows se llaman ORA_DBA y ORA_OPER respectivamente, en Linux
normalmente son dba y oper.
Los usuarios de esos grupos conectaran mediante CONNECT / AS SYSDBA o CONNECT / AS
SYSOPER.

Otra posibilidad es conectar con:

CONNECT /@servicioRed AS SYSDBA

En este caso usamos los privilegios del sistema operativo para conectar con una base de datos remota
cuyo nombre de servicio de red se indique. Esta forma slo vale para mquinas dentro de un dominio
Windows.

[5.4.2]autentificacin por archivo de contraseas

Se usa tambin para usuarios administrativos, especialmente cuando no se confa la autentificacin


vista en el apartado anterior.

Para usar esta forma de autentificacin los usuarios de tipo SYSDBA o SYSOPER indican su nombre
de usuario y contrasea al conectar (opcionalmente indican el host y/o nombre de servicio al que se
desean conectar) esos datos se contrastarn con los del archivo de contraseas utilizado.

Esta forma (y la anterior) permite conectar la base de datos aunque no est montada todava la base de
datos.

La utilidad ORAPWD permite crear, si no existe, el archivo de contraseas:

ORAPWD FILE=ruta [ENTRIES=n [FORCE=y|n[IGNORECASE=y|n]]]

Funcionamiento:

FILE. Permite indicar el nombre del archivo de contraseas


ENTRIES. Indica el mximo nmero de contraseas que admitir el archivo
FORCE. En caso de darle el valor y (de yes, s) sobrescribe las contraseas cuando
asignemos una nueva a un usuario administrativo
IGNORECASE. No tiene en cuenta maysculas ni minsculas en las contraseas.

Por otra lado el parmetro de sistema REMOTE_LOGIN_PASSWORDFILE (modificable con el


comando ALTER SYSTEM SET) permite indicar la forma en la que funciona el archivo de
contraseas. Valores posibles:

NONE. No permite usar el archivo de contraseas, las conexiones de usuarios con


privilegios administrativos tendrn que usar otros mtodos.
EXCLUSIVE. El archivo de contraseas se usa slo en la instancia actual.
SHARED: Se comparte el archivo de contraseas entre varias instancias de tipo
Real Application Cluster de Oracle (para bases de datos distribuidas). En este
caso no se pueden cambiar las contraseas de los usuarios administrativos.

[5.4.3]autentificacin por contrasea en el diccionario de datos


Es la forma habitual de autentificarse de los usuarios normales (los que no son administradores). En
este caso los usuarios son autentificados mediante una contrasea que se contrastar en el diccionario
de datos, que es donde se almacenan estas contraseas.

Est configuracin requiere la base de datos montada y abierta (al tener que usar el diccionario de
datos).

La contrasea se pasa encriptada desde el ordenador cliente al servidor mediante el algoritmo AES.

[5.4.4]autentificacin externa

Oracle delega la autentificacin a un servicio externo que se asociar a Oracle. Ejemplos de servicios
externos son Kerberos o RADIUS, este ltimo slo disponible en Windows. Requiere el uso de las
mejoras de seguridad avanzada de Oracle.

[5.4.5]autentificacin global

Se trata de utilizar un servicio LDAP para realizar la autentificacin. Oracle dispone de un servicio
LDAP global integrado en Oracle Applications (plataforma de Oracle para le creacin de
aplicaciones) que se llama Oracle Internet Directory.

Si los usuarios slo estn dados de alta en el directorio externo, usarn todos la misma cuenta de
Oracle; para independizarles se requiere darles de alta en ambos servicios (Oracle y el Oracle Internet
Directory).

[5.5] control de usuarios en Oracle


[5.5.1]creacin de usuarios en Oracle

La sentencia de creacin de usuarios (que es compatible con SQL estndar) es:

CREATE USER nombre IDENTIFIED BY contrasea [opciones]

El formato completo de la instruccin con todas sus clusulas es:

CREATE USER nombre {IDENTIFIED BY contrasea |


EXTERNALLY |
GLOBALLY AS nombreGlobal}
[DEFAULT TABLESPACE tableSpacePorDefecto]
[TEMPORARY TABLESPACE tableSpacetTemporal]
[QUOTA {cantidad [K|M] | UNLIMITED} ON tablespace
[QUOTA {cantidad [K|M] | UNLIMITED} ON tablespace []]
]
[PASSWORD EXPIRE]
[ACCOUNT {UNLOCK|LOCK}];
[PROFILE {perfil | DEFAULT}]

Slo la primera lnea es obligatoria, el resto posee opciones por defecto que se aplican si no se
especifica cada apartado (no hace falta especificar todos, slo las lneas que nos interesen).
Ejemplo:

CREATE USER jsanchez IDENTIFIED BY Caracola


DEFAULT TABLESPACE Usuarios
QUOTA 15M ON Usuarios //Se dan 15MBytes de espacio en el tablespace
ACCOUNT LOCK; //La cuenta estar bloqueada

La contrasea, si no se usan comillas dobles, no puede tener ni espacios en blanco ni caracteres


nacionales como la ee. En caso de querer usar estos smbolos se usan comillas dobles, lo que permitir
establecer contraseas ms complejas.

[5.5.2]modificacin de usuarios

Cada parmetro indicado anteriormente se puede modificar mediante la instruccin ALTER USER que
se utiliza igual que CREATE USER. Ejemplo:

ALTER USER jsanchez QUOTA UNLIMITED ON usuarios

[5.5.3]borrado de usuarios

Se realiza mediante:

DROP USER usuario [CASCADE]

La opcin CASCADE elimina los objetos del esquema del usuario antes de eliminar al propio usuario.
Es obligatorio si el esquema contiene objetos.

[5.5.4]consultar usuarios

La vista administrativa DBA_USERS muestra la lista y configuracin de todos los usuarios del
sistema. Para observar la estructura de la vista, siempre es conveniente usar DESCRIBE DBA_USERS
con el fin de consultar las columnas que nos interesen ms

[5.6] control de privilegios en Oracle


Los privilegios son permisos que damos a los usuarios para que puedan realizar ciertas operaciones con
la base de datos. En Oracle hay ms de cien posibles privilegios. Se dividen en:

Privilegios de sistema. Son permisos para modificar el funcionamiento de la


base de datos. Son cambios, en definitiva, que afectan a todos los usuarios y
usuarias.
Privilegios de objeto. Son permisos que se aplican a un objeto concreto de la
base de datos.

[5.6.1]privilegios de sistema

Se comentan algunos de los privilegios de sistema ms importantes


Privilegio Significado

CREATE SESSION Permite al usuario conectar con la base de datos


Permite al usuario establecer sesin con la base de datos en caso de que la
base de datos est en modo restringido mediante la instruccin:

ALTER SYSTEM ENABLE RESTRICTED


RESTRICTED SESSION SESSION

Slo los usuarios con este privilegio puede conectar con la base de datos si
sta se encuentra en este modo.

ALTER DATABASE Permite modificar la estructura de la base de datos

ALTER SYSTEM Permite modificar los parmetros y variables del sistema

CREATE TABLE Permite crear tablas. Incluye la posibilidad de borrarlas.

GRANT ANY OBJECT Permite conceder privilegios sobre objetos que no son del usuario
PRIVILEGE (pertenecen a otros usuarios) a terceros usuarios.

CREATE ANY TABLE Permite crear tablas en otros esquemas de usuario

DROP ANY TABLE Permite borrar tablas de otros usuarios

SELECT ANY TABLE Permite seleccionar datos en tablas de otros usuarios

INSERT ANY TABLE Permite aadir datos en tablas de otros usuarios

UPDATE ANY TABLE Permite eliminar datos en tablas de otros usuarios

DELETE ANY TABLE Permite eliminar datos en tablas de otros usuarios

En la tabla anterior se ha hecho hincapi en los privilegios referidos a las tablas, para otros objetos el
funcionamiento es similar: igual que hay CREATE TABLE, se puede usar CREATE VIEW para las
vistas o INDEX, TRIGGER, PROCEDURE, SEQUENCE, SYNONYM, TYPE, y de esa forma
podemos conceder privilegio de creacin de otros objetos. Lo mismo con el resto de operaciones

Hay dos privilegios especiales que permiten conceder nivel de DBA, son: SYSDBA y SYSOPER. Se
han comentado anteriormente.

La lista completa de privilegios es:


Privilegio Significado

Sesiones

ALTER SESSION Modificar el funcionamiento de la sesin

ALTER RESOURCE
Modifica los parmetros de clculo de coste de la sesin
COST

RESTRICTED
Conectar aunque la base de datos se haya iniciado en modo restringido
SESSION

Base de datos y sistema

ALTER DATABASE Modificar la base de datos (privilegio de gran capacidad administrativa)

ALTER SYSTEM Modificar los parmetros del sistema

AUDIT SYSTEM Auditar la base de datos

Usuarios, roles, privilegios y perfiles

CREATE USER Crear usuarios pudiendo indicar tablespace por defecto, cuotas y perfiles

Modificar al usuario. Permite cambiar la contrasea y modo de


ALTER USER autentificacin, tablespace por defecto, cuota de uso de disco, roles y el
perfil del usuario

DROP USER Borrar usuario

CREATE PROFILE Crear perfiles

ALTER PROFILE Modificar perfiles

DROP PROFILE Borrar perfiles

CREATE ROLE Crear roles

ALTER ANY ROLE Modificar roles

GRANT ANY ROLE Conceder roles

GRANT ANY
Conceder privilegios de sistema
PRIVILEGE
Privilegio Significado

Directorios

CREATE ANY
Crear directorios
DIRECTORY

DROP ANY
Borrar directorios
DIRECTORY

Tablespaces (espacios de tabla)

CREATE
Crear tablespaces
TABLESPACES

ALTER TABLESPACE Modificar tablespaces

DROP TABLESPACE Borrar tablespaces

MANAGE Administrar el espacio de tablas para poder hacer copia de seguridad o


TABLESPACE simplemente quedar online u offline el tablespace

UNLIMITED Usa cuota ilimitada al escribir en cualquier tablespace. Este privilegio


TABLESPACE elimina las cuotas establecidas sobre el usuario, si las hubiera.

Tablas

Crear tablas en el esquema del usuario, incluye insertar, modificar y eliminar


CREATE TABLE
datos de la misma; as como eliminar la propia tabla

ALTER ANY TABLE Modificar tablas de cualquier usuario

BACKUP ANY TABLE Utilizar la utilidad Export para copiar datos de otros esquemas.

CREATE ANY TABLE Crear tablas en cualquier esquema

DELETE ANY TABLE Borrar filas de tablas en cualquier esquema

DROP ANY TABLE Borrar tablas en cualquier esquema

INSERT ANY TABLE Aadir datos a cualquier tabla

SELECT ANY TABLE Seleccionar datos de tablas en cualquier esquema

UPDATE ANY TABLE Modificar datos de tablas de cualquier esquema


Privilegio Significado

LOCK ANY TABLE Bloquear tablas, vistas e instantneas en cualquier esquema

FLASHBACK ANY Realizar accin de flashback en tablas, vistas e instantneas en cualquier


TABLE esquema

Vistas

CREATE VIEW Crear vistas en el esquema del usuario

CREATE ANY VIEW Crear vistas en cualquier esquema

DROP ANY VIEW Borrar cualquier vista en cualquier esquema

UNDER ANY VIEW Crear subvistas

Instantneas (Snapshots o vistas materializadas)

CREATE
MATERIALIZED Crear vistas materializadas (instantneas)
VIEW

CREATE ANY
MATERIALIZED Crear vistas materializadas (instantneas) en cualquier esquema
VIEW

ALTER ANY
MATERIALIZED Modificar vistas materializadas (instantneas) en cualquier esquema
VIEW

DROP ANY
MATERIALIZED Borrar vistas materializadas (instantneas) en cualquier esquema
VIEW

GLOBAL QUERY Permite realizar operaciones de lectura escritura en instantneas que usan
REWRITE tablas de otros esquemas

CREATE SNAPSHOT Crear instantneas (obsoleto)

ALTER ANY
Modificar instantneas de cualquier usuario (obsoleto)
SNAPSHOT

CREATE ANY
Crear instantneas a cualquier usuario (obsoleto)
SNAPSHOT
Privilegio Significado

DROP ANY
Borrar instantneas (obsoleto)
SNAPSHOT

PL/SQL

CREATE PROCEDURE Crear procedimientos y funciones PL/SQL

ALTER ANY
Modificar procedimientos y funciones de cualquier usuario
PROCEDURE

CREATE ANY
Crear funciones y procedimientos en cualquier esquema
PROCEDURE

DROP ANY
Borrar cualquier procedimiento en cualquier esquema
PROCEDURE

EXECUTE ANY
Ejecutar cualquier procedimiento en cualquier esquema
PROCEDURE

CREATE TRIGGER Crear triggers

ALTER ANY TRIGGER Modificar triggers de cualquier usuario

CREATE ANY
Crear triggers en cualquier esquema
TRIGGER

DROP ANY TRIGGER Borrar triggers de cualquier esquema

ADMINISTER Crear triggers de sistema (requiere adems el privilegio CREATE


DATABASE TRIGGER TRIGGER)

CREATE LIBRARY Crear libreras de procedimientos y funciones en el esquema de usuario

CREATE ANY
Crear libreras de procedimientos y funciones en cualquier esquema
LIBRARY

DROP ANY TRIGGER Borrar cualquier trigger

DROP LIBRARY Borrar librera de procedimientos y funciones en el esquema de usuario

DROP ANY LIBRARY Borrar libreras de procedimientos y funciones en cualquier esquema

EXECUTE ANY Ejecutar cualquier librera


Privilegio Significado

LIBRARY

Tipos de datos

CREATE TYPE Crear tipos de datos personales

ALTER ANY TYPE Modificar tipos de datos personales en cualquier usuario

CREATE ANY TYPE Crear tipos de datos en cualquier esquema

DROP ANY TYPE Borrar tipos de datos de cualquier esquema

EXECUTE ANY TYPE Permite invocar a tipos de datos personales presentes en cualquier esquema

ndices

Modificar ndices de la base de datos (incluye modificar claves primarias,


ALTER ANY INDEX
secundarias,)

CREATE ANY INDEX Crear ndices en cualquier esquema

DROP ANY INDEX Borrar ndices en cualquier esquema

Secuencias y sinnimos

ALTER ANY
Modificar secuencias de cualquier usuario
SEQUENCE

CREATE ANY
Crear secuencias en cualquier esquema
SEQUENCE

CREATE ANY
Crear sinnimos en cualquier esquema
SYNONYM

CREATE SEQUENCE Crear secuencias

CREATE SYNONYM Crear sinnimos

CREATE PUBLIC
Crear sinnimos pblicos
SYNONYM

DROP PUBLIC
Borrar sinnimos pblicos
SYNONYM
Privilegio Significado

CREATE ANY
Crear secuencias en cualquier esquema
SEQUENCE

DROP ANY
Borrar secuencias en cualquier esquema
SEQUENCE

DROP ANY SYNONYM Borrar sinnimos en cualquier esquema

SELECT ANY
Seleccionar cualquier secuencia de cualquier esquema
SEQUENCE

Clusters

CREATE CLUSTER Crea y modifica clusters en el esquema actual

ALTER ANY CLUSTER Modificar clusters

CREATE ANY
Crear clusters en cualquier esquema
CLUSTER

DROP ANY CLUSTER Borrar cualquier cluster

Segmentos de rollback

CREATE ROLLBACK
Crear segmentos de rollback
SEGMENT

ALTER ROLLBACK
Modificar segmentos de rollback
SEGMENT

DROP ROLLBACK
Borrar segmento de rollback
SEGMENT

Enlaces a base de datos

CREATE DATABASE
Crear enlaces privados a bases de datos en el esquema del usuario
LINK

CREATE PUBLIC
Crear enlaces pblicos a bases de datos
DATABASE LINK

CREATE DATABASE
Modificar enlaces privados a bases de datos
LINK
Privilegio Significado

CREATE PUBLIC
Modificar enlaces pblicos a bases de datos
DATABASE LINK

DROP PUBLIC
Borrar enlaces pblicos a bases de datos
DATABASE LINK

Programacin de tareas

CREATE JOB Crear trabajo planificado en el esquema actual

Crea, modifica y elimina tareas, programas y credenciales de cualquier


CREATE ANY JOB esquema (excepto SYS). Esto permite ejecutar cdigo en cualquier esquema
de cualquier usuario.

CREATE EXTERNAL Crear un trabajo en el esquema de usuario procedente del planificador de


JOB tareas del sistema operativo

EXECUTE ANY Ejecutar cualquier programa presente en un trabajo planificado del esquema
PROGRAM de usuario.

EXECUTE ANY CLASS Asignar cualquier clase a un trbajo en el esquema de usuario.

MANAGE
Administrar el planificador de tareas,
SCHEDULER

Varios

ANALYZE ANY Analizar cualquier tabla, clster o ndice en cualquier esquema.

ANALYZE ANY
Analizar cualquier elemento del diccionario de datos
DICTIONARY

SELECT ANY
Realizar SELECT sobre las vistas del diccionario de datos
DICTIONARY

AUDIT ANY Auditar a cualquier objeto de la base de datos

BECOME USER Convertirse en otro usuario al utilizar algunas de las utilidades de Oracle

COMMENT ANY Realizar comentarios sobre tablas, columnas y vistas en cualquier esquema
TABLE de la base de datos

SELECT ANY Seleccionar los datos de la vista


Privilegio Significado

FLASHBACK_TRANSACTION_QUERY que controla el proceso de la


TRANSACTION
actual operacin flashback.

FORCE ANY Forzar aceptar (COMMIT) las transacciones en duda en un sistema


TRANSACTION distribuido de bases de datos en cualquier conexin

FORCE
Forzar aceptar (COMMIT) la transaccin actual en caso de duda.
TRANSACTION

SYSDBA Privilegio general de administrador

Varios

SYSOPER Privilegio general de administrador (ms bajo que el anterior)

FLASHBACK
ARCHIVE Crea, elimina o modifica cualquier archivo de flashback
ADMINISTER

DEBUG CONNECT
Conectar la sesin a un depurador
SESSION

DEBUG ANY
Conectar procedimientos, funciones y/o cdigo Java a un depurador
PROCEDURE

[5.6.2]conceder privilegios

Se usa con la instruccin GRANT que funciona as:

GRANT privilegio1 [,privilegio2[,]] TO usuario


[WITH ADMIN OPTION];

La opcin WITH ADMIN OPTION permite que el usuario al que se le concede el privilegio puede
conceder dicho privilegio a otros usuarios. Es, por tanto, una opcin a utilizar con cautela.

Ejemplo:

GRANT CREATE SESSION, ALTER SESSION, CREATE TABLE,


CREATE VIEW, CREATE SYNONYM, CREATE SEQUENCE,
CREATE TRIGGER, CREATE PROCEDURE, CREATE TYPE
TO jsanchez;

[5.6.3]revocar privilegios
Retira privilegios concedidos a un usuario. Se realiza con la instruccin REVOKE que funciona de
esta forma:

REVOKE privilegio1 [,privilegio2 [,]] FROM usuario;

Al revocar los privilegios, las acciones llevadas a cabo con ellos (borrar, modificar,) no se anulan.

[5.6.4]privilegios de objeto

Las instrucciones vistas anteriormente otorgan o quitan permisos generales, es decir dictan qu
operaciones, en general, puede realizar un usuario.

Los privilegios de objeto marcan qu operaciones le estn permitidas a un usuario realizar sobre el
objeto

Sintaxis:

GRANT {privilegio [(listaColumnas)] [,privilegio [(listaColumnas)] [,]] |


ALL [PRIVILEGES]}
ON [esquema.]objeto
TO {usuario | rol | PUBLIC} [,{usuario | rol | PUBLIC} [,]]
[WITH GRANT OPTION]

La opcin ALL concede todos los privilegios posibles sobre el objeto. Se pueden asignar varios
privilegios a la vez y tambin varios posibles usuarios. La opcin WITH GRANT OPTION permite al
usuario al que se le conceden los privilegios, que pueda, a su vez, conceder esos mismos privilegios a
otro usuario.

Ejemplo de uso de GRANT con privilegios de objeto:

GRANT UPDATE, INSERT ON jsanchez.personas TO anozal;

En la siguiente tabla se enumeran los posibles privilegios que se pueden aplicar a un determinado
objeto:

Privilegio Aplicable a

SELECT Tablas, vistas, instantneas, secuencias

INSERT Tablas, vistas,

UPDATE Tablas, vistas

DELETE Tablas, vistas

ALTER Tablas, secuencias

EXECUTE Procedimientos, funciones, paquetes, sinnimos, programas en directorios


Privilegio Aplicable a

INDEX Tablas (para crear ndices en la misma)

REFERENCES Tablas (para crear claves secundarias, FOREIGN KEY)

UNDER Vistas, para crear subvistas

DEBUG Depurar procedimientos y funciones mediante programa externo

ON COMMIT REFRESH Actualizar la vista materializada (o instantnea) al realizar un COMMIT

QUERY REWRITE Escribir en la vista materializada (o instantnea)

READ Directorios

WRITE Directorios

FLASHBACK ARCHIVE Archivos de datos flashback (activar o desactivar)

[5.6.5]quitar privilegios de objeto

Para hacerlo, la sintaxis es:

REVOKE {privilegio1 [,privilegio2] [,]] |


ALL [PRIVILEGES]}
ON [esquema.]objeto
FROM {usuario | rol | PUBLIC} [,{usuario | rol | PUBLIC} [,]]
[CASCADE CONSTRAINTS]

CASCADE CONSTRAINTS elimina cualquier restriccin que impida el borrado del privilegio.

Slo puede revocar los privilegios de objeto concedidos, el usuario que concedi dichos privilegios.

[5.6.6]mostrar informacin sobre privilegios

Las vistas que permiten mostrar informacin sobre privilegios son:

Vista Significado

DBA_SYS_PRIVS Privilegios de sistema asignados a usuarios y roles

DBA_TAB_PRIVS Lista de todos los privilegios de todos los objetos de la base de datos

DBA_COL_PRIVS Lista de todos los privilegios aplicados a columnas de la base de datos


Vista Significado

SESSION_PRIVS Privilegios en activo para el usuario y sesin actuales

USER_SYS_PRIVS Privilegios de sistema asignados al usuario

USER_TAB_PRIVS_MADE Privilegios de objeto asignados a los objetos del usuario actual

USER_TAB_PRIVS_RECD Privilegios de objeto (de otros usuarios) concedidos al usuario actual

USER_COL_PRIVS_MADE Privilegios de objeto asignados a columnas de objetos del usuario actual

Privilegios asignados a columnas de objetos (de otros usuarios) y


USER_COL_PRIVS_RECD
concedidos al usuario actual

[5.6.7]administracin de roles en Oracle

Los roles son privilegios aglutinados sobre un mismo nombre, bajo la idea de que ese conjunto denote
un uso habitual sobre la base de datos. Gracias a los roles se facilita la asignacin de privilegios a los
usuarios. Un usuario puede tener asignados varios roles y viceversa.

[5.6.8]creacin de roles

Los roles se crean usando esta sintaxis

CREATE ROLE rol [NOT IDENTIFIED |


IDENTIFIED {BY password | EXTERNALLY | GLOBALLY | USING package}];

La opcin IDENTIFIED hace que el rol slo pueda utilizarse si el usuario se identifica con el mtodo
que indiquemos en esta instruccin. Las formas de identificarse son las mismas formas que se utilizan
al identificar un usuario (vistas anteriormente), salvo que ahora disponemos de una nueva: la opcin
PACKAGE que hace que el rol slo se pueda utilizar si usamos el paquete de aplicaciones indicado.

Por defecto un rol no requiere identificacin.

[5.6.9]modificacin de roles

Disponemos de la instruccin ALTER ROLE permite modificar la configuracin del rol. Tiene las
mismas opciones que CREATE ROLE y slo se usa si deseamos establecer un nuevo mtodo para
autentificarnos.

[5.6.10]asignar y retirar privilegios a roles

Se realiza con la instruccin GRANT y se usa igual que cuando establecemos permisos a los usuarios,
en la sintaxis de los comandos GRANT y REVOKE vistas anteriormente, simplemente se indicara un
nombre de rol en lugar de un nombre de usuario. Por ejemplo si deseamos asignar los privilegios
CREATE TABLE y CONNECT a un rol llamado rol1. Se hara:

GRANT CREATE TABLE, CONNECT TO rol1;

De la misma forma, podemos quitar privilegios asignados a un rol mediante el comandol REVOKE:

REVOKE CREATE TABLE FROM rol1;

[5.6.11]asignar roles a usuarios

La sintaxis completa para asignar roles a un usuario es:

GRANT rol1 [,rol2 [,]]


TO {usuario|rol|PUBLIC [,{usuario|rol|PUBLIC} [,] }
[WITH ADMIN OPTION]

Al igual que en las instrucciones anteriores, PUBLIC asigna el rol a todos los usuarios y WITH
ADMIN OPTION permite al usuario al que se le concede el rol, conceder l dicho rol a otros
usuarios/as.

[5.6.12]roles por defecto

Los usuarios tienen una serie de roles por defecto, estos son aquellos roles que van unidos al usuario,
de modo que en cuanto un usuario lanza una sesin, los privilegios que contienen sus roles por defecto,
comienzan a funcionar.

Cuando asignamos un rol mediante el comando GRANT, este pasa a ser un rol por defecto.

[5.6.13]roles predefinidos

Oracle dispone de una serie de roles predefinidos que se pueden asignar a los usuarios. Hay ms de
cincuenta roles predefinidos. Los clsicos son:

rol significado

CONNECT Permite crear sesiones. Se mantiene por compatibilidad

RESOURCE Permite crear tablas y cdigo PL/SQL del tipo que sea. Se mantiene por compatibilidad

DBA Permite casi todo, excepto manejar la instancia de la base de datos

[5.6.14]activar y desactivar roles

No todos los roles aparecen activados. Para saber los roles que estn activados en una sesin de
usuario, bastar con consultar el contenido de la vista SESSION_ROLES.
Al iniciar sesin cada usuario tendr activados los privilegios que se le asignaron explcitamente y los
roles por defecto.

La activacin (y tambin la desactivacin) de un rol se realiza mediante SET ROLE (slo podemos
activar y desactivar roles que el usuario tenga asignados mediante la instruccin GRANT). Su sintaxis
es:

SET ROLE
{ rol1 [IDENTIFIED BY contrasea]
[,rol2 [IDENTIFIED BY contrasea] [,]]
| ALL [EXCEPT rol1 [,rol2 [,]]]
| NONE
};

Las posibilidades son:

Indicar una lista de roles que sern los que se activen (se usa cuando se haban
desactivado)
Indicar ALL para activar todos los roles, excepto aquellos que se indiquen en la
clusula EXCEPT que quedarn sin activar.
NONE desactiva todos los roles (incluido el rol por defecto). Slo quedarn
activados los privilegios individuales marcados explcitamente.

La activacin y desactivacin slo sirve para la sesin actual, en la siguiente sesin volvern a estar
activados slo los roles por defecto.

[5.6.15]asignar a un usuario un rol por defecto

Cuando se crea un usuario mediante CREATE USER, no disponemos de la posibilidad de asignar un


rol por defecto. De hecho se le asigna automticamente la opcin ALL que hace que todos los roles
que se le asignen en el futuro (mediante GRANT) pasarn a ser roles por defecto.

Por ello la instruccin que administra los roles por defecto es ALTER USER:

ALTER USER usuario


DEFAULT ROLE {rol1 [,rol2 [,]| ALL [EXCEPT rol1 [,rol2[,]] |NONE ]};

La opcin ALL coloca a todos los roles como roles por defecto, EXCEPT especifica una lista de roles
que no sern colocados como roles por defecto. NONE hace que no haya ningn rol por defecto.
Finalmente podemos simplemente especificar la lista de roles que quedarn como roles por defecto.

[5.6.16]borrar roles

Lo hace la instruccin DROP ROLE, seguida del rol a borrar. Desde ese momento a los usuarios a los
que se haban asignado el rol se les revoca.

[5.6.17]informacin sobre roles en el diccionario de datos

Existen varias vistas para examinar los roles.


Vista Significado

DBA_ROLES Muestra todos los roles de la base de datos

DBA_ROLES_PRIVS Roles asignados a los usuarios

ROLE_ROLE_PRIVS Roles asignados a otros roles

DBA_SYS_PRIVS Privilegios de sistema asignados a usuarios y roles

ROLE_SYS_PRIVS Privilegios de sistema asignados a roles

ROLE_TAB_PRIVS Privilegios de objeto concedidos a roles

SESSION_ROLES Roles en activo para el usuario actual

[5.7] administracin de perfiles de Oracle


Los perfiles permiten limitar los recursos que los usuarios usan de la base de datos. Hay un perfil
llamado DEFAULT que se aplica automticamente a todos los usuarios y que les da recursos ilimitados
sobre la base de datos. Para limitar el nmero de recursos se debe de activar (ponindola el valor
TRUE) la variable de sistema RESOURCE_LIMIT (que por defecto est a FALSE). Esto se hace as:

ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;

En realidad hay dos tipos de parmetros de los perfiles:

Perfiles de manejo de contraseas, que gestionan el funcionamiento de las


contraseas para el usuario.

Variable de perfil Significado

Nmero consecutivo de errores en las contraseas antes de


FAILED_LOGIN_ATTEMPTS
bloquear la cuenta. Por defecto son 10

Nmero de das hasta que se bloquea una cuenta si se supera el


PASSWORD_LOCK_TIME
lmite de intentos al meter una contrasea. Por defecto es uno

Nmeros de das que tiene vigencia una contrasea. Por defecto


PASSWORD_LIFE_TIME
es 180

Das que la contrasea se la concede un periodo extra de gracia


PASSWORD_GRACE_TIME
tras consumir su tiempo de vida. Por defecto es 7
Variable de perfil Significado

PASSWORD_REUSE_TIME Nmero de das que una contrasea puede ser reutilizada

Funcin a la que se invoca cuando se modifica una contrasea


PASSWORD_VERIFY_FUNCTION con el fin de verificar su validez en base a las reglas de
complejidad que deseemos

Perfiles relacionados con el uso de recursos. Establecen el mximo o mnimo uso de recursos de la
base de datos por parte del usuario.

Variable de perfil Significado

Nmero de conexiones de usuario concurrentes que se


SESSIONS_PER_USER
permiten.

Lmite de tiempo (en centsimas de segundo) que se permite a


CPU_PER_SESSION un usuario utilizar la CPU antes de ser echado del sistema. De
esa forma se evitan peligros de rendimiento

CPU_PER_CALL Como la anterior pero referida a cada proceso

Para conexiones en instalaciones de servidor compartido,


PRIVATE_SGA nmero de KB que puede consumir cada sesin en la zona de
memoria compartida (SGA)

CONNECT_TIME Minutos como mximo que se permite a una sesin

IDLE_TIME Minutos mximos de inactividad de una sesin

LOGICAL_READS_PER_SESSION Mximo nmero de bloques ledos en una sesin

LOGICAL_READS_PER_CALL Mximo nmero de bloques ledos por un proceso

Mximo nmero de recursos consumidos por una sesin. Es la


COMPOSITE_LIMIT
media ponderada de varios parmetros anteriores

crear perfiles

Sintaxis:

CREATE PROFILE perfil LIMIT parmetro1 valor1 [parametro2 valor [...]]


Los parmetros a especificar son los que aparecen en la tabla anterior. A cada parmetro se le indica un
valor, o bien la palabra DEFAULT si deseamos que tome su valor por defecto, o bien UNLIMITED
para indicar que el parmetro tomar un valor de infinito.

Ejemplo:

CREATE PROFILE programador LIMIT


SESSIONS_PER_USER UNLIMITED
CPU_PER_SESSION UNLIMITED
IDLE_TIME 15
CONNECT_TIME 150
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LOCK_TIME 2;

[5.7.1]modificar perfiles

La instruccin ALTER PROFILE funciona igual que CREATE PROFILE y es la encargada de hacer
modificaciones a un perfil creado.

[5.7.2]borrar perfil

En este caso es DROP PROFILE seguida del nombre del perfil a eliminar. Se puede usar la palabra
CASCADE para eliminar todas las restricciones que impidan borrar el perfil. Sintaxis:

DROP PROFILE nombrePerfil [CASCADE]

[5.7.3]asignar un perfil a un usuario

Cada usuario tiene un solo perfil. La instruccin de creacin de usuarios (CREATE USER) dispone de
la clusula PROFILE para indicar el perfil que se asigna a ese usuario.

Si lo que deseamos es asignar un perfil a un usuario despus de haberle creado, disponemos de la


instruccin ALTER USER con la que podemos indicar el perfil. Ejemplo:

ALTER USER jsanchez PROFILE programador;

Vous aimerez peut-être aussi