Professional Documents
Culture Documents
Segmentos (Segments).- Grupo de extensiones que forman un objeto de la base de datos, como por
ejemplo una tabla o un ndice.
El segmento de datos es una coleccin de extensiones que mantiene todos los datos para una tabla
o cluster.
Enero 2014
Espacio de tablas (Tablespaces).- Formado por uno o ms archivos de datos (datafiles) del SO, donde
cada datafile solo puede pertenecer a un determinado tablespace y una base de datos. Representan un
nivel medio entre la BD y los datafiles.
El SGBD tiene estructuras lgicas y fsicas que el administrador ha de gestionar. Las estructuras fsicas son
aquellas se pueden ver en el sistema operativo como son los archivos; mientras que las estructuras lgicas
slo se pueden ver desde el manejador de base de datos, como son por ejemplo los tablespaces.
Los usuarios ms avanzados tendrn conocimiento de la estructura lgica de la base de datos, y es
responsabilidad del DBA gestionar la correspondencia entre las estructuras lgicas y fsicas para tener un
rendimiento ptimo.
Vistas con informacin del espacio usado por los objetos en la base de datos de Oracle:
Vista
DBA_SEGMENTS
USER_SEGMENTS
Descripcin
Vista DBA describe el espacio asignado para todos los segmentos de la base de datos.
Vista del usuario describe el espacio asignado para los segmentos del usuario actual.
Vista DBA describe las extensiones que comprenden todos los segmentos en la base de
DBA_EXTENTS
datos.
Vista del usuario se describen las extensiones que comprenden segmentos para el usuario
USER_EXTENTS
actual.
DBA_FREE_SPACE Vista DBA lista de extensiones libres en todos los espacios de tablas.
Vista de usuario muestra informacin de espacio libre para los espacios de tablas donde el
USER_FREE_SPACE usuario tenga cuota.
Informacin de los segmentos (segments).
La siguiente consulta regresa el nombre y tamao de cada segmento de ndice del usuario HR
select segment_name, tablespace_name, bytes, blocks, extents
from dba_segments
where segment_type = 'index' and owner='hr'
Enero 2014
order by segment_name;
Informacin de las extensiones (extens)
La informacin de las extensiones usadas actualmente en una base de datos es almacenada en la vista del
diccionario de datos DBA_EXTENTS. Por ejemplo, la siguiente consulta identifica las extensiones usadas
por cada segmento de ndice en el esquema HR y el tamao de cada uno de las extensiones:
select segment_name, segment_type, tablespace_name, extent_id, bytes, blocks
from dba_extents
where segment_type = 'index' and owner='hr'
order by segment_name;
Informacin del espacio libre (Extensiones) en un Tablespace
La informacin acerca de las extensiones libres (extensiones no usadas por ningn segmento) en una base
de datos es almacenada en la vista del diccionario de datos DBA_FREE_SPACE. Por ejemplo, la siguiente
consulta muestra la cantidad de espacio libre como extensiones libres in el Tablespace SMUNDO.
select tablespace_name, file_id, bytes, blocks
from dba_free_space
where tablespace_name='smundo';
Verificar el tamao del bloque de datos (bllock) en la Base de Datos
select value from v$parameter where name = 'db_block_size';
Verificar el tamao de la Base de Datos
select sum(bytes)/1024/1024 "Megabytes" from dba_data_files;
Datafiles (Archivos de datos).- Sirven para el almacenamiento fsico de la base de datos y contienen
todos los datos de la base de datos, como las tablas e ndices.
Redo Log files (Archivos de rehacer).- Mantienen registros de todos los cambios hechos a la base de
datos, con fines de recuperacin. El principal propsito de estos archivos es servir de respaldo de los datos
en la memoria RAM. Este conjunto de archivos debe estar conformado por dos grupos como mnimo y se
recomienda que cada grupo est almacenado en discos separados. El DBMS utiliza la tcnica de ir sobre
escribiendo sobre la informacin ms vieja, cuando se agota el espacio en estos grupos de archivos.
Control files (Archivos de control).- Almacenan la estructura fsica y el estado de la base de datos. En
estos archivos se especifican cules datafiles conforman la base de datos para poder tener acceso a los
Enero 2014
datos o para poder recuperar la base de datos, ante una falla. Los archivos de control se crean
automticamente cuando se da una orden CREATE DATABASE y no son editables, se actualizan
automticamente.
Archived files (Archivos fuera de lnea).- Son archivos opcionales donde se guarda informacin vieja de
los archivos de rehacer (Redo log files), muy convenientes para los respaldos de la base de datos.
3.1.2 - Definicin y creacin del espacio asignado para cada base de datos.
Una base de datos se divide en unidades lgicas denominadas TABLESPACES. Un tablespace no es un
archivo fsico en el disco, simplemente es el nombre que tiene un conjunto de propiedades de
almacenamiento que se aplican a los objetos (tablas, secuencias) que se van a crear en la base de datos
bajo el tablespace indicado (tablas, secuencias). Un espacio de tablas puede pertenecer slo a una BD.
Un objeto en la base de datos debe estar almacenado obligatoriamente dentro de un tablespace.
Cuando se crea una tabla se debe indicar el espacio de tablas (Tablespace) al que se destina. Por defecto
se depositan en el espacio de tablas SYSTEM.
Cuando se crea un nuevo Tablespace, la capacidad total del tablespace coincidir con la suma de los
tamaos de los archivos de datos (datafiles) asociados.
Por ejemplo:
create tablespace app_data
datafile /u03/oradata/ userdata01. dbf size 100m,
datafile /u03/oradata/ userdata02. dbf size 250m;
En este caso se crea un tablespace app_data asociado a dos archivos con una capacidad total de 350M.
Si se quiere incrementar el tamao de la base, se puede hacer incrementando el tamao de un archivo de
datos (data files) de un Tablespace en particular.
Por ejemplo:
alter database datafile /u03/oradata/ userdata02. dbf resize 200m;
Si no se tiene espacio libre en la particin del disco, entonces se puede agregar otro archivo de datos (data
files) sobre otra particin de disco para un Tablespace en particular.
Por ejemplo:
alter tablespace app_data add datafile /u01/oradata/ userdata03. dbf size 200m;
3.1.3 - Bitcoras
Las bitcoras, son las estructuras de datos ms ampliamente usada para grabar las modificaciones de la
base de datos.
Cada registro de la bitcora escribe una nica escritura de base de datos y tiene lo siguiente:
1. Nombre de la transaccin: Nombre o nmero de la transaccin que realiz la operacin de escritura.
2. Nombre del dato: El nombre nico del dato escrito.
3. Valor antiguo: El valor del dato antes de la escritura.
4. Valor nuevo: El valor que tendr el dato despus de la escritura.
Existen otros registros de bitcora especiales para grabar sucesos importantes durante el proceso de
transaccin tal como:
Enero 2014
Cada base de datos en SQL Server tiene un Transaction Log asociado con ella. El transaction log (en
espaol bitcora de transacciones) es un componente escencial de SQL Server, el cual la utiliza para
registrar un historial de cada modificacin que sufre la base de datos como resultado de las transacciones.
Dicho registro es de vital importancia para mantener la integridad de los datos y poder deshacer los
cambios resultantes de transacciones incompletas ya sea por error del sistema o por la cancelacin por
parte de los usuarios.
Durante la operacin de la base de datos la escritura a la bitcora tiene prioridad, es decir, todos los
cambios primero se escriben a la bitcora y luego se aplican a la base de datos.
Debido a su importancia, es imperativo respaldar la bitcora regularmente ya que de no hacerlo, ser
imposible recuperar la base de datos en caso de falla.
Respaldo de la bitcora de transacciones
Transaction Log Backup: Este tipo de respaldos slo puede ser ejecutado sobre base de datos que tengan
configurado el mode de recuperacin en Full o Bulk-Logged. Adicionalmente, slo podrn ejecutarse
despus que se haya completado un respaldo completo (full backup).
El siguiente es el comando bsico para respaldar la bitcora de transacciones:
backup log adventureworks2008r2
to disk='c:\bklog\adventureworks2008r2.trn' with init
3.1.4 - Particiones
Una particin es una divisin de una base de datos lgica o sus elementos constituyentes en partes
independientes.
La creacin de particiones en una base de datos mejora el rendimiento y simplifica el mantenimiento. Al
dividir una tabla grande en tablas individuales ms pequeas, las consultas que tengan acceso nicamente
a una parte de los datos pueden ejecutarse con mayor rapidez, ya que deben recorrer menos datos. Las
tareas de mantenimiento (por ejemplo, volver a generar los ndices o hacer copias de seguridad de una
tabla), pueden ejecutarse con mayor rapidez.
Una aplicacin popular y favorable es en un Sistema de Administracin de Base de Datos Distribuida. Cada
particin puede ser extendida hasta mltiples nodos, y los usuarios en el nodo pueden hacer transacciones
locales en la particin. Esto aumenta el rendimiento en sitios que tienen transacciones regularmente
involucrando ciertas vistas de datos, y manteniendo la disponibilidad y la seguridad.
Esta particin puede hacerse creando bases de datos ms pequeas separadas (cada una con sus propias
tablas, ndices, y registros de transacciones) o dividiendo elementos seleccionados, por ejemplo, solo una
tabla.
Particiones horizontales
La creacin de particiones horizontales divide una tabla en varias tablas. As, cada tabla contiene el mismo
nmero de columnas, pero menos filas. Por ejemplo, se podra crear una particin horizontal de una tabla
que contenga mil millones de filas en 12 tablas; cada una de las tablas ms pequeas representara un
mes de datos de un ao especfico. Las consultas que requieran datos de un mes especfico slo hacen
referencia a la tabla apropiada.
La determinacin del modo de crear particiones horizontales de las tablas depende de cmo se analicen los
datos. Debera crear particiones de tablas de forma que las consultas hagan referencia al menor nmero
posible de tablas. De lo contrario, un nmero excesivo de consultas UNION, utilizadas para mezclar las
tablas de forma lgica en el momento de la consulta, podra afectar al rendimiento.
Particiones verticales
Enero 2014
La creacin de particiones verticales divide una tabla en varias tablas que contienen menos columnas. Los
dos tipos de particiones verticales son la normalizacin y la divisin de filas:
La divisin de filas divide verticalmente la tabla original en tablas con menos columnas. Cada fila
lgica de una tabla dividida coincide con la misma fila lgica en las dems tablas, segn se
identifica en la columna UNIQUE KEY que es idntica en todas las tablas con particiones. Por
ejemplo, al combinar la fila con el Id. 712 de cada tabla dividida se vuelve a crear la fila original.
Igual que las particiones horizontales, las particiones verticales permiten a las consultas recorrer menos
datos. De ese modo se aumenta el rendimiento de las consultas. Por ejemplo, una tabla que contenga siete
columnas de las cuales generalmente slo se hace referencia a las cuatro primeras, puede beneficiarse de
la divisin de las tres ltimas columnas en una tabla independiente.
La creacin de particiones verticales se debe considerar detenidamente, ya que analizar datos de varias
particiones requiere consultas que combinen las tablas. La particin vertical tambin puede afectar al
rendimiento si las particiones son muy grandes.
3.1.5 Espacios privados
PRIVATE_SGA Define la cantidad de espacio privado que una sesin puede reservar en la zona de SQL
compartido de la SGA.
3.1.6 Espacios para objetos
3.2 - Segmentos
Un segmento (segment) es aquel espacio reservado por la base de datos, dentro de un archivo de datos
(datafile), para ser utilizado por un solo objeto. As una tabla (o cualquier otro objeto) est dentro de su
segmento, y nunca podr salir de l, ya que si la tabla crece, el segmento tambin crece con ella.
Fsicamente, todo objeto en base de datos no es ms que un segmento (segmento, trozo, seccin) dentro
de un archivo de datos (datafile). Se puede decir que, un segmento es a un objeto de base de datos, lo que
un datafile a un tablespace: el segmento es la representacin fsica del objeto en base de datos (el objeto
no es ms que una definicin lgica).
Se puede ver cmo el espacio que realmente se ocupa dentro del datafile es el segmento y que cada
segmento pertenece a un objeto.
Enero 2014
Segmentos TEMPORALES: aquellos que se usan para realizar operaciones temporales que no
pueden realizarse en memoria, tales como ordenaciones o agrupaciones de conjuntos grandes de
datos.
Shared pool (Fondo Comn Compartido): almacena parte del diccionario de datos y las sentencias
SQL que han sido analizadas.
DataBase Buffer Cache (rea de memoria Rpida): almacena los bloques de datos ledos resultado
de las rdenes SQL ejecutadas por los usuarios conectados.
RedoLogs (rea de registro rehacer): se registran los cambios hechos a la base de datos.
Enero 2014
Procesos del servidor.- Ejecutan las peticiones de los usuarios y devuelven los resultados. Un
proceso del servidor ejecuta las peticiones de un solo proceso de usuario.
Procesos de fondo (background).- Son creados por cada instancia de la BD y se encarga de las
entradas/ salidas del SGA, existen los procesos que son obligatorios, los cuales son:
o Obligatorios (DBWR, LGWR, SMON, PMON, CKPT)
o Opcionales (ARCH, LMON, LCKn, etc)
Para visualizar todos los procesos en segundo plano, puede consultarse la vista v$bgprocess
Una Base de Datos: donde se almacenan los datos fsicos (archivos de datos y otros componentes).
Una instancia: constituye el mecanismo que permite su manipulacin.
Una instancia de Base de datos es el conjunto formado por los procesos y las estructuras de memoria
que se encuentran en un servidor.
Puede haber mltiples instancias para una nica base de datos o mltiples bases de datos en una misma
instancia.
Enero 2014
Enero 2014
10
Cuando se inicia una instancia Oracle monta la base de datos, es decir, asocia dicha instancia a su base de
datos correspondiente. En una misma computadora pueden ejecutarse varias instancias simultneamente,
accediendo cada una a su propia base de datos fsica.
nicamente el administrador de la base de datos puede iniciar una instancia y abrir una base de datos. Si
una base de datos est abierta, entonces el administrador puede cerrarla y, cuando esto ocurre, los
usuarios no pueden acceder a la informacin que contiene.
Enero 2014
11
Datatype
NULL
FILE_NAME
VARCHAR2(513)
FILE_ID
NUMBER
TABLESPACE_NAME VARCHAR2(30)
Description
Name of the database file
NOT
NULL
NOT
NULL
BYTES
NUMBER
BLOCKS
NUMBER
STATUS
VARCHAR2(9)
File status: AVAILABLE or INVALID (INVALID means that the file number is not in
use, for example, a file in a tablespace that was dropped)
RELATIVE_FNO
NUMBER
AUTOEXTENSIBLE
VARCHAR2(3)
Autoextensible indicator
MAXBYTES
NUMBER
MAXBLOCKS
NUMBER
INCREMENT_BY
NUMBER
USER_BYTES
NUMBER
The size of the file available for user data. The actual size of the file minus the
USER_BYTES value is used to store file related metadata.
USER_BLOCKS
NUMBER
ONLINE_STATUS
VARCHAR2(7)
NOT
NULL
DBA_TABLESPACES
DBA_TABLESPACES describes all tablespaces in the database.
Related View
USER_TABLESPACES describes the tablespaces accessible to the current user. This view does not display the PLUGGED_IN column.
Column
Datatype
TABLESPACE_NAME
VARCHAR2(30) NOT
NULL
BLOCK_SIZE
NUMBER
INITIAL_EXTENT
NUMBER
NEXT_EXTENT
NUMBER
Enero 2014
NULL
NOT
NULL
Description
12
Datatype
NULL
Description
MIN_EXTENTS
NUMBER
NOT
NULL
MAX_EXTENTS
NUMBER
PCT_INCREASE
NUMBER
MIN_EXTLEN
NUMBER
STATUS
VARCHAR2(9)
Tablespace status:
ONLINE
OFFLINE
READ ONLY
CONTENTS
VARCHAR2(9)
Tablespace contents:
UNDO
PERMANENT
TEMPORARY
LOGGING
VARCHAR2(9)
FORCE_LOGGING
VARCHAR2(3)
EXTENT_MANAGEMENT
VARCHAR2(10)
ALLOCATION_TYPE
VARCHAR2(9)
PLUGGED_IN
VARCHAR2(3)
SEGMENT_SPACE_MANAGEMENT VARCHAR2(6)
Indicates whether the free and used segment space in the tablespace is
managed using free lists (MANUAL) or bitmaps (AUTO)
DEF_TAB_COMPRESSION
VARCHAR2(8)
RETENTION
VARCHAR2(11)
BIGFILE
VARCHAR2(3)
Enero 2014
13
Datatype
NULL Description
OWNER
VARCHAR2(30)
SEGMENT_NAME
VARCHAR2(81)
PARTITION_NAME
VARCHAR2(30)
SEGMENT_TYPE
VARCHAR2(18)
TABLESPACE_NAME VARCHAR2(30)
HEADER_FILE
NUMBER
HEADER_BLOCK
NUMBER
BYTES
NUMBER
BLOCKS
NUMBER
EXTENTS
NUMBER
INITIAL_EXTENT
NUMBER
Size in bytes requested for the initial extent of the segment at create time. (Oracle
rounds the extent size to multiples of 5 blocks if the requested size is greater than 5
blocks.)
NEXT_EXTENT
NUMBER
MIN_EXTENTS
NUMBER
MAX_EXTENTS
NUMBER
PCT_INCREASE
NUMBER
FREELISTS
NUMBER
FREELIST_GROUPS NUMBER
RELATIVE_FNO
NUMBER
BUFFER_POOL
VARCHAR2(7)
Enero 2014
14