You are on page 1of 67

Bases de Datos Oracle

Conceptos Bsicos

Seminario Linux-Oracle Enterprise

Tareas del Administrador de la Base de Datos


. Planificar y crear bases de datos . Gestionar la disponibilidad de la base de datos . Gestionar las estructuras fsicas y lgicas . Gestionar el almacenamiento basndose en el diseo . Gestionar la seguridad . Administracin de la red . Copia de seguridad y recuperacin . Ajuste de la base de datos
Seminario Linux-Oracle Enterprise

Temario:
1- ARQUITECTURA DE ORACLE 2- LA INSTANCIA ORACLE 3- CREACIN DE UNA BASE DE DATOS 4- AREAS LOGICAS Y ARCHIVOS FISICOS 5- MANEJO DE DATOS 6- OBJETOS FUNDAMENTALES DE LA BASE 7- ADMINISTRACION DE USUARIOS

Seminario Linux-Oracle Enterprise

ARQUITECTURA DE ORACLE
La Base de Datos La Capa Fsica La Capa Lgica

Seminario Linux-Oracle Enterprise

Arquitectura Oracle

Seminario Linux-Oracle Enterprise

Seminario Linux-Oracle Enterprise

Seminario Linux-Oracle Enterprise

Seminario Linux-Oracle Enterprise

Seminario Linux-Oracle Enterprise

Seminario Linux-Oracle Enterprise

LA ESTRUCTUR DE MEMORIA

Seminario Linux-Oracle Enterprise

REA GLOBAL DEL SISTEMA

Seminario Linux-Oracle Enterprise

CONJUNTO COMPARTIDO

Seminario Linux-Oracle Enterprise

Cach de Biblioteca

Seminario Linux-Oracle Enterprise

Cach de Diccionario de Datos

Seminario Linux-Oracle Enterprise

Cach de Buffers de Base de Datos

Seminario Linux-Oracle Enterprise

Buffer de Redo Log

Seminario Linux-Oracle Enterprise

Conjunto Grande

Seminario Linux-Oracle Enterprise

rea Global de Programas

Seminario Linux-Oracle Enterprise

Estructura de Procesos

Seminario Linux-Oracle Enterprise

Procesos de Usuario

Seminario Linux-Oracle Enterprise

Procesos de servidor

Seminario Linux-Oracle Enterprise

Procesos en Segundo Plano

Seminario Linux-Oracle Enterprise

DBWn Escritor de la Base de Datos

Seminario Linux-Oracle Enterprise

LGWR Escritura de Logs

Seminario Linux-Oracle Enterprise

SMOn Monitor del Sistema

Seminario Linux-Oracle Enterprise

PMON

Monitor de Procesos

Seminario Linux-Oracle Enterprise

CkPT

Punto de Control

Seminario Linux-Oracle Enterprise

ARCn

Archiver

Seminario Linux-Oracle Enterprise

Estructura

Lgica

Seminario Linux-Oracle Enterprise

La Capa Fisica
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 fisica de Datafiles y Redo Logs.

Seminario Linux-Oracle Enterprise

La Capa Logica
Son las estructuras que relacionan los datos con los componentes fisicos.
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, Indices, Secuencias, Sinonimos, etc,

Seminario Linux-Oracle Enterprise

Relaciones entre Datafiles y Tablespaces


Un Tablespace puede estar repartido entre uno o mas datafiles.

Seminario Linux-Oracle Enterprise

Segmentos, Extensiones y Bloques


Bloques: Unidad de almacenamiento minimo. Tipicamente 2K. Contiene Datos almacenados y un Header que los describe Extensiones: Grupo de Bloques de Datos. Cada Tablespace tiene una tamao inicial y crece en extensiones de una cantidad fija de bloques a medida que se requiere. Segmentos: Grupo de Extensiones usado para almacenar un tipo particular de datos. Existen 4 tipos: Datos, Indices, Rollback y Temporales.
Seminario Linux-Oracle Enterprise

Oracle Universal Installer

Seminario Linux-Oracle Enterprise

Oracle Universal Installer

Seminario Linux-Oracle Enterprise

Asistente de configuracion de Bases de Datos Oracle dbca

Seminario Linux-Oracle Enterprise

Usuarios Administradores de Oracle

Seminario Linux-Oracle Enterprise

SQLPLUS

Seminario Linux-Oracle Enterprise

Enterprise Manager

Seminario Linux-Oracle Enterprise

Enterprise Manager

Seminario Linux-Oracle Enterprise

Esquemas de Base de Datos (Schema)


Coleccin de Objetos logicos.
Tablas: Unidad logica basica de almacenamiento. Clusters:Grupo de tablas almacenadas en conjunto fisicamente como una sola tabla que comparten una columna Indices: Estructura que agrupa datos para acceder rapidamente a la informacin Vistas: Seleccin de varias columnas de una o mas tablas Procedimientos: Programas que independizan el manejo de datos desde una aplicacin. Actuan desde el motor de la Base de Datos Packages: Agrupan procedimientos y funciones almacenados Triggers: Procedimiento que ejecuta automaticamente asociado a eventos especificos. Secuencias: Generan numeros unicos para todas las sesiones de una instancia DBLink: Nexo de comunicacin entre instancias de base de datos. Sinonimos: Son referencias a objetos de la propio esquema, otros esquemas o esquemas de otras instancias de base de datos relacionadas a traves de un DBLink
Seminario Linux-Oracle Enterprise

CREACIN DE UNA BASE DE DATOS


Crear una instancia
La creacin de una instancia, generalmente se lleva a cabo desde una herramienta (p/ej, DBA Studio). Tambien puede hacerce desde linea de comandos usando el utilitario ORADIM90. Se define: Nombre de la Instancia de Base de Datos (SID), Password de la cuenta internal o usuario DBA.

Iniciar la instancia
Puede ser arrancada en forma manual (linea de comandos o Herramientas graficas como Enterprise Manager)o automatica (cron en Unix o Servicio en Windows). Opcionalmente se puede montar una Base de Datos, y abrirla a los usuarios o restringir el acceso al DBA.

Crear la Base de Datos


Tambien puede ser hecho desde una herramienta como Enterprise Manager o desde linea de comandos. Durante la creacin se informa: Nombre de la Base, SID, Passwor de la cuenta internal, ruta a archivos deinicializacion, (initxxx.ora), ruta de archivos de control y tamao de los datafiles para tablespaces de usuario, sistema y temporales, tamao de redo logs, etc.

Seminario Linux-Oracle Enterprise

Seminario Linux-Oracle Enterprise

AREAS LOGICAS Y ARCHIVOS FISICOS


Las areas logicas se extienden a traves de los arcivos fisicos. Durante la creacion 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 tambien se generan automaticamente dos usuarios SYS y SYSTEM con caracteristicas de DBA, A traves de estos usuarios se realizan las operaciones de mantenimiento, creacion de nuevos tablespaces, usuarios, esquemas, etc. Se pueden agregar dinamicamente datafiles y aumentarlos de tamao. Los Rollback segments, contienen la informacion de transacciones en curso que no hayan sido confirmadas con COMMIT o dehechas con ROLLBACK. Los segmentos de Rollback se usan concurrentemente por varias transacciones. Funcionan como un buffer circular con varias extensiones, Pueden estar ONLINE OFFLINE INVALID, NEEDS RECOVERY o PARTLY AVAILABLE.
Seminario Linux-Oracle Enterprise

AREAS LOGICAS Y ARCHIVOS FISICOS

Redo Logs, Llevan registro de todas las transacciones que se ejecutan sobre la base de datos para poder reconstruir la informacion en caso de falla. La instruccin COMMIT, no termina su ejecucin hasta que no se completa la escritura de estos archivos. Podria decirse que hasta tanto se ejecuta una instruccin COMMIT, la informacin de las transacciones realizadas se almacena en los Rollback Segments,Una vez ejecutado el COMMIT, est informacin pasa a estar en los Redo Logs.

Seminario Linux-Oracle Enterprise

MANEJO DE DATOS
EXPORT Genera un archivo binario conteniendo informacin de los objetos seleccionados. Registra tanto datos como estructuras. Usos: Respaldo del contenido de la base de datos Llevar datos de una base a otra Replicar estructuras en bases de datos diferentes Reconstruir y defragmentar bases de datos Reordenar datafiles Opciones: Se puedenn especificar en linea de comandos o a traves de un archivo de parametros. IMPORT Incporpora a una base de datos la informacin exportada con el comando EXPORT Opciones: Se puedenn especificar en linea de comandos o a traves de un archivo de parametros.
Seminario Linux-Oracle Enterprise

MANEJO DE DATOS
Opciones del comando EXPORT
BUFFER=bytes Especifica el tamao del buffer de copia (en bytes) usado por el utilitario. Si el valor es cero, se recuperan las filas de a una. COMPRESS=[Y o N] Este parmetro indica cmo se tratar la extensin inicial. Y - Se incluir toda la informacin en una nica extensin. N - Se utilizarn los parmetros vigentes para la clusula storage. El valor por defecto es Y. CONSISTENT=[Y o N] Indica si se espera o no a que la informacin que se est exportando sea confirmada. Esta opcin es muy costosa en tiempo El valor por defecto es N. CONSTRAINTS=[Y o N] Define si se exportan las restricciones de las tablas. Por defecto siempre se exportan FILE=nombre_archivo Especifica el nombre del archivo de salida donde quedar la informacin
Seminario Linux-Oracle Enterprise

MANEJO DE DATOS
Opciones del comando EXPORT

FULL=[Y o N] Este parmetro controla la exportacin total o parcial de la base de datos. En caso de responder N, habr que enumerar los objetos a exportar datos. El valor por defecto es N. GRANTS=[Y o N] Permite indicar si se exportaran los permisos (grants) de cada usuario sobre los objetos que son exportados. El valor por defecto es N INDEXES=[Y o N] Este parmetro especifica si se exportaran los ndices El valor por defecto es Y.
Seminario Linux-Oracle Enterprise

MANEJO DE DATOS

Opciones del comando EXPORT


ROWS=[Y o N] Se utiliza para exportar todos los datos de las tablas o solo la estructura de los objetos Y - Exportar Estructuras y datos N - Solo exportar estructuras de los objetos OWNER=usuarios Permite enumerar los esquemas que se exportarn, en caso de ser mas de uno, se separan con coma. TABLES=tablas Permite enumerar las tablas que se van a exportar. Este parmetro solo es aplicable cuando se exporta un solo esquema

Seminario Linux-Oracle Enterprise

MANEJO DE DATOS
Opciones del comando IMPORT FROMUSER=usuario Indica importar solo los objetos del esquema especificado como usuario TOUSER=usuario Fuerza un esquema (indicado como usuario) donde importar los objetos IGNORE=[Y o N] Indica si se desea ignorar los errores que pudieran ocurrir durante la importacin El valor por defecto es N OWNER=usuarios Permite enumerar los esquemas que se exportarn, en caso de ser mas de uno, se separan con coma. TABLES=tablas Permite enumerar las tablas que se van a importar

Seminario Linux-Oracle Enterprise

OBJETOS FUNDAMENTALES DE UNA BASE


Los objetos fundamentales de una base de datos son:

Tablas Vistas Sinonimos Indices Secuencias

Seminario Linux-Oracle Enterprise

OBJETOS FUNDAMENTALES DE UNA BASE


Tablas
Una tabla se crea en un segmento. Este segmento posee una o ms extensiones. Si la tabla crece hasta alcanzar el tamao mximo de una extensin, entonces se crea un segmento nuevo para esa tabla. Las extensiones crecen de la manera en que se definieron cuando se cre la tabla, dentro de la clusula STORAGE. Cuando la clusula anterior no se define para una tabla, se utilizan los parmetros por defecto definidos dentro del tablespace donde reside. Si tampoco existen estos, se utilizan los parmetros del sistema. Las opciones de la clausula STORAGE son las siguientes: INITIAL: Tamao de la extension inicial en bytes NEXT: Tamao de la segunda extension PCTINCREASE: Tamao de las extensiones posteriores a la segunda en porcentaje respecto de la segunda extension. El valor 0 (cero) indica que todas las extensiones tendrn el mismo tamao que la segunda MINEXTENTS: Cuntas extensiones se crean al mismo tiempo de la tabla MAXEXTENTS: Mxima cantidad de extensiones que podr tener la tabla
Seminario Linux-Oracle Enterprise

OBJETOS FUNDAMENTALES DE UNA BASE


Tablas (Cont.) PCTFREE y PCTUSED - Especifican condiciones de almacenamiento estan en relacin con la volatilidad de los datos y cmo gestionar mejor el espacio asignado a cada extensin PCTFREE: Fija el porcentaje de espacio que se reservar en cada bloque de datos de una tabla para futuras actualizaciones de los registros del mismo bloque. El valor que se asigne al parmetro esta relacionado con la frecuencia de updates que se harn a la tabla. Valores recomendados: Tablas con muchas actualizaciones que no necesariamente hagan crecer el registro: alrededor de 10. Tablas en que se incrementa el tamao de las filas frecuentemente: alrededor de 20 Tablas sin actualizaciones o con baja frecuencia es de las mismas: del orden de 5 PCTUSED: Este parmetro est relacionado con la frecuencia de inserciones que se hacen en una tabla. Determina el mnimo porcentaje de espacio usado que ser mantenido para cada bloque de datos, antes de crear el prximo segmento. En funcin de esta frecuencia se sugieren los siguientes valores: Alta: Alrededor de 40. Alta con muchas actualizacines: alrededor de 60. Seminario Linux-Oracle Enterprise Baja:u en torno a 60

OBJETOS FUNDAMENTALES DE UNA BASE


Tablas (Cont.) Tablas particionadas La caracteristica distintiva de las tablas particionadas es cmo se va a almacenar la informacin fsicamente. En el momento de crearlas, se puede elegir qu rangos de datos van a quedar almacenados en un tablespace u otro. La ventaja de esta organizacin es que al poder distribuir los datos entre los tablespaces y estos entre los datafiles, se puede determinar donde estar esa informacin, con las consiguientes posibilidades de optimizacin a saber: Segmentos de datos ms pequeos: influye en forma directa en el rendimiento de las bsquedas ya que cada particin es tratada como si fuera una tabla diferente. Indices ms pequeos: con la particin por rangos es posible crear ndices individuales para cada particin. Respaldo ms rpido: ya que los datos se encuentran en segmentos separados, Se puede paralelizar el procedimiento de respaldo
Seminario Linux-Oracle Enterprise

OBJETOS FUNDAMENTALES DE UNA BASE

Vistas
Una vista es una ventana dentro de una tabla. Permite aislar el uso de la informacin protegiendola y facilitar operaciones que requieran de un modo especial de acceso a las mismas. Se forman de la misma manera en que se realizan las seleccines de registros (instruccin SELECT) sobre una o mas tablas, tambien facilitan el mantenimiento, al poderse modificar las condiciones de seleccin sin afectar a la estructura de datos retornada

Seminario Linux-Oracle Enterprise

OBJETOS FUNDAMENTALES DE UNA BASE


Indices Los indices permiten acceso mas rapido a los datos contenidos en una tabla. Son independientes. Inmediatamente luego de creado el ndice, Oracle comienza a mantenerlo de acuerdo a las inserciones, actualizaciones y eliminaciones de registros de la tabla en la cual se ha implementado. Existen tres tipos de ndices cuya naturaleza depende de la forma en que se crean a saber: - Indice nico funciona como una clave primaria, obligando a que el valor de la columna indexada no se repita - Indice no nico, no impone la restriccin antes descripta- Indice compuesto agrupa varias columnas de la tabla. Es importante el orden en que se ponen las columnas al crear el ndice; la columna ms referenciada debe ser puesta en primer lugar y as sucesivamente. Cuando se crea un ndice tambin se crea un segmento de datos para guardarlo el espacio de almacenamiento usado se ve afectado por la clusula storage que tiene la misma estructura que la explicada para las tablas
Seminario Linux-Oracle Enterprise

OBJETOS FUNDAMENTALES DE UNA BASE


Indices (cont) Consideraciones para el uso de indices: Indexar solo tablas cuando las consultas no accedan a mas del 5% de las filas de una tabla. No indexar tablas que son actualizadas frecuentemente Las consultas con condiciones (WHERE) muy complejas generalmente no usan indices

Reglas para elegir columnas a indexar: - Eleqir aquellas que se utilizan con mayor frecuencia en las clusulas WHERE de las consultas. - No indexar columnas o grupos de columnas en que se repitan muchos vaores - Indexe las columnas que sirven para unir una tabla con otras (join en las consultas). Sintaxis de creacin de ndices: CREATE INDEX nombre_indice ON [esquema.]nombre_tabla (columna1 [, columna2, ...]) Seminario TABLESPACE nombre_tablespace ; Linux-Oracle Enterprise

OBJETOS FUNDAMENTALES DE UNA BASE


Sinonimos

Los sinnimos son objetos del sistema que apuntan a otros objetos. implementan alias de tablas, vistas, secuencias o unidades de programa. Se utilizan para proteger u ocultar al usuario final ciertos detalles del objeto al que apuntan

Los sinnimos pueden ser pblicos o privados. Los primeros son aquellos que residen en el esquema PUBLIC y son vistos por todos los usuarios de la misma base de datos. Los sinnimos privados se crean dentro del esquema de un usuario en particular y slo son visibles para quienes l de acceso Sintaxis de creacin de sinnimos: CREATE [PUBLIC] SYNONYM [schema.]synonym FOR [schema.]objeto
Seminario Linux-Oracle Enterprise

OBJETOS FUNDAMENTALES DE UNA BASE


Secuencias
Devuelven numeros de acuerdo a un orden definido en su creacin, garantizando su irrepetibilidad En la creacin de una secuencia, se deben indicar, como mnimo, el valor de partida (valor mnimo) y el incremento. La sintaxis de creacin de una secuencia es la siguiente: CREATE SEQUENCE [schema.]nombre opciones Las opciones pueden ser: INCREMENT BY numero, START WITH numero MAXVALUE numero | NOMAXVALUE MINVALUE numero | NOMINVALUE CYCLE | NOCYCLE CACHE numero | NOCACHE ORDER | NOORDER
Seminario Linux-Oracle Enterprise

ADMINISTRACION DE USUARIOS

Usuario: Tiene asociada informacin especifica como nombre, esquema, password

Rol: Utilizado para asignar privilegios a los usuarios

Perfil: Denota la cantidad de recursos del sistema que se permite consumir a un usuario o grupo de ellos.

Seminario Linux-Oracle Enterprise

ADMINISTRACION DE USUARIOS
Creacin de Usuarios
Cuando se da de alta a un usuario como mnimo, debe indicarse el nombre y el password de la cuenta (esquema) que se est creando. Se asigna un espacio fsico al nuevo esquema dentro de la base de datos con los parmetros por defecto. CREATE USER nombre_usuario IDENTIFIED BY password [DEFAULT TABLESPACE nombre_tablespace] [TEMPORARY TABLESPACE nombre_tablespace] [QUOTA [nmero, K o M o UNLIMITED] ON nombre_tablespace1] [, QUOTA [nmero, K o M o UNLIMITED] ON nombre_tablespace2] [PROFILE nombre_perfil] [PASSWORD EXPIRE] [ACCOUNT LOCK o ACCOUNT UNLOCK]

Seminario Linux-Oracle Enterprise

ADMINISTRACION DE USUARIOS
Modificacin de Usuarios
En la modificacin de usuarios, todos los parmetros que fueron establecidos en el instante de la creacin pueden cambiarse ALTER USER nombre_usuario IDENTIFIED BY password [DEFAULT TABLESPACE nombre_tablespace] [TEMPORARY TABLESPACE nombre_tablespace] [QUOTA [nmero, K o M o UNLIMITED] ON nombre_tablespace1] [, QUOTA [nmero, K o M o UNLIMITED] ON nombre_tablespace2] [PROFILE nombre_perfil] [PASSWORD EXPIRE] [ACCOUNT LOCK o ACCOUNT UNLOCK]

Seminario Linux-Oracle Enterprise

ADMINISTRACION DE USUARIOS
Eliminacin de Usuarios

Para eliminar un usuario se utiliza la siguiente instruccin:


DROP USER nombre_usuario [CASCADE]

La opcin Cascade es obligatoria cuando el usuario posee objetos en su esquema (tablas, vistas, etc.) para borrarlos junto con l. Sin esta opcin, no se puede eliminar un usuario con objetos.

Seminario Linux-Oracle Enterprise

ADMINISTRACION DE USUARIOS
Mantenimiento de Perfiles
Los perfiles se usan para limitar las posibilidades de los usuarios del sistema de base de datos. Tipicamente se establecen tres tipos de usuarios Administradores: Tienen acceso a recursos ilimitados Desarrolladores: Mmero ilimitado de sesiones Restriccines en utilizacin de la CPU Otros.
CREATE PROFILE y ALTER PROFILE Los recursos que se puede administrar para un perfil son:
SESSIONS_PER_USER, CPU_PER_SESSION, CPU_PER_CALL CONNECT_TIME, IDLE_TIME LOGICAL_READS_PER_SESSION, LOGICAL_READS_PER_CALL COMPOSITE_LIMIT, PRIVATE_SGA Con las siguientes posibilidades: UNLIMITED | DEFAULT | cantidad

Seminario Linux-Oracle Enterprise

ADMINISTRACION DE USUARIOS
Creacin y asignacin de Roles, control Privilegios
Los Roles son la forma ms segura y rpida de asignar recursos a los grupos de usuarios
CREATE ROLE nombre_rol NOT IDENTIFIED o IDENTIFIED BY password

Para asignar y eliminar roles y privilegios a un usuario se usan los siguientes comandos: Grant: Otorga privilegios a un rol (o a un usuario cualquiera) o tambin asigna un rol a un usuario.
GRANT Rol o Privilegio1, Rol o privilegio 2 TO Usuario o Rol;

Revoke: Elimina privilegios otorgados previamente a un rol (o a un usuario).


REVOQUE Rol o Privilegio 1, Rol o privilegio 2 FROM Usuario o Rol;
Seminario Linux-Oracle Enterprise

ADMINISTRACION DE USUARIOS
Creacin y asignacin de Roles, control Privilegios (Cont.)
Hay algunas opcionas adicionales para administrar Roles y Privilegios
GRANT nombre_rol o nombre_privilegio [, nombre_rol o nombre_privilegio] TO nombre_usuario o nombre_rol o PUBLIC [, nombre_usuario o nombre_rol] [WITH ADMIN OPTION]

Si los privilegios se otorgan a PUBLIC, significa que tidis los usuarios gozaran del mismo. Si los privilegios se otorgan con la clusula with admin option esto quiere decir que los usuarios que reciben los privilegios pueden a su vez otorgarlos a otros.

Seminario Linux-Oracle Enterprise

You might also like