Sie sind auf Seite 1von 10

Creacin de Bitcoras : secuencia y ejemplos investigados

Creacin de Usuarios y privilegios

ESTRUCTURA FSICA DE UNA BASE DE DATOS


Una base de datos es una coleccin de datos relacionados que son utilizados y
recuperados conjuntamente para uno o ms sistemas de aplicaciones. La situacin fsica
y la implementacin de la base de datos es transparente para los programas de
aplicaciones y, en realidad, se puede mover y reestructurar la base de datos fsica sin
afectar a los programas. Fsicamente, en su forma ms simple, una base de datos Oracle
no es ms que un conjunto de archivos que se encuentra en alguna parte del disco. La
situacin fsica de estos archivos es irrelevante para la funcin de la base de datos
(aunque es importante para su rendimiento). Los archivos son binarios y slo se puede
acceder a ellos utilizando el software del ncleo por ejemplo de Oracle. La consulta de
los datos de los archivos de la base de datos se realiza generalmente con una de las
herramientas de Oracle (tales como SQL *Plus) usando el SQL (Structured Query
Language,
Lenguaje
estructurado
de
consultas)
PROCESOS DE SERVIDOR Y PROCESOS DE USUARIO
Cuando un programa se inicializa en la base de datos, se comunica con Oracle a travs
de un proceso.
Procesos de usuario (cliente)
Los procesos de usuario trabajan por el propio usuario, solicitando informacin a los
procesos del servidor. Ejemplos de procesos de usuario son: Oracle Forms, Oracle
Reports y SQL *Plus. Estas son herramientas comunes que cualquier usuario de la base
de datos utiliza para comunicarse con ella.
Procesos de servidor
Los procesos de servidor reciben las solicitudes de los procesos de usuario y se
comunican con la base de datos. A travs de esta comunicacin, los procesos de usuario
trabajan
con
los
datos
de
la
base
de
datos.
LA MEMORIA
Oracle utiliza dos tipos de estructura de memoria; el rea global de sistema o SGA, y el
rea global de programa o PGA.
rea global de sistema (SGA)
SGA es el lugar de la memoria donde la base de datos Oracle almacena la informacin
sobre s misma. Lo hace as dado que la memoria es la forma ms rpida y ms eficiente
de permitir que los procesos se comuniquen. Esta estructura de memoria es accesible a
todos los procesos de usuario y de servidor. La siguiente figura muestra como el SGA se
encuentra en el centro de todas las comunicaciones.

Memoria cach del bfer de datos


La memoria cach del bfer de datos es donde Oracle almacena los bloques de datos
ms recientemente utilizados. En otras palabras, es la memoria cach de datos. Cuando
se introduce informacin en la base de datos, se almacena en bloques de datos. La
memoria cach del bfer de datos es un rea de memoria en la que Oracle coloca dichos
bloques de datos, para que un proceso de usuario pueda acceder a ellos. Antes de que
ningn proceso de usuario pueda acceder a parte de los datos, stos deben residir en la
memoria cach del bfer de datos. El tamao de la memoria cach el bfer de datos
tiene un lmite fsico, por lo que cuando Oracle la ha llenado, deja los bloques de mayor
uso en la memoria cach y elimina los bloques de menor uso. Esto se hace mediante el
algoritmo LRU (menos recientemente usado) Un punto importante que debemos
clarificar es que si un proceso de cliente necesita una informacin que no est e la
memoria cach, la base de datos accede a la unidad de disco fsico, lee los bloques de
datos necesarios y los coloca en la memoria cach del bfer de datos. Esto hace que
todos los procesos de servidor y de cliente puedan aprovecharse de la lectura de disco
fsico.
Memoria
cach
de
diccionario
(memoria
cach
de
fila)
Una memoria cach de diccionario est formada por filas extradas del diccionario de
datos. El diccionario de datos contiene toda la informacin que Oracle necesita para
gestionarse, tal como qu usuarios tienen acceso a la base de datos Oracle, qu objetos
de la base de datos poseen y dnde se localizan dichos objetos.
Bfer del registro de rehacer
Cualquier transaccin que pueda registrarse en el registro de rehacer (los registros de
rehacer en lnea se necesitan para propsitos de recuperacin) debe residir primero en el
bfer del registro de rehacer. Se trata de un rea de memoria reservada para este

propsito. La base de datos, peridicamente, vaca este bfer en los registros de rehacer
en lnea.
rea compartida SQL
Hay que pensar en el rea compartida SQL como en la memoria cach de programa. Es
el rea donde se almacenan todos los programas. Los programas de una base de datos
Oracle se basan en el lenguaje estndar SQL. Esta memoria cach contiene todas las
rdenes SQL analizadas que estn listas para ejecutarse
Resumiendo, el SGA es el gran comunicador. Es el lugar de memoria donde se coloca la
informacin a la que pueden acceder los procesos de servidor y de cliente.

Referencia

scar Gonzlez Martn , Francisco Ruiz Gonzlez, "Arquitectura de bases de


Datos",2000, UNIVERSIDAD DE CASTILLA LA MANCHA ESCUELA SUPERIOR
DE INFORMTICA BASES DE DATOS

2.1.1 Estructura de memoria y procesos de la instancia

Arquitectura de un manejador de bases de datos (DBMS


Una base de datos en ejecucin consta de 3 cosas:
1. Archivos
2. memoria
3. Procesos

Archivos

Control (ctl): almacenan informacin acerca de la estructura de archivos de la


base.

Rollback (rbs): cuando se modifica el valor de alguna tupla en una transaccin,


los valores nuevos y anteriores se almacenan en un archivo, de modo que si
ocurre algn error, se puede regresar (rollback) a un estado anterior.

Redo (rdo): bitcora de toda transaccin, en muchos dbms incluye todo tipo de
consulta incluyendo aquellas que no modifican los datos.

Datos (dbf): el tipo ms comn, almacena la informacin que es accesada en la


base de datos.

Indices (dbf) (dbi): archivos hermanos de los datos para acceso rpido.

Temp (tmp): localidades en disco dedicadas a operaciones de ordenamiento o


alguna actividad particular que requiera espacio temporal adicional.

Memoria

Shared Global Area (SGA): es el rea ms grande de memoria y quizs el ms


importante

Shared Pool: es una cach que mejora el rendimiento ya que almacena parte del
diccionario de datos y el parsing de algunas consultas en SQL.
Redo Log Buffer: contiene un registro de todas las transacciones dentro de la
base, las cuales se almacenan en el respectivo archivo de Redo y en caso de
siniestro se vuelven a ejecutar aquellos cambios que an no se hayan reflejado
en el archivo de datos (commit).
Large Pool: espacio adicional, generalmente usado en casos de multithreading y
esclavos de I/O.
Java Pool: usado principalmente para almacenar objetos Java

Procesos
Threading
System Monitor: despierta peridicamente y realiza algunas actividades entre las que
se encuentran la recuperacin de errores, recuperacin de espacio libre en tablespaces y
en segmentos temporales.
Process Monitor: limpia aquellos procesos que el usuario termina de manera anormal,
verificando consistencias, liberacin de recursos, bloqueos.
Database Writer: escribe bloques de datos modificados del buffer al disco, aquellas
transacciones que llegan a un estado de commit.
Log Writer: escribe todo lo que se encuentra en el redo log buffer hacia el redo file
Checkpoint: sincroniza todo lo que se tenga en memoria, con sus correspondientes
archivos en disco

Tipos de instancias de un DBMS


Online Transaction Processing (OLTP): compra/venta, telemarketing

Segmentos cortos de rollback

Shared Pool muy largo

Redo log suficiente

Indices en discos separados

Segmentos temporales pequeos

Decision Support Systems (DSS): datawarehouse

Segmentos largos de rollback

Shared Pool relativamente corto

Redo log suficiente

Indices apropiados

Segmentos largos de temporal

Parallel Query en la medida de lo posible (si est disponible)

instancia de una BD en Oracle


http://ict.udlap.mx/people/carlos/is346/admon03.html

http://abdarrayan.blogspot.mx/
La arquitectura de un SGBD hace referencia al modelo interno de
funcionamiento del sistema. Es decir a las estructuras internas/fsicas
que proporciona para el almacenamiento y su relacin con las
estructuras lgicas/conceptuales. Como es lgico, cada SGBD propone
diferentes arquitecturas.

estructuras lgicas de la base de datos


En todas las bases de datos relacionales disponemos de estas estructuras lgicas para
organizar la informacin:
Tablas. Compuestas de filas y columnas en las que se almacenan los datos relevantes
de cada base de datos. La mayora de SGBD usan distintos tipos de tablas, pero en
general cuando se habla de tablas se habla del elemento lgico encargado de
almacenar los datos.
Restricciones. Se definen al crear las tablas, pero se almacenan aparte. Estn
disponibles en el diccionario de datos y marcan las reglas que han de cumplir los
datos para que se consideren vlidos.
ndices. Se trata de una lista ordenada de claves que permite acceder a los valores
de una o ms columnas de una tabla de forma veloz.
Vistas. Son consultas almacenadas que nos permiten mostrar de forma personalizada
los datos de una o varias tablas.
Procedimientos y funciones. Cdigo del lenguaje procedimental de la base de datos
utilizado para ejecutar acciones sobre las tablas (incluidos los triggers).

estructuras fsicas e internas de la base de datos


Al final todos los elementos lgicos se deben almacenar en archivos cuyo tamao,
direccin,... etc. debe de ser controlado por el DBA. En los distintos tipos de SGBD
hay variaciones sobre las estructuras lgicas, en el caso de las fsicas su diferencia
puede ser total, lo que obliga a conocer muy bien la parte interna del sistema
concreto que estemos utilizando.

Las estructuras internas permiten analizar un nivel intermedio entre


estructuras lgicas (como las tablas) y las fsicas (como los archivos).
Por ejemplo, Oracle proporciona espacios de tabla o tablespaces para
aglutinar distintos elementos lgicos con distintos elementos fsicos a
fin de optimizar el rendimiento de la base de datos.

instancias de bases de datos


Los usuarios que deseen conectarse a una base de datos, se conectan a lo que se
conoce como la instancia de la base de datos (del ingls instance).
En el modo ms sencillo de trabajo, el usuario dispone de un software en su mquina
local, por lo que se encuentra en el lado del cliente, capaz de conectar con el SGBD.

En ese momento se lanza un proceso de usuario. Ese proceso deber comunicarse (a


travs de las redes apropiadas) con el proceso de servidor, un programa lanzado en
el lado del servidor que est permanentemente en ejecucin.
El proceso de servidor comunica a su vez con la instancia de la base de datos, otro
proceso en ejecucin a travs del cual se accede a la base de datos.
Ilustracin 1,

En el caso de bases de datos distribuidas, habr varias instancias de base de datos con
capacidad de atender concurrentemente ms usuarios.

instancia de Oracle

Es el conjunto de procesos del servidor que permiten el acceso a la base de


datos. Es un conjunto de estructuras de datos y procesos en memoria. Est
formado por:
SGA. Area global de sistema. Se trata de la zona de memoria comn para
todos los procesos de servidor, contien las siguientes estructuras de datos
fundamentales:

Buffer de cach de base de datos. Almacena bloques de datos


ledos de la base de datos a fin de que las prximas consultas no
necesiten acudir a disco y se las pueda servir de estos datos en la
cach.

Buffer redo log. Estructura que almacena los datos anteriores y


posteriores a cada instruccin y as facilitar tanto su anulacin,
como su realizacin en caso de problemas.

Large pool. rea de la memoria que proporciona espacio para


los datos necesarios para realizar operaciones de backup y
restauracin, as como los datos de sesin y otros que permitan
aliviar el trabajo de la instancia.

Shared pool. Consta de la cach del diccionario de datos y de la


cach de instrucciones SQL, PL/SQL. De esa forma se acelera la
ejecucin de consultas e instrucciones que utilicen los mismos
metadatos o bien que se traten de instrucciones parecidas a
otras anteriormente ejecutadas.

- Cache Library.
-Data Dictionary Cache.

Java Pool. Slo se usa si hemos instalado Java para agilizar el proceso de las
instrucciones en ese lenguaje.

Procesos en segundo plano. Programas en ejecucin que realizan


las tareas fundamentales sonre la base de datos, entre ellos:
DBWR. Escribe los datos del buffer de cache de la base de datos de la SGA a la base
de datos en disco (a los archivos de datos). Eso no ocurre en todo momento, sino
cuando se produce un evento de tipo checkpoint.
Un checkpoint ocurre cuando se ha consumido un tiempo determinado por el DBA,
que se establece para que cada cierto tiempo los datos pasen a grabarse en ficheros
de datos y as asegurarles en caso de problemas. 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 sera muy lento si se accediera ms a menudo al disco.

LGWR. Es el proceso que genera escrituras secuenciales en los redo logs (archivos
log de rehacer) que son los archivos que guardan la informacin necesaria para
poder recuperar un estado anterior en los datos.
Las instrucciones DML estn limitadas por la velocidad de este proceso al guardar los
datos. LGWR escribe desde el buffer del cach redo en el SGA hacia los archivos redo
en disco.
CKPT. Proceso encargado de comunicar la llegada de un checkpoint, punto de
control que ocurre cclicamente (y que se puede modificar poe el DBA) tras el cual se
deben de escribir los datos de memoria a los archivos de datos.
SMON. System Monitor. Proceso encargado de monitorizar el sistema para que
funcione correctamente tras un error grave. Adems se encarga de la optimizacin
del sistema mejorando el espacio en disco y elimando definitivamente (mediante
rollbacks) datos irrecuperables.
PMON. Process Monitor. Se encarga de la comunicacin con la PGA y especialmente
con el proceso servidor para manejar la conexin con el cliente, eliminado
transacciones de usuarios errneas (por desconexin por ejemplo) y liberando la
memoria que se reserv para los usuarios.
ARCn. Proceso de archivado de los archivos Redo. Sirve para que esos datos siempre
estn disponibles. Slo funciona en modo ARCHIVELOG de la base de datos, se
explica ms adelante.

PGA
La Program Globasl Area o rea global de programa, es la memoria que se reserva
por cada usuario para almacenar los datos necesarios para la conexin de un usuario
con la base de datos.
Cada conexin tiene su propia PGA con los datos a los que accede el proceso
servidor. Entre los datos que almacena estn:
La informacin sobre la sesin con el cliente
El estado de procesamiento de la instruccin SQL actual
Datos de cach para acelerar algunas instrucciones SQL (como por ejemplo ndices
temporales)

proceso servidor y proceso cliente


El proceso cliente es el programa en la memoria de la mquina en la que el
usuario ha conectado con Oracle. Este proceso se comunica con un proceso
servidor que es lanzado cuando el cliente establece conexin con Oracle.
Puede haber un mismo proceso servidor para ms de un cliente en caso de una
configuracin compartida de proceso servidor. Cuando el proceso cliente y el
servidor establecen conexin, se crea la sesin de usuario, que es manejada
por el proceso servidor. El proceso de usuario no puede acceder directamente
a la base de datos.