You are on page 1of 16

Administracin de

Sistemas Gestores de Bases de Datos


Tema 2: Fundamentos de Administracin de ORACLE

Ral Ruiz Padilla

rruizp@gmail.com
Septiembre 2011
Ral Ruiz Padilla, Septiembre de 2011

Algunos derechos reservados.


Este artculo se distribuye bajo la licencia
Reconocimiento-CompartirIgual 3.0 Espaa" de Creative
Commons, disponible en
http://creativecommons.org/licenses/by-sa/3.0/es/deed.es

Este documento (o uno muy similar)


esta disponible en (o enlazado desde)
http://informatica.gonzalonazareno.org
ndice
1. Descripcin de la arquitectura interna de ORACLE.

1.1. Espacios de tablas y archivos.

1.2. Estructuras de Memoria.

1.3. Procesos.

1.4. Funcionamiento SELECT

1.5. Funcionamiento UPDATE

2. El diccionario de datos de ORACLE

3. Instalacin, configuracin y optimizacin de una instancia de ORACLE.


1. Arquitectura interna de ORACLE.
1.1. Archivos
Archivos de configuracin

Archivos de texto. Contienen, entre otras cosas, la configuracin con la que arranca
ORACLE.

Archivos de control

Archivos .CTL, se consultan mediante vistas dinmicas (v$) y solo son modificados por el
servidor. Mantienen la integridad de la BD. Se mantienen tres copias.

Archivos de datos

Almacenan las tablas, el diccionario de datos y el segmento de rollback. Hay algunos por
defecto. Se pueden crear ms. Asociados a los tablespaces.

Archivos de diario o de transacciones (logs)

Se registran todos los cambios producidos en los datos. Se mantienen tres copias.

Actividad: Busca en tu disco los distintos archivos mencionados.


1. Arquitectura interna de ORACLE.
1.2. Memoria.
En ORACLE hay dos estructuras de memoria a considerar: SGA
(System Global Area) y PGA (Process Global Area)

PGA
Usada por un nico proceso usuario de la BD.
Contiene:
rea de ordenacin SQL
Informacin de la sesin
Estado de la sentencia actual
1. Arquitectura interna de ORACLE.
1.2. Memoria (II).
SGA
Usada por los procesos del servidor para comunicarse.
Contiene:
Shared Pool (cach de instrucciones y de D.D.)
Data Buffer (cach de datos)
Redo Log Buffer
Java Pool
Large Pool (opcional, para copias de seguridad y recuperaciones).
El tamao de cada rea se puede modificar, para mejorar el
rendimiento de nuestra BD.
1. Arquitectura interna de ORACLE
1.3. Procesos

DBWR (Database Writer): Gestiona buffer de datos.


LGWR (Log Writer): Gestiona buffer de redo.
CKPT (Checkpoint): Sincroniza buffer y archivos de datos.
SMON (System Monitor): Acta en la recuperacin de instancias y
compacta archivos de datos.
PMON (Process Monitor): Limpia recursos de procesos fallidos.
ARCH (Archiver): Archiva los ficheros de redo cuando se llenan.

Opcional.
RECO (Recoverer): Slo para BD distribuidas.
1. Arquitectura interna de ORACLE
1.4. Funcionamiento SELECT
1. Arquitectura interna de ORACLE
1.4. Funcionamiento SELECT (I)
1. El proceso de usuario pasa la peticin al servidor (request queue). Se reserva
PGA.
2. Se busca en la cach de instrucciones del Shared Pool una versin ejecutable
de la sentencia (plan de ejecucin). Si est, ir al paso 4.
3. Si no est, se compila siguiendo estos pasos:
a) Comprobar sintaxis de la instruccin.
b) Comprobar existencia de tablas y columnas mirando la cach del DD
existente en el Shared Pool o, si no est, en el propio DD, cargndolo
despus en dicha cach.
c) Se bloquea la definicin de los objetos involucrados para evitar cambios
mientras se sirve la instruccin.
d) Comprobar privilegios del usuario para acceso a los datos.
e) Realiza el plan de ejecucin y lo guarda en el Shared Pool, junto con el
texto de la instruccin.
1. Arquitectura interna de ORACLE
1.4. Funcionamiento SELECT (II)

4. Busca los datos requeridos en la cach de datos (database buffer). Si no


estn, el proceso DBWR los leer de disco y los cargar en la cach
mencionada.
5. Se envan los datos al proceso de usuario. (response queue).

6. En el caso de la SELECT todo es muy sencillo porque no se puede hacer


ROLLBACK ni es necesario realizar un REDO en ningn caso.

Veamos ahora el funcionamiento de una sentencia UPDATE...


1. Arquitectura interna de ORACLE
1.5. Funcionamiento UPDATE

1. Se realizan los tres primeros pasos de la SELECT: pasa la peticin al


servidor, se compila si es necesario y se cargan los datos originales en el
database buffer si no estaban all.
2. Se bloquean las filas afectadas.
3. Se guardan los valores antiguos en el segmento de ROLLBACK por si hay
que deshacer.
4. Se aade la instruccin al Redo Log Buffer por si hay que volver a realizar la
operacin tras restaurar un backup.
5. Se escriben los valores nuevos de los datos en el database buffer.
6. Cuando se haga un Commit, se pasan los valores que se han modificado del
buffer de datos a disco. Se borra del segmento de ROLLBACK la
informacin relacionada.
2. El diccionario de datos.
Generalidades
El diccionario de datos contiene tablas con informacin sobre todos los
objetos existentes en nuestra base de datos o sobre el funcionamiento
de la base de datos en el momento actual (vistas dinmicas).
Solo el usuario SYS puede cambiar a mano el contenido del diccionario
de datos, pero se desaconseja en cualquier circunstancia. Slo el
propio ORACLE debe modificarlo.
Los usuarios pueden consultar dicha informacin usando tres tipos de
vistas predefinidas.
USER_xxxx: Informacin sobre los objetos que son propiedad del
usuario.
ALL_xxxx: Informacin sobre los objetos sobre los que el usuario tiene
permisos.
DBA_xxxx: Informacin sobre todos los objetos de la BD.
2. El diccionario de datos.
Consultas

Para consultar el diccionario de datos se puede usar una aplicacin


(como la consola web de administracin) o se pueden escribir
consultas desde lnea de comandos (ms posibilidades).

As, adems de dominar perfectamente SQL, un DBA debe conocer las


vistas que existen sobre el diccionario de datos y ser capaz de
averiguar el significado de cada campo de la vista.
Habitualmente, se seleccionan slo las columnas y las filas de inters, en
lugar de mostrar la vista completa.
2. El diccionario de datos.
Estructura completa

Para obtener un listado de todas las vistas del diccionario de datos, hay
que consultar el propio diccionario de datos:
select view_name
from dba_views
where owner = 'SYS';
Dependiendo de las opciones de instalacin de ORACLE, el diccionario
puede llegar a tener varios miles de vistas.
Para conocer la utilidad de cada vista y el significado de cada columna,
podis consultar la documentacin online de ORACLE (Database
Reference) o ss64.com/orad
2. El diccionario de datos.
Vistas dinmicas de rendimiento

Para ver el valor actual de un parmetro de inicializacin de arranque se


puede usar el comando SHOW PARAMETER
Las vistas dinmicas se van actualizando en tiempo real y dan
informacin sobre el uso de disco, memoria, CPU...
Algunas son:
V$SGA: Informacin sobre la SGA.
V$OPTION: Opciones con que se instal ORACLE.
V$SESSION: Informacin de la sesin actual.
V$PROCESS: Informacin de los procesos activos.
V$INSTANCE: Estado general de la instancia.
3. Instalacin, configuracin y optimizacin de una instancia.
init.ora spfile.ora

Instancia: Base de datos en ejecucin.


init.ora: Fichero de texto con los parmetros de configuracin del arranque de
ORACLE. Puede modificarse desde la consola web, editando el fichero o
con una orden:
ALTER SYSTEM SET param = valor.
spfile.ora: Desde la versin 9, no puede editarse directamente.
Algunos parmetros se pueden modificar en caliente, pero otros requieren un
rearranque de la BD.
Los principales parmetros que se tocan normalmente son:
DB_CACHE_SIZE, SHARED_POOL_SIZE, PGA_AGGREGATE_TARGET,
DB_BLOCK_SIZE, DB_NAME, OPEN_CURSORS, PROCESSES,
CONTROL_FILES, etc...

You might also like