Sei sulla pagina 1di 33

La Arquitectura de la BD ORACLE Servidor Oracle: Instancia Oracle System Global Area (SGA) Procesos Background Base de datos Oracle

le Ficheros de Datos Fichero(s) de Control Ficheros Redo Log.

Base de Datos II

Servidor Oracle:

Base de Datos II

INSTANCIA

Una instancia consiste de una estructura de memoria llamada System Global rea (SGA), y de procesos que operan en background utilizados para administrar la Base de Datos.

Base de Datos II

INSTANCIA

Base de Datos II

System Global rea

El SGA es una regin de memoria que contiene datos e informacin de control para el Server. El SGA se asigna en la memoria virtual del equipo donde reside el Oracle y comprende las siguientes estructuras de memoria: Shared Pool: se usa para almacenar informacin tal como la sentencia SQL ms recientemente utilizada y los datos del diccionario ms recientemente utilizados Database buffer cache: usado para almacenar los datos usados ms recientemente Redo log buffer: usado para registrar los cambios hechos a la base de datos usando la instancia
Base de Datos II

SGA: Shared Pool


En la library cache se almacena informacin sobre las sentencias SQL y PL/SQL, usadas recientemente. Est formada por dos estructuras:

Shared SQL rea; se almacenan los planes de ejecucin y los rboles sintcticos (parse tree) de las sentencias SQL.
Shared PL/SQL rea; contiene las unidades de programa compiladas y analizadas sintcticamente (parsed): procedures, functions, packages y triggers. En la dictionary cache se guardan las definiciones de datos usadas ms recientemente: database files, tablas, ndices, columnas, usuarios, privilegios, etc. Esta informacin se genera y utiliza en la fase de anlisis sintctico (parse); y se obtiene de las tablas del diccionario de datos. Es como una cach de datos para el DD.
Base de Datos II

Base de Datos
PARAMETER FILE CONTROL FILES REDO LOG FILES

ARCHIVED LOG FILES PASSWORD FILE DATAFILES

La Arquitectura de la BD ORACLE comprende una serie de archivos requeridos para su funcionamiento: Archivos de datos : Archivos de control, Archivos de datos y archivos de log de recuperacin Otros archivos importantes son: Archivo de parmetro, Archivo de passwords y archivo de log de recuperacin off line
Base de Datos II

Archivos de Datos

CONTROL FILES: Contienen la informacin necesaria para mantener y verificar la integridad de la base de datos. REDO LOG FILES: Contienen un registro de los cambios realizados en la base de datos para asegurar la reconstruccin de los datos en caso de fallas. DATA FILES: Almacena el diccionario de datos, los objetos del usuario, y los datos.

Base de Datos II

Base de Datos
PARAMETER FILE

PASSWORD FILE

ARCHIVED LOG FILES

Parameter File: usado para definir las caractersticas de la instancia

Password File: Usado para autenticar los usuarios privilegiados de la BD


Archived redo log: copies offline de los redo log files que podran utilizarse para recuperar los datos cuando falla el medio fisico
Base de Datos II

Tablespaces

El tablespace es una estructura lgica creada y conocida por la Base de Datos ORACLE. Consiste de archivos de datos y archivos temporales

Existen tablespaces de datos, tablespaces para operaciones undo.

temporales

Base de Datos II

Tablespaces
Segn la estructura fsica, una BD est compuesta por: el fichero de control, ficheros redo log y ficheros de datos. La estructura lgica nos dice que est compuesta de tablespaces, segmentos, extensiones y bloques. Cada tablespace consiste en uno o ms ficheros del s.o. llamados ficheros de datos (un fichero pertenece a un solo tablespace): Un tablespace slo puede pertenecer a una BD a la vez. Puede tener cero o ms segmentos (un segmento slo pertenece a un tablespace). Exceptuando el tablespace SYSTEM, o aquellos que contengan segmentos de rollback activos, un tablespace se puede poner offline, estando la BD funcionando. Un tablespace se puede poner en modo readonly o readwrite, y viceversa. Tipos de tablespaces: permanent (datos: system, sysaux, aplicaciones), undo (rollback) y temporary (sort). Oracle 10g permite crear bigfile tablespaces, de hasta 8EB (millones de terabytes).
Base de Datos II

Estructura lgica de la base de datos

Cada Base de Datos est lgicamente dividida en uno o ms tablespaces, pero cada tablespace puede pertenecer solamente a una BD. Cada tablespace consiste de 1 o ms archivos de sistema (datafiles) que fsicamente almacenan la estructura lgica mencionada. El tamao combinado de todos los datafiles que conforman un tablespace; es la capacidad de almacenamiento del tablespace, y la suma de estos ltimos es la la capacidad de almacenamiento de la BD. A excepcin del tablespace SYSTEM o un tablespace con un rollback segment activo, los tablespaces pueden ser puestos off line teniendo la BD en actividad Los tablespaces pueden ser tambin de lectura-escritura o slo de lectura
Base de Datos II

ESTRUCTURA LGICA

Existe una jerarqua topdown en esta estructura, consistente en tablespaces, segmentos, extensiones y bloques. Una BDO la forman un grupo de tablespaces. Un tablespace puede contener uno o ms segmentos. Un segmento lo integran una o ms extensiones. Una extensin tendr al menos un bloque. El bloque es la unidad mnima de almacenamiento. El tamao del bloque ser mltiplo del que tenga el SO, y lo determina la variable db_block_size (2K, 4K, 8K, 16K y 32K). Cuando un segmento (tabla, ndice, rollback o temporal) crece, el espacio que se aade es de una extensin. ASM (>=10g). Gestor de volmenes para bases de datos Oracle. Gestiona directamente los discos. Adems distribuye automticamente los datos entre los discos, manteniendo el reparto uniforme cuando se aaden o quitan discos (incluso en caliente). Tambin se encarga de borrar los ficheros que ya no forman parte de la BD.

Base de Datos II

Base de Datos, Tablespaces, Segmentos, Extensiones y Bloques

Base de Datos II

Estructura lgica de la base de datos


DATABASE TABLESPACE DATAFILE

LOGICA

FISICA
SEGMENT

EXTENT

DATABASE BLOCK

O/S BLOCK

Base de Datos II

Estructura lgica de la base de datos


Los tablespaces: son unidades lgicas de almacenamiento que agrupan a su vez estructuras lgicas relacionadas.
Base de Datos

Tablespace SYSTEM
DATA1.ORA 1MB DATA2.ORA 1MB

Tablespace USER
DATA3.ORA 4MB

Base de Datos II

Estructura lgica de la base de datos


Base de Datos
Tablespace SYSTEM

Tablespace USER

DATA1.ORA 1MB

DATA2.ORA 1MB

DATA3.ORA
4MB

- 2 Tablespaces:
System: 2 Datafiles Tamao total: 2MB User: 1 Datafile Tamao total: 4MB
Base de Datos II

- Capacidad total de la BD: 6MB

Relacin entre segments, extents y Data Blocks

Un segmento es el espacio reservado para un tipo especfico de estructura lgica de almacenamiento dentro de un tablespace. Ejemplos:

Segmentos de tablas Segmentos de ndices Segmentos temporales Segmentos de rollback

Extents: Es el siguiente nivel lgico del espacio de la BD. Un extent es un conjunto de n de bloques continuos. Un extent no puede distribuirse en ms de un archivo fsico Data Blocks: Es el nivel ms pequeo de almacenamiento. Un data block se corresponde con 1 o ms bloques de datos fsicos. Se indica en el parmetro DB_BLOCK_SIZE
Base de Datos II

Tablespaces propias y no propias del SYSTEM


Tablespace SYSTEM
Informacin del Diccionario de datos Informacin administrativa de la BD
Contenido en el esquema SYS

Los tablespaces que no son del SYSTEM


Segmentos de Rollback Segmentos Temporary Tablespaces de datos de aplicacin Tablespaces de datos de ndices

Base de Datos II

Administrar el espacio de la base de datos


BASE DE DATOS: TABLESPACES

CONTENIDO

Servidor Dominio Principal y de Base de Datos

SYSTEM
database

Diccionario de Datos Objetos creados por el Servidor de Base de Datos Objetos creados por el usuario : Ej. S_EMP, S_DEPT. Objetos creados temporalmente por el S.B.D. Segmentos de Rollback. Paraprocesamiento de datos.

DATA

TEMPORAL ROLLBACK
Base de Datos II

Creacin de Tablespace: Sintaxis


CREATE TABLESPACE ntablespace DATAFILE especificacin del archivo fisico [DEFAULT STORAGE (clausula storage)] [PERMANENT|TEMPORARY] [ONLINE|OFFLINE];

Se deben tener privilegios especficos: CREATE TABLESPACE Generalmente rol de Administrador de Base
de Datos (DBA).

Base de Datos II

Creacin de Tablespace: Ejemplo


SQL> CREATE TABLESPACE BASED2 DATAFILE 'C:\oracle\oradata\basedatos2.dbf SIZE 50M DEFAULT STORAGE (INITIAL 10K NEXT 50K MAXEXTENTS 100 PCTINCREASE 0) ONLINE;

Base de Datos II

Ampliando un tablespace: Ejemplo


SQL> ALTER TABLESPACE BASED2 ADD DATAFILE 'C:\oracle\oradata\basedatos2_01.dbf SIZE 50M;

Poniendo un tablespace fuera de lnea


SQL> ALTER TABLESPACE BASED2 OFFLINE NORMAL;

Base de Datos II

Eliminacin de un tablespace
SQL> DROP TABLESPACE <espacio de tablas> [INCLUDING CONTENTS [CASCADE CONSTRAINTS]];

INCLUDING CONTENTS: Elimina todos los segmentos en el TABLESPACE CASCADE CONSTRAINTS: Elimina constraints de integridad referencial de las tablas fuera del tablespace que se refieren a las PK de las tablas del tablespace eliminado Observaciones: Si el tablespace contiene an datos se requiere la opcin INCLUDING CONTENTS Se recomienda que el tablespace se ponga OFFLINE antes de eliminarlo, para asegurarse que ninguna transaccin accede a los segmentos del mismo.
Base de Datos II

Espacio de tabla TEMPORARY

Los tablespaces temporales pueden ser utilizados solamente para alojar segmentos de sort y no pueden contener objetos permanentes. Se especifica indicando la opcin TEMPORARY en la creacin del tablespace.

Base de Datos II

Espacio de tabla de ROLLBACK

Un segmento de ROLLBACK es usado para mantener los valores anteriores cuando una transaccin est realizando cambios en la base de datos. Por tanto, almacena bloques de informacin tales como el archivo, el id del bloque y los datos con los valores anteriores. Varias transacciones concurrentes pueden usar un solo rollback segment.

Base de Datos II

Creacin de un segmento de rollback


CREATE [PUBLIC] ROLLBACK SEGMENT <nombre> [TABLESPACE nombre] [STORAGE (clausula de storage)]:

Base de Datos II

Creacin de un segmento de rollback


CREATE ROLLBACK SEGMENT rbs01 TABLESPACE rbs STORAGE (INITIAL 100K NEXT 100K OPTIMAL 4M MINEXTENTS 20 MAXEXTENTS 100);

Base de Datos II

Otros Ejemplos

Se habilita el rollback segment ALTER ROLLBACK SEGMENT RB_TEMP ONLINE; Cambio de asignacin de tablespace por defecto y tablespace temporal para el usuario SYSTEM. ALTER USER SYSTEM TEMPORARY TABLESPACE

TEMPORARY_DATA;
ALTER USER SYSTEM DEFAULT TABLESPACE USER_DATA;

Creacin de rollback segment pblicos (Estimar la cantidad de R.S. De acuerdo a los procesos ejecutados y a los usuarios que son conectados. Se recomienda un R.S. Por cada 4 (cuatro) usuarios conectados) CREATE PUBLIC ROLLBACK SEGMENT RB1 STORAGE(INITIAL 50K NEXT 50K)

TABLESPACE ROLLBACK_DATA;

Base de Datos II

Creacin de Tablas: Sintaxis


CREATE TABLE [esquema.]tabla (columna tipo_dato [DEFAULT expr] [constraint_columna], ... [constraint_tabla]) [TABLESPACE tablespace] [PCTFREE entero] [INITRANS entero] [MAXTRANS entero] [STORAGE (clausula de storage)] [LOGGING | NOLOGGING] [CACHE | NOCACHE] ;

Base de Datos II

Creacin de Tablas: Sintaxis


o initial: tamao, en bytes, de la primera extensin asignada al crearse la tabla (este parmetro no puede asignarse con un ALTER) o next: tamao, en bytes, de la siguiente extensin a asignar. El segundo extent es igual al valor seteado para el parmetro NEXT. Los subsiguientes tienen el tamao del previo mutiplicado por (1+PCTINGREACE/100) o pctincrease: Porcentaje en el que crecer la siguiente extensin en relacin con la ltima extensin utilizada. Si pctincrease es 0, entonces todos los extents que se van incrementando son del mismo tamao. o minextents: nmero de extensiones asignadas en el momento de la creacin del segmento o maxextents: nmero mximo de extensiones, incluyendo la primera que puede ser asignada para un segmento o pctfree: porcentaje de espacio libre para actualizaciones de filas que se reserva dentro de cada bloque asignado al segmento . o pctused: porcentaje de utilizacin del bloque por debajo del cual Oracle considera que un bloque puede ser utilizado para insertar filas nuevas en l. o tablespace: nombre del espacio de tablas donde se crear el segmento para el objeto.

Base de Datos II

Creacin de Tablas: Ejemplo


SQL> CREATE TABLE s_dept 2 (id NUMBER(7) 3 CONSTRAINT s_dept_id_pk PRIMARY KEY, 4 name VARCHAR2(25) 5 CONSTRAINT s_dept_name_nn NOT NULL, 6 region_id NUMBER(7) 7 CONSTRAINT s_dept_region_id_fk REFERENCES 8 s_region (id), 9 CONSTRAINT s_dpt_n_region_id_uk UNIQUE 10 (name, region_id)) 11 TABLESPACE BASED2 12 STORAGE (INITIAL 50K NEXT 10K 13 14 MAXEXTENTS 100 PCTINCREASE 0]);

Base de Datos II

Es posible dividir las tablas en diferentes tablespaces segn su rango


CREATE TABLE emp_adm (empno nombre jefe NUMBER(5) PRIMARY KEY, VARCHAR2(15) NOT NULL, NUMBER(5), DATE DEFAULT (sysdate),

fecha_ingreso

salario
id_dpto

NUMBER(7,2),
NUMBER(3) NOT NULL)

PARTITION BY RANGE(empno)

(PARTITION emp1000 VALUES LESS THAN (1000) TABLESPACE admin_tbs,


PARTITION emp2000 VALUES LESS THAN (2000) TABLESPACE admin_tbs2);
Base de Datos II

Potrebbero piacerti anche