Académique Documents
Professionnel Documents
Culture Documents
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 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.
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,
Cualquier Sistema Gestor de Bases de Datos debe de ser capaz de realizar tres funciones bsicas:
Las instrucciones SQL estndar que se disearon para realizar esta funcin son CREATE,
ALTER y DROP.
En SQL son GRANT y REVOKE las instrucciones realizadas con esta funcin.
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:
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.
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:
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.
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:
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.
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.
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.
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.
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:
Las bases NoSQL utilizan un modelo diferente en el que los datos se almacenan de forma menos
estricta, en especial no siguen estas reglas:
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 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.5]BigData y MapReduce
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:
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.).
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:
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.
[2.1.2]sesin y conexin
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.
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.
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.
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.
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.
[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:
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
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.
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:
[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:
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:
Pool de 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.
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:
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.
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.
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.
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
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.
SMON
System Monitor. Proceso encargado de monitorizar el sistema. Sus principales labores son:
Process Monitor. Se encarga de gestionar el fallo en un proceso de usuario. Sus labores son:
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
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.
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.
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.
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.
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.
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:
Para explicar, muchas veces se relaciona segmento con tabla. Pero realmente los segmentos almacenan
otros objetos.
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.
De esa forma los bloques siguientes (hasta llenar la extensin) que se aadan, tendremos la seguridad
que irn contiguos en disco, disminuyendo su fragmentacin.
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).
Con ASM se consigue mayor rapidez y potencia ya que proporciona numerosas opciones de
trabajo.
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.
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.
[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.
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.
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).
[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.
[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.
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 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.
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
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.
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.
Se trata de analizar qu necesitamos del SGBD. En este sentido algunas cosas a tener en cuenta pueden
ser:
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:
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.
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.
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)
/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
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.
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:
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.
/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.
subdirectorio uso
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).
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
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
hardware
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.
[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
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:
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:
$ df h
Resolucin grfica. Al menos 1024x768 pxeles y 256 colores, es el mnimo que
tiene que producir nuestra tarjeta grfica.
software
Oracle 11g slo es compatible (oficialmente) con estos sistemas (sean de 32 o 64 bits):
$ 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.
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:
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
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:
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
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 -p
Se comprueba de nuevo con sysctl a para asegurar que los cambios han sido
correctos.
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.
[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
# wget http://public-yum.oracle.com/RPM-GPG-KEY-oracle-el4 -O
/usr/share/rhn/RPM-GPG-KEY-oracle
# 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
# yum update
Para trabajar con Oracle de forma recomendable, necesitamos crear dos grupos en el sistema Linux.
Las acciones a tomar sern las siguientes (evidentemente si ya hemos hecho algo previamente, no har
falta repetirlo):
# 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
# 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):
# passwd oracle
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.
SELINUX=permissive
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
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,)
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:
[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:
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)
[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:
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:
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
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.
# 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:
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:
Ejemplos de conexin:
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.
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:
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:
Se nos preguntarn los datos sobre la instancia y usuarios administradores. Si todo va bien habremos
creado el repositorio de Database Control.
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.
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).
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.
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
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.
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).
https://localhost:1158/em
Desde la lnea de comandos, en el servidor, disponemos del comando sqlplus. Lo normal es conectar en
modo annimo:
# sqlplus /nolog
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
Este comando conecta con el usuario hr (su contrasea tambin es hr) y lanza las instrucciones SQL
contenidas en el archivo inicio.sql.
SQL>@inicio.sql
Una base de datos Oracle puede estar en uno de estos cuatro estados:
[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:
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
[4.2.3]parada
Una instancia cuando es arrancada, hasta estar disponible atraviesa todos los estados anteriores.
SHUTDOWN IMMEDIATE;
[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.
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.
En el caso de no disponer de SPFile, Oracle puede utilizar un archivo de texto PFILE para almacenar
parmetros. Su ubicacin sera:
/u01/app/oracle/11.2.1/db_1/dbs/initbbdd.ora
nombreParmetro = valor
control_files=/u01/app/oracle/oradata/centora/control01.ctl
control_files=/u02/app/oracle/oradata/centora/control02.ctl
control_files=/aux/back/control03.ctl
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.
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.
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
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;
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).
tipos de parmetros
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:
[4.3.5]modificacin de parmetros
Ejemplo:
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.
opcin uso
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
SORT_AREA_SIZE
HASH_AREA_SIZE
BITMAP_MERGE_AREA_SIZE
CREATE_BITMAP_AREA_SIZE
Ms informacin en:
https://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams.htm
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_
CONSTRAINTS Restricciones
VIEWS Vistas
SEQUENCES Secuencias
SYNONYMS Sinnimos
TABLESPACES Tablespaces
SEGMENTS Segmentos
EXTENTS Extensiones
INDEXES ndices
Vistas estticas a usar con el prefijo USER_ ALL_ o
Uso
USER_
Las siguientes vistas estticas slo estn disponibles para los usuarios de tipo DBA:
Sesiones que estn bloqueando objetos por cuyo uso otras sesiones
DBA_BLOCKERS
estn en estado de espera
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$:
Registra de forma cronolgica los errores ocurridos en la base de datos. Entre los datos que registra,
estn:
Los siguientes parmetros nos permiten tomar decisiones sobre el funcionamiento de estos archivos o
consultar su valor:
parmetro valor
vista contenido
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.
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.
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:
[5.2.2]privilegios administrativos
[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.
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.
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.
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.
Funcionamiento:
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).
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:
[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:
[5.5.3]borrado de usuarios
Se realiza mediante:
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.1]privilegios de sistema
Slo los usuarios con este privilegio puede conectar con la base de datos si
sta se encuentra en este modo.
GRANT ANY OBJECT Permite conceder privilegios sobre objetos que no son del usuario
PRIVILEGE (pertenecen a otros usuarios) a terceros 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.
Sesiones
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
CREATE USER Crear usuarios pudiendo indicar tablespace por defecto, cuotas y perfiles
GRANT ANY
Conceder privilegios de sistema
PRIVILEGE
Privilegio Significado
Directorios
CREATE ANY
Crear directorios
DIRECTORY
DROP ANY
Borrar directorios
DIRECTORY
CREATE
Crear tablespaces
TABLESPACES
Tablas
BACKUP ANY TABLE Utilizar la utilidad Export para copiar datos de otros esquemas.
Vistas
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
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
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 ANY
Crear triggers en cualquier esquema
TRIGGER
CREATE ANY
Crear libreras de procedimientos y funciones en cualquier esquema
LIBRARY
LIBRARY
Tipos de datos
EXECUTE ANY TYPE Permite invocar a tipos de datos personales presentes en cualquier esquema
ndices
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 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
SELECT ANY
Seleccionar cualquier secuencia de cualquier esquema
SEQUENCE
Clusters
CREATE ANY
Crear clusters en cualquier esquema
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
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
EXECUTE ANY Ejecutar cualquier programa presente en un trabajo planificado del esquema
PROGRAM de usuario.
MANAGE
Administrar el planificador de tareas,
SCHEDULER
Varios
ANALYZE ANY
Analizar cualquier elemento del diccionario de datos
DICTIONARY
SELECT ANY
Realizar SELECT sobre las vistas del diccionario de datos
DICTIONARY
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
FORCE
Forzar aceptar (COMMIT) la transaccin actual en caso de duda.
TRANSACTION
Varios
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
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:
[5.6.3]revocar privilegios
Retira privilegios concedidos a un usuario. Se realiza con la instruccin REVOKE que funciona de
esta forma:
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:
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.
En la siguiente tabla se enumeran los posibles privilegios que se pueden aplicar a un determinado
objeto:
Privilegio Aplicable a
READ Directorios
WRITE Directorios
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.
Vista Significado
DBA_TAB_PRIVS Lista de todos los privilegios de todos los objetos de la base de datos
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
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.
[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.
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:
De la misma forma, podemos quitar privilegios asignados a un rol mediante el comandol REVOKE:
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.
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
RESOURCE Permite crear tablas y cdigo PL/SQL del tipo que sea. Se mantiene por compatibilidad
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
};
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.
Por ello la instruccin que administra los roles por defecto es ALTER USER:
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.
Perfiles relacionados con el uso de recursos. Establecen el mximo o mnimo uso de recursos de la
base de datos por parte del usuario.
crear perfiles
Sintaxis:
Ejemplo:
[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:
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.