Uba Oracle

download Uba Oracle

of 34

description

Oracle

Transcript of Uba Oracle

  • Bases de Datos OracleConceptos Basicos

  • Temario:

    1- ARQUITECTURA DE ORACLE2- LA INSTANCIA ORACLE3- CREACIN DE UNA BASE DE DATOS4- AREAS LOGICAS Y ARCHIVOS FISICOS5- MANEJO DE DATOS6- OBJETOS FUNDAMENTALES DE LA BASE7- ADMINISTRACION DE USUARIOS

  • ARQUITECTURA DE ORACLE

    La Base de Datos La Capa Fsica La Capa Lgica

  • La Capa Fisica

    Son los archivos fisicos en disco. Hay tres clases

    DatafilesContienen la informacin propiamente dicha.Puede haber uno o mas.Redo LogsMantienen la historia en los cambios en los datos para revertirlos en caso de fallas.Control FIlesContienen Informacin sobre localizacin fisica de Datafiles y Redo Logs.

  • La Capa Logica

    Son las estructuras que relacionan los datos con los componentes fisicos.

    TablespacesDividen 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,

  • Relaciones entre Datafiles y Tablespaces

    Un Tablespace puede estar repartido entre uno o mas datafiles.

  • 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.

  • 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 informacinVistas: Seleccin de varias columnas de una o mas tablasProcedimientos: Programas que independizan el manejo de datos desde una aplicacin. Actuan desde el motor de la Base de DatosPackages: Agrupan procedimientos y funciones almacenadosTriggers: Procedimiento que ejecuta automaticamente asociado a eventos especificos.Secuencias: Generan numeros unicos para todas las sesiones de una instanciaDBLink: 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

  • Arquitectura Oracle

  • Arquitectura Oracle

    La instancia Oracle esta compuesta por:

    Procesos y memoria compartida

    Procesos: De usuario - Server Process. Comunes - DBWR, LGWR, CKPT, PMON, SMON, ARCH

    Memoria; SGA - System Global Area PGA - Program Global Area

  • Procesos de la InstanciaArquitectura OracleDBWR - Database Writer, responsable de la escritura en disco de la informacinLGWR - Log Writter, escribe la informacin en los redo Logs.CKPT - Checkpoint, Avisa al DBWR que debe actualizar la informacin a disco.PMON - Process Monitor, Supervisa los procesos del servidor y corrige fallasSMON - System Monitor, Actua durante el arranque de la instancia, limpia segmentos temporales y recupera transacciones interrumpidas. Agrupa extensiones libres.ARCH - Archiver, Respalda la informacion de los Redo Logs cuando estos se llenan.

  • Areas de Memoria de la InstanciaArquitectura OracleSGA - System Global Area, Area de memoria compartida que almacena informacin de control y datos de la instancia. Consta de los siguientes elementos, cada uno con un tamao fijo:Buffer Cache - Almacena los bloques de datos usados recientemente.Buffer de Redo Logs: - Guarda los cambios efectuados en la base de datos antes de ser guardada en los redo logs.Shared Pool Area - Memoria compartida que funciona como dos caches, una para informacin del diccionario de datos y otra de codigo SQL. PGA - Program Global Area, Contiene datos e informacin de control para los procesos que se ejecutan en el servidor de oracle.

  • CREACIN DE UNA BASE DE DATOSCrear una instanciaLa 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 instanciaPuede 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 DatosTambien 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.

  • 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.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.

  • MANEJO DE DATOS

    EXPORTGenera un archivo binario conteniendo informacin de los objetos seleccionados. Registra tanto datos como estructuras.

    Usos:Respaldo del contenido de la base de datosLlevar datos de una base a otraReplicar estructuras en bases de datos diferentesReconstruir y defragmentar bases de datosReordenar datafilesOpciones:Se puedenn especificar en linea de comandos o a traves de un archivo de parametros.

    IMPORTIncporpora 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.

  • 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 tiempoEl 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

    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 exportardatos. El valor por defecto es N.

    MANEJO DE DATOS

  • Opciones del comando EXPORT (Cont.)

    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.

    ROWS=[Y o N] Se utiliza para exportar todos los datos de las tablas o solo la estructura de los objetosY - Exportar Estructuras y datosN - 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 esquemaMANEJO 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 importacinEl 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 importarMANEJO DE DATOS

  • Los objetos fundamentales de una base de datos son:

    TablasVistasSinonimosIndicesSecuencias

    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 bytesNEXT:Tamao de la segunda extensionPCTINCREASE: 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 segundaMINEXTENTS: Cuntas extensiones se crean al mismo tiempo de la tablaMAXEXTENTS: Mxima cantidad de extensiones que podr tener la tabla

    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.Baja:u en torno a 60OBJETOS 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

    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

    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 repitaIndice 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

    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, ...])TABLESPACE nombre_tablespace ;

    Al igual que las tablas, los indices tambien pueden ser particionadosOBJETOS 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

    OBJETOS FUNDAMENTALES DE UNA BASE

  • Sinonimos

    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 OBJETOS FUNDAMENTALES DE UNA BASE

  • 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.

    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_usuarioIDENTIFIED 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]

    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_usuarioIDENTIFIED 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]

    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.

    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 usuariosAdministradores: Tienen acceso a recursos ilimitadosDesarrolladores: Mmero ilimitado de sesiones Restriccines en utilizacin de la CPUOtros.

    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_SGACon las siguientes posibilidades: UNLIMITED | DEFAULT | cantidad

    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;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.ADMINISTRACION DE USUARIOS

    *