Professional Documents
Culture Documents
ORACLE 11G
Contenido
2.1. Arquitectura del SGBD
Conceptos clave
SGBD: Sistema gestor de bases de datos
Una base de datos
Software
Hardware y usuarios
Usuarios
Un Sistema Gestor de Bases de
Datos.
No mount
No open
Grupo de redo log: estructura
cclica de almacenamiento.
Usuarios
Cada cuenta de una base de datos se
denomina usuario, la cual puede ser
autentificada de manera externa o interna. A
cada usuario se le asigna automticamente
un esquema, si este usuario es el propietario
de ese esquema, lo que significa que el
usuario automticamente tiene privilegios
completos sobre cualquier objeto del
esquema.
Usuarios predefinidos
SYS, es el propietario de la instancia de
Oracle y contiene los objetos que utiliza
Oracle para administrar la instancia.
SYSTEM, es el propietario de la base de
datos Oracle y contiene objetos que
emplea Oracle para administrar la base
de datos.
Esquema
Es el conjunto de objetos de una base
de datos que pertenecen a un usuario
especfico. Los nombres de usuario y de
esquema son siempre idnticos en
Oracle.
Esquemas de Base de Datos (Schema)
Coleccin de Objetos logicos.
Tablespaces
Dividen la informacin y los objetos en grupos que pueden residir en uno o mas
datafiles.
Esquemas (Schemas)
El conjunto de objetos de un usuario como: Tablas, Vistas, Procedimientos
almacenados, Triggers, ndices, Secuencias, Sinnimos, etc.
Fsicas
Archivo de datos.
Bloque de datos.
Estructuras de almacenamiento
Tablespace: Un espacio de tablas es una divisin
lgica de una base de datos. Los espacios de tabla
permiten agrupar usuarios o aplicaciones para mejor
mantenimiento y desempeo Cada base de datos
debe contener por lo menos el espacio de tablas
System.
Cada espacio de tabla se guarda en disco en uno o
mas archivos denominados archivos de datos
(datafile).
Cada archivo de datos pertenece a un y solo un
espacio de tablas.
Estructuras de almacenamiento
Redo logs: Son registros de todas las transacciones. Se
usan para recuperar las transacciones de una base de
datos en caso de falla.
Control files: Los archivos de control mantienen la
estructura fsica de la base de datos. Registran
informacin de control acerca todos los archivos de la
base de datos, mantienen consistencia interna y guan
las operaciones de recuperacin.
Trace files: Los archivos de rastreo contienen
informacin de eventos significante encontrados por los
procesos de fondos (hablaremos de estos mas adelante).
Alert log: Los registros de alerta guardan los comandos y
sus resultados de los principales eventos en la base de
datos.
Relaciones entre Datafiles y Tablespaces
Un Tablespace puede estar repartido entre uno o mas Datafiles.
Dentro de los tablespaces y datafiles, el espacio utilizado para
almacenar datos es controlado por el uso de ciertas estructuras; stas
son las siguientes:
Ficheros de la BD
Ficheros redo log
Ficheros de control
Ficheros de Traza
Estructuras de almacenamiento
La Capa Fsica
Son los archivos fisicos en disco. Hay tres
clases
Datafiles
Contienen la informacin propiamente dicha.
Puede haber uno o mas.
Redo Logs
Mantienen la historia en los cambios en los datos
para revertirlos en caso de fallas.
Control Files
Contienen Informacin sobre localizacin fsica de
Datafiles y Redo Logs.
La Capa Fsica
Tablespaces
Dividen la informacin y los objetos en grupos que pueden
residir en uno o mas datafiles
Esquemas (Schemas)
Contienen objetos como Tablas, Vistas, Procedimientos
almacenados, Triggers, ndices, Secuencias, Sinnimos, etc,
Esencialmente son: espacios de tabla
(tablespaces), archivos de control y segmentos
(de datos, de ndice, temporales, de
restauracin), extensiones, bloques de datos y
divisin de datos para tablas e ndices.
AREAS LOGICAS Y ARCHIVOS FISICOS
Las reas lgicas se extienden a travs de los archivos fsicos.
Durante la creacin de la Base de Datos se crea por default
un Tablespace llamado SYSTEM y un datafile asociado al
mismo con Ubicacin, Nombre y Tamao especificados.
Durante la creacin tambin se generan automticamente
dos usuarios SYS y SYSTEM con caractersticas de DBA. A
travs de estos usuarios se realizan las operaciones de
mantenimiento, creacin de nuevos tablespaces, usuarios,
esquemas, etc.
Se pueden agregar dinmicamente datafiles y aumentarlos de
tamao.
Los Rollback segments, contienen la informacin de
transacciones en curso que no hayan sido confirmadas con
COMMIT o deshechas con ROLLBACK.
AREAS LOGICAS Y ARCHIVOS FISICOS
Permite:
Asignar ms espacio en disco de forma dinmica, cuando la base de datos crece de
tamao ms de lo previsto.
Controlar la disponibilidad de los datos de la base de datos, poniendo fuera de uso
alguno de esos espacios de tablas individualmente.
Realizar copias de seguridad o recuperaciones parciales de la base de datos.
Reservar espacio para almacenamiento de datos de forma cooperativa entre distintos
dispositivos.
Cada base de datos contiene un tablespace llamado
SYSTEM que es creado automticamente al crear la
base de datos. Contiene las tablas del diccionario
de datos para la base de datos en cuestin.
Es recomendable no cargar datos de usuario en
SYSTEM, para dejarlos como espacio de objetos del
sistema.
Tablas e ndices se ubicarn en el tablespace
indicado en el momento de su creacin con la
correspondiente sentencia CREATE. Si no se dice
nada, se situarn en el tablespace por defecto
asociado al usuario creador
Segmentos, Extensiones y
Bloques
Bloques: Un bloque es la unidad de almacenamiento ms
pequea en una base de datos Oracle. Contiene una pequea
porcin de informacin (header) referente al bloque en s y el
resto a los datos que guarda. Generalmente, un bloque de
datos ocupar aprox. 2 KB de espacio fsico en el disco
(asignacin tpica).
User altered.
User altered.
Espacios Libres y ocupados de
Tablespaces
clear breaks clear computes clear columns set pagesize 50 set linesize 120 set heading on
column tablespace_name heading 'Tablespace' justify left format a20 truncated column tbsize
heading 'Size|(Mb) ' justify left format 9,999,999.99 column tbused heading 'Used|(Mb) ' justify
right format 9,999,999.99 column tbfree heading 'Free|(Mb) ' justify right format 9,999,999.99
column tbusedpct heading 'Used % ' justify left format a8 column tbfreepct heading 'Free % '
justify left format a8 break on report compute sum label 'Totals:' of tbsize tbused tbfree on
report select t.tablespace_name, round(a.bytes,2) tbsize, nvl(round(c.bytes,2),'0') tbfree,
nvl(round(b.bytes,2),'0') tbused, to_char(round(100 * (nvl(b.bytes,0)/nvl(a.bytes,1)),2)) || '%'
tbusedpct, to_char(round(100 * (nvl(c.bytes,0)/nvl(a.bytes,1)),2)) || '%' tbfreepct from
dba_tablespaces t, (select tablespace_name, round(sum(bytes)/1024/1024,2) bytes from
dba_data_files group by tablespace_name union select tablespace_name,
round(sum(bytes)/1024/1024,2) bytes from dba_temp_files group by tablespace_name ) a,
(select e.tablespace_name, round(sum(e.bytes)/1024/1024,2) bytes from dba_segments e
group by e.tablespace_name union select tablespace_name, sum(max_size) bytes from
v$sort_segment group by tablespace_name) b, (select f.tablespace_name,
round(sum(f.bytes)/1024/1024,2) bytes from dba_free_space f group by f.tablespace_name
union select tmp.tablespace_name, (sum(bytes/1024/1024) - sum(max_size)) bytes from
dba_temp_files tmp, v$sort_segment sort where tmp.tablespace_name = sort.tablespace_name
group by tmp.tablespace_name) c where t.tablespace_name = a.tablespace_name (+) and
t.tablespace_name = b.tablespace_name (+) and t.tablespace_name = c.tablespace_name (+)
order by t.tablespace_name
Espacio Libre de Tablespaces
SELECT * FROM DBA_FREE_SPACE
ORDER BY TABLESPACE_NAME, BYTES;
Filas por bloque por tabla.
Select avg(row_count) avg,
max(row_count) max, min(row_count)
min from (select count(9) row_count from
&table_name group by substr(rowid, 1,
15));
En el siguiente ejemplo te muestro como es que se dimensionan los objetos, es casi preciso y tiene una
variacin ya que son estimaciones dependiendo la tendencia de la tabla, ya que puedes dividirla en tablas
histricas, de catlogo, temporales o de agregacin, dependiendo de estas tendencias, la configuracin es
diferente por su dinamismo que cumplen en la BD.
Calcula la cantidad de espacio que se va a utilizar en la cabecera del bloque, el tamao de la cabecera es de 90
bytes, si utilizas un bloque de 2K quedarn 1.958 libres mientras que si utilizas uno de 4K habra 4.006 bytes
libres
A continuacin multiplica el espacio libre por el factor que viene determinado el enl parmetro PCTFREE del
segmento para determinar el espacio que se va a reservar para la actualizacin de filas.
Si utilizas un valor de PCTFREE de 10, multiplica el espacio libre disponible por 0,10 tal y como se muestra a
continuacin:
del espacio disponible, 196 bytes son para las aplicaciones de las filas. El espacio libre disponible es el espacio
libre del bloque menos el espacio reservado por PCTFREE:
En el siguiente paso habr que calcular el espacio que se va a utilizar por fila. para ello haya que estimar primero la
"longitud media de las filas" AVERAGE LENGTH de cada valor de una fila. si no dispones de ningn dato, realiza una
estimacin de la longitud real de los valores de una columna. No utilices como longitud real la longitud de una
columna a menos que los datos vayan a llenar siempre por completo la columna.
Por ejemplo vamos a suponer que tenemos una tabla de tres columnas de tipo VARCHAR2(10). La longitud media de
las filas no puede exceder de 30 posiciones su longitud real depende de los daros que se vayan a almacenar en ellas.
Si dispones de algn dato de ejemplo, podras utilizar la funcin de Oracle VSIZE para determinar el espacio real que
han utilizado los datos. ejemplo:
select AVG(NVL(VSIZE(Columna1),0))+
AVG(NVL(VSIZE(Columna2),0))+
AVG(NVL(VSIZE(Columna3),0))) Long_media
from tabla
/
En este ejemplo se han calculado la longitud media de cada columna y luego se han sumado esas medias para
determinar la longitud media o el Average Lenght.
Vamos a suponer que en el ejemplo la longitud media de las filas es de 24 bytes. A esta cantidad total vamos a
sumarle 1 byte por cada columna que ya haya en la tabla, da un total de 27 bytes por fila. Si en la tabla hay
columnas que contienen datos de ms de 250 caracteres, aade un byte adicional por cada una de esas columnas,
por ltimo aade 3 bytes para la cabecera de la fila.
Espacio utilizado = longitud media + 3 + numero de columnas +numero de columnas extensas.
En la tabla ejemplo el espacio por fila es el siguiente:
espacio utilizado por file= 24 + 3 + 3 + 0 = 30 bytes por fila.
Dado que disponemos de 1.762 bytes y 30 bytes por fila, se puede incluir 58 filas pen cada bloque.
filas por bloque =TRUNC(1762 BYTES LIBRES / 30 BYTES OIR FILA) = 58 FILAS POR BLOQUE.
al poderse incluir 58 filas por bloque, en cuanto puedas estimar el nmero de filas que esperas que haya, podrs
estimar el nmero de bloques de datos de Oracle que se requieren.
Para obtener el tamao en MB de los ndices
creados de un esquema podemos utilizar esta
query.
SELECT SUM(BYTES)/1024/1024 MB
FROM DBA_EXTENTS;
SELECT SUM(bytes)/1024/1024 MB
FROM dba_data_files;
TAMAO OCUPADO POR UNA
TABLA CONCRETA SIN INCLUIR
LOS NDICES DE LA MISMA
SELECT SUM(bytes)/1024/1024 MB
FROM user_segments WHERE
segment_type='TABLE' AND
segment_name='NOMBRETABLA';
TAMAO OCUPADO POR UNA TABLA
CONCRETA INCLUYENDO LOS NDICES
DE LA MISMA
SELECT SUM(bytes)/1024/1024
Table_Allocation_MB FROM user_segments
WHERE segment_type in ('TABLE','INDEX')
AND(segment_name='NOMBRETABLA' OR
segment_name IN (SELECT index_name
FROM user_indexes WHERE
table_name='NOMBRETABLA'));
TAMAO OCUPADO POR UNA
COLUMNA DE UNA TABLA
SELECT
SUM(vsize('Nombre_Columna'))/1024/1
024 MB FROM Nombre_Tabla;
Ejemplo:
SELECT NAME FROM V$CONTROLFILE;
Online Ficheros de Logs de
Rehacer (Online Redo Logs)
Estos ficheros guardan todas las
transacciones que an no se han transferido
de la memoria al datafile, de esta manera si
hubiera un fallo de la base de datos, esta
recuperara automticamente hasta la ltima
transaccin realizada en la misma.
Se graban en ellos todas las operaciones que
se efectan en la Base de Datos que tiene
que ver con transacciones de tipo Insert,
Update, Delete.
Ficheros de rehacer archivados
(Archived Redo Log File)
Para aadir ficheros de log de rehacer, se ha
de utilizar la instruccin ALTER DATABASE
con la clusula ADD LOGFILE.
ALTER DATABASE
Instalacin
BSICA
AVANZADA
Enterprise Edition
Standard Edition: grupo pequeo de trabajo, PYMES
Personal Edition: entorno de desarrollo y despliegue
monousuario
Requisitos, instalacin y primeros pasos
Al final de la instalacin:
nombre de la BD (por defecto ORCL)
SID: identificador del sistema
Nombre del archivo de parmetros del
servidor
URL: para acceder al sistema
Requisitos, instalacin y primeros pasos
Primeros pasos
Inicio de una instancia
Arrancar el servidor de la BD
Iniciar una instancia de BD
Asociar la BD a una instancia
Abrir la BD
Espacio total
Estructuras lgicas: tablas, bases de datos
Estructuras fsicas: archivos de datos, bloques de datos
Administracin del espacio y
creacin manual de la base de datos
Realizacin
Yanet Evangelista