You are on page 1of 504

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

Volumen 1 Gua del Alumno

D11321CS20 Edicin 2.0 Diciembre de 2002 D37533

Autor Marie St. Gelais Revisores Tcnicos Louise Beijer Dairy Chan Trevor Davies Donna Hamby Lutz Hartmann Kuljit Jassar Patricia Mesa Sabiha Miri Howard Ostrow Caroline Pereda Andreas Reinhardt Ajai Sahni Jaco Verheul Editor Shane Mattimoe

Copyright Oracle Corporation, 2002. Todos los derechos reservados. Esta documentacin contiene informacin propiedad de Oracle Corporation; se suministra bajo los trminos de un contrato de licencia que contiene restricciones de uso y de revelacin y est tambin protegida por la legislacin de derechos de autor. Queda prohibida la ingeniera reversa. Si esta documentacin se entrega a una agencia del Ministerio de Defensa del Gobierno de EE.UU., se aplicar la siguiente advertencia de "Restricted Rights": Restricted Rights Legend Use, duplication or disclosure by the Government is subject to restrictions for commercial computer software and shall be deemed to be Restricted Rights software under Federal law, as set forth in subparagraph (c)(1)(ii) of DFARS 252.227-7013, Rights in Technical Data and Computer Software (October 1988). Este material ni ninguna parte del mismo podr ser reproducido en cualquier forma o a travs de cualquier medio sin el expreso consentimiento por escrito de Oracle Corporation. La reproduccin es una violacin de la ley de derechos de autor y puede tener consecuencias penales o civiles. Si esta documentacin se entrega a una agencia del Gobierno de EE.UU. no perteneciente al Ministerio de Defensa, se aplicar la advertencia de "Restricted Rights" definida en FAR 52.227-14, Rights in Data-General, incluido Alternate III (junio de 1987). La informacin contenida en este documento est sujeta a cambio sin previo aviso. Si detecta cualquier problema en la documentacin, le agradeceremos lo comunique por escrito a Education Products, Oracle Corporation, 500 Oracle Parkway, Box SB-6, Redwood Shores, CA 94065. Oracle Corporation no garantiza que este documento est exento de errores. SQL*Loader, SQL*Net, SQL*Plus, Net8, Oracle Call Interface, Oracle7, Oracle8, Oracle 8i, Developer/2000, Developer/2000 Forms, Designer/2000, Oracle Enterprise Manager, Oracle Parallel Server, PL/SQL, Pro*C, Pro*C/C++ y Trusted Oracle son marcas comerciales o marcas comerciales registradas de Oracle Corporation. Todos los dems nombres de compaas y productos mencionados se utilizan a los exclusivos fines de su identificacin y pueden ser marcas comerciales de sus respectivos propietarios.

Contenido

Prlogo Introduccin 1 Componentes de la Arquitectura de Oracle Objetivos 1-2 Visin General de los Componentes Principales 1-3 Oracle Server 1-5 Instancia Oracle 1-6 Establecimiento de una Conexin y Creacin de una Sesin 1-7 Base de Datos Oracle 1-9 Estructura Fsica 1-10 Estructura de la Memoria 1-11 rea Global del Sistema 1-12 Conjunto Compartido 1-15 Cach de Biblioteca 1-16 Cach del Diccionario de Datos 1-17 Cach de Buffers de Base de Datos 1-18 Buffer de Redo Log 1-21 Conjunto Grande 1-22 Conjunto Java 1-24 rea Global de Programas 1-25 Estructura de Procesos 1-28 Procesos de Usuario 1-29 Procesos de Servidor 1-30 Procesos en Segundo Plano 1-31 DBWn (Escritor de Base de Datos) 1-32 LGWR (Escritura de Logs) 1-33 SMON (Monitor del Sistema) 1-34 PMON (Monitor de Procesos) 1-35 CKPT (Punto de Control) 1-36 ARCn (Archiver) 1-37 Estructura Lgica 1-39 Procesamiento de Sentencias SQL 1-42 Resumen 1-44 Prctica 1: Visin General 1-45 Introduccin a Oracle Server Objetivos 2-2 Herramientas de Administracin de Bases de Datos 2-3 Oracle Universal Installer 2-4 Inicio de Oracle Universal Installer 2-5 Instalacin no Interactiva con Archivos de Respuesta 2-6 Asistente de Configuracin de Bases de Datos Oracle 2-9 Usuarios Administradores de Base de Datos 2-10 SQL*Plus 2-12 Oracle Enterprise Manager 2-13
iii

Arquitectura de Oracle Enterprise Manager 2-14 Consola 2-16 Resumen 2-18 Prctica 2: Visin General 2-19 3 Gestin de una Instancia Oracle Objetivos 3-2 Archivos de Parmetros de Inicializacin 3-3 PFILE initSID.ora 3-6 Creacin de un Archivo PFILE 3-7 Ejemplo de PFILE 3-8 SPFILE spfileSID.ora 3-9 Creacin de un Archivo SPFILE 3-10 Ejemplo de SPFILE 3-13 Modificacin de Parmetros de SPFILE 3-14 Comportamiento del Comando STARTUP 3-17 Inicio de una Base de Datos NOMOUNT 3-19 Inicio de una Base de Datos MOUNT 3-20 Inicio de una Base de Datos OPEN 3-21 Comando STARTUP 3-22 Comando ALTER DATABASE 3-25 Apertura de una Base de Datos en Modo Restringido 3-26 Apertura de una Base de Datos en Modo de Slo Lectura 3-29 Cierre de la Base de Datos 3-31 Opciones Shutdown 3-32 Control de una Instancia con Archivos de Diagnstico 3-36 Archivo Log de Alertas 3-37 Archivos de Rastreo en Segundo Plano 3-39 Archivos de Rastreo de Usuario 3-40 Activacin o Desactivacin del Rastreo de Usuario 3-41 Resumen 3-43 Prctica 3: Visin General 3-44 4 Creacin de una Base de Datos Objetivos 4-2 Planificacin y Organizacin de una Base de Datos 4-3 Arquitectura OFA (Optimal Flexible Architecture) 4-4 Ubicaciones de Archivos y Software de Oracle 4-5 Requisitos de Creacin 4-6 Mtodos de Autenticacin para Administradores de Base de Datos 4-7 Uso de la Autenticacin de Archivo de Contraseas 4-8

iv

Creacin de una Base de Datos 4-10 Entorno del Sistema Operativo 4-11 Asistente de Configuracin de Bases de datos 4-12 Creacin de una Base de Datos con el Asistente de Configuracin de Bases de Datos 4-13 Creacin de una Base de Datos Manualmente 4-16 Creacin de una Base de Datos con OMF (Oracle Managed Files) 4-19 Comando CREATE DATABASE 4-23 Solucin de Problemas 4-26 Tras la Creacin de la Base de Datos 4-27 Resumen 4-28 Prctica 4: Visin General 4-29 5 Uso del Diccionario de Datos y las Vistas Dinmicas de Rendimiento Objetivos 5-2 Objetos de Base de Datos Incorporados 5-3 Diccionario de Datos 5-4 Tablas Base y Vistas del Diccionario de Datos 5-5 Creacin de las Vistas del Diccionario de Datos 5-6 Contenido del Diccionario de Datos 5-7 Uso del Diccionario de Datos 5-8 Categoras de las Vistas del Diccionario de Datos 5-9 Ejemplos del Diccionario de Datos 5-11 Tablas Dinmicas de Rendimiento 5-12 Ejemplos de Vistas Dinmicas de Rendimiento 5-13 Reglas de Nomenclatura de Archivos de Comandos Administrativos 5-15 Resumen 5-17 Prctica 5: Visin General 5-18 6 Mantenimiento del Archivo de Control Objetivos 6-2 Archivo de Control 6-3 Contenido del Archivo de Control 6-5 Multiplexacin del Archivo de Control 6-7 Multiplexacin del Archivo de Control al Utilizar SPFILE 6-8 Multiplexacin del Archivo de Control al Utilizar PFILE 6-9 Gestin de Archivos de Control con OMF 6-10 Obtencin de Informacin del Archivo de Control 6-11 Resumen 6-14 Prctica 6: Visin General 6-15

Mantenimiento de Archivos Redo Log Online Objetivos 7-2 Uso de los Archivos Redo Log Online 7-3 Estructura de los Archivos Redo Log Online 7-4 Funcionamiento de los Archivos Redo Log Online 7-6 Forzado de Cambios de Log y de Puntos de Control 7-8 Adicin de Grupos de Archivos Redo Log Online 7-9 Adicin de Miembros de Archivos Redo Log Online 7-10 Borrado de Grupos de Archivos Redo Log Online 7-12 Borrado de los Miembros de Archivos Redo Log Online 7-13 Reubicacin o Cambio de Nombre de los Archivos Redo Log Online 7-15 Limpieza de Archivos Redo Log Online 7-17 Configuracin de los Archivos Redo Log Online 7-18 Gestin de Archivos Redo Log Online con OMF 7-20 Obtencin de Informacin de Miembros y Grupos 7-21 Archivos Redo Log Archivados 7-23 Resumen 7-27 Prctica 7: Visin General 7-28 Gestin de Tablespaces y Archivos de Datos Objetivos 8-2 Tablespaces y Archivos de Datos 8-3 Tipos de Tablespaces 8-4 Creacin de Tablespaces 8-5 Gestin del Espacio de Tablespaces 8-9 Tablespaces Gestionados Localmente 8-10 Tablespaces Gestionados por el Diccionario 8-12 Migracin de un Tablespace SYSTEM Gestionado por un Diccionario 8-13 Tablespace de Deshacer 8-14 Tablespaces Temporales 8-15 Tablespace Temporal por Defecto 8-18 Creacin de un Tablespace Temporal por Defecto 8-19 Restricciones del Tablespace Temporal por Defecto 8-22 Tablespaces de Slo Lectura 8-23 Puesta de un Tablespace Offline 8-26 Cambio de los Valores de Almacenamiento 8-29 Cambio de Tamao de un Tablespace 8-31 Activacin de la Extensin Automtica de Archivos de Datos 8-33 Cambio de Tamao Manual de un Archivo de Datos 8-36 Adicin de Archivos de Datos a un Tablespace 8-37

vi

Mtodos para Mover Archivos de Datos 8-39 Borrado de Tablespaces 8-42 Gestin de Tablespaces con OMF 8-45 Obtencin de Informacin acerca de Tablespaces 8-47 Resumen 8-48 Prctica 8: Visin General 8-49 9 Relaciones y Estructura de Almacenamiento Objetivos 9-2 Relaciones y Estructura de Almacenamiento 9-3 Tipos de Segmentos 9-4 Prioridad de Clusulas de Almacenamiento 9-8 Asignacin y Desasignacin de Extensiones 9-9 Extensiones Utilizadas y Libres 9-10 Bloque de Base de Datos 9-11 Soporte para Mltiples Tamaos de Bloque 9-12 Tamao de Bloque Estndar 9-13 Tamao de Bloque no Estndar 9-15 Creacin de Tablespaces con un Tamao de Bloque no Estndar 9-17 Reglas de Especificacin de Tamao de Mltiples Bloques 9-19 Contenido del Bloque de la Base de Datos 9-20 Parmetros de Utilizacin del Espacio de Bloques 9-21 Gestin de Bloques de Datos 9-23 Gestin Automtica del Espacio de Segmento 9-24 Configuracin de la Gestin Automtica del Espacio de Segmento 9-26 Gestin Manual de Bloques de Datos 9-27 Uso del Espacio de Bloques 9-28 Obtencin de Informacin acerca del Almacenamiento 9-29 Resumen 9-32 Prctica 9: Visin General 9-33

10 Gestin de Datos de Deshacer Objetivos 10-2 Gestin de Datos de Deshacer 10-3 Segmento de Deshacer 10-4 Segmentos de Deshacer: Objetivo 10-5 Consistencia de Lectura 10-6 Tipos de Segmentos de Deshacer 10-7 Gestin de SMU Automtico: Conceptos 10-9

vii

Gestin de SMU Automtico: Configuracin 10-10 Gestin de SMU Automtico: Parmetros de Inicializacin 10-11 Gestin de SMU Automtico: Tablespace UNDO 10-12 Gestin de SMU Automtico: Modificacin de un Tablespace UNDO 10-14 Gestin de SMU Automtico: Cambio de Tablespaces UNDO 10-16 Gestin de SMU Automtico: Borrado de un Tablespace UNDO 10-18 Gestin de SMU Automtico: Otros Parmetros 10-21 Estadsticas de Datos de Deshacer 10-23 Gestin de SMU Automtico: Especificacin del Tamao de un Tablespace UNDO 10-24 Gestin de SMU Automtico: Cuota de Deshacer 10-26 Obtencin de Informacin acerca de Segmentos de Deshacer 10-27 Resumen 10-29 Prctica 10: Visin General 10-30 11 Gestin de Tablas Objetivos 11-2 Almacenamiento de Datos de Usuario 11-3 Tipos de Dato Incorporados de Oracle 11-6 Formato ROWID 11-10 Estructura de una Fila 11-12 Creacin de una Tabla 11-13 Creacin de una Tabla: Instrucciones 11-17 Creacin de Tablas Temporales 11-18 Definicin de PCTFREE y PCTUSED 11-19 Migracin y Encadenamiento de Filas 11-20 Cambio de los Parmetros de Utilizacin de Bloques y Almacenamiento 11-21 Asignacin Manual de Extensiones 11-24 Reorganizacin de una Tabla no Particionada 11-25 Truncamiento de una Tabla 11-26 Borrado de una Tabla 11-27 Borrado de una Columna 11-29 Cambio de Nombre de una Columna 11-31 Uso de la Opcin UNUSED 11-33 Obtencin de Informacin acerca de las Tablas 11-35 Resumen 11-37 Prctica 11: Visin General 11-38 12 Gestin de ndices Objetivos 12-2 Clasificacin de ndices 12-3 ndice B-Tree 12-5
viii

ndices de Bitmap 12-7 Comparacin entre los ndices B-Tree y Bitmap 12-9 Creacin de ndices B-Tree 12-10 Creacin de ndices: Instrucciones 12-13 Creacin de ndices de Bitmap 12-15 Cambio de Parmetros de Almacenamiento para ndices 12-18 Asignacin y Desasignacin del Espacio del ndice 12-20 Reconstruccin de ndices 12-21 Reconstruccin de ndices en Online 12-23 Fusin de ndices 12-24 Comprobacin de la Validez de los ndices 12-25 Borrado de ndices 12-27 Identificacin de ndices No Utilizados 12-29 Obtencin de Informacin acerca de los ndices 12-30 Resumen 12-31 Prctica 12: Visin General 12-32 13 Mantenimiento de la Integridad de los Datos Objetivos 13-2 Integridad de los Datos 13-3 Tipos de Restricciones 13-5 Estados de Restriccin 13-6 Comprobacin de Restricciones 13-8 Definicin de Restricciones Inmediatas o Diferidas 13-9 Forzado de las Claves nica y Primaria 13-10 Consideraciones acerca de la Clave Ajena 13-11 Definicin de Restricciones al Crear una Tabla 13-13 Instrucciones para Definir Restricciones 13-17 Activacin de Restricciones 13-18 Cambio de Nombre de las Restricciones 13-23 Uso de la Tabla EXCEPTIONS 13-25 Obtencin de Informacin acerca de las Restricciones 13-28 Resumen 13-31 Prctica 13: Visin General 13-32 14 Gestin de la Seguridad de Contraseas y Recursos Objetivos 14-2 Perfiles 14-3 Gestin de Contraseas 14-5 Activacin de la Gestin de Contraseas 14-6 Bloqueo de Cuentas de Contraseas 14-7 Vencimiento y Antigedad de Contraseas 14-8 Historial de Contraseas 14-9

ix

Verificacin de Contraseas 14-10 Funcin de Contrasea Proporcionada por el Usuario 14-11 Funcin de Verificacin de Contraseas VERIFY_FUNCTION 14-12 Creacin de un Perfil: Definicin de la Contrasea 14-13 Modificacin de un Perfil: Definicin de la Contrasea 14-17 Borrado de un Perfil: Definicin de la Contrasea 14-19 Gestin de Recursos 14-21 Activacin de Lmites de Recursos 14-22 Definicin de Lmites de Recursos en el Nivel de Sesin 14-23 Definicin de Lmites de Recursos en el Nivel de Llamada 14-24 Creacin de un Perfil: Lmite de Recursos 14-25 Gestin de Recursos con el Gestor de Recursos de la Base de Datos 14-28 Directivas del Plan de Recursos 14-31 Obtencin de Informacin acerca de Lmites de Recursos y Contraseas 14-33 Resumen 14-35 Prctica 14: Visin General 14-36 15 Gestin de Usuarios Objetivos 15-2 Usuarios y Seguridad 15-3 Esquema de la Base de Datos 15-5 Lista de Comprobacin para Crear Usuarios 15-6 Creacin de un Nuevo Usuario: Autenticacin de la Base de Datos 15-7 Creacin de un Nuevo Usuario: Autenticacin por medio del Sistema Operativo 15-10 Cambio de la Cuota de Usuario en Tablespaces 15-12 Borrado de un Usuario 15-14 Obtencin de Informacin acerca de los Usuarios 15-16 Resumen 15-17 Prctica 15: Visin General 15-18 16 Gestin de Privilegios Objetivos 16-2 Gestin de Privilegios 16-3 Privilegios del Sistema 16-4 Privilegios del Sistema: Ejemplos 16-5 Otorgamiento de Privilegios del Sistema 16-6 Privilegios SYSDBA y SYSOPER 16-9 Restricciones de Privilegios del Sistema 16-10 Revocacin de Privilegios del Sistema 16-11 Revocacin de Privilegios del Sistema con ADMIN OPTION 16-13 Privilegios de Objeto 16-14 Otorgamiento de Privilegios de Objeto 16-15 Revocacin de Privilegios de Objeto 16-18 Revocacin de Privilegios de Objeto con GRANT OPTION 16-21

Obtencin de Informacin acerca de los Privilegios 16-22 Resumen 16-23 Prctica 16: Visin General 16-24 17 Gestin de Roles Objetivos 17-2 Roles 17-3 Ventajas de los Roles 17-4 Creacin de Roles 17-5 Roles Predefinidos 17-7 Modificacin de Roles 17-8 Asignacin de Roles 17-10 Establecimiento de Roles por Defecto 17-13 Roles de la Aplicacin 17-15 Activacin y Desactivacin de Roles 17-16 Revocacin de Roles a Usuarios 17-19 Eliminacin de Roles 17-21 Instrucciones para la Creacin de Roles 17-23 Instrucciones para el Uso de Contraseas y Roles por Defecto 17-24 Obtencin de Informacin acerca de Roles 17-25 Resumen 17-26 Prctica 17: Visin General 17-27 18 Auditora Objetivos 18-2 Auditora 18-3 Instrucciones de Auditora 18-4 Categoras de Auditora 18-6 Auditora de la Base de Datos 18-8 Opciones de Auditora 18-10 Auditora del Usuario SYS 18-12 Obtencin de Informacin acerca de las Auditoras 18-13 Obtencin de Informacin acerca de Registros de Auditora 18-14 Resumen 18-15 Prctica 18: Visin General 18-16 19 Carga de Datos en una Base de Datos Objetivos 19-2 Mtodos de Carga de Datos 19-3 Carga Directa 19-4 Carga Directa en Serie 19-6 Carga Directa Paralela 19-7 SQL*Loader 19-9 Uso de SQL*Loader 19-11

xi

Archivo de Control de SQL*Loader 19-13 Consideraciones de la Sintaxis del Archivo de Control 19-17 Datos de Entrada y Archivos de Datos 19-18 Registros Lgicos 19-22 Mtodos de Carga 19-23 Comparacin de las Cargas por Rutas de Acceso Convencionales y Directas 19-26 Carga por Rutas de Acceso Directas Paralela 9-28 Conversin de Datos 19-29 Registros Desechados o Rechazados 19-30 Contenido del Archivo Log 19-34 Instrucciones de SQL*Loader 19-36 Resumen 19-37 Prctica 19: Visin General 19-38 20 Uso del Soporte de Globalizacin Objetivos 20-2 Funciones del Soporte de Globalizacin 20-3 Juegos de Caracteres 20-5 Juegos de Caracteres de la Base de Datos y Juegos de Caracteres Nacionales 20-8 Instrucciones para la Seleccin de un Juego de Caracteres de la Base de Datos Oracle 20-9 Instrucciones para la Seleccin de un Juego de Caracteres Nacional de Oracle 20-11 Seleccin de una Solucin Unicode: Base de Datos Unicode 20-12 Seleccin de una Solucin Unicode: Tipo de Dato Unicode 20-13 Especificacin del Comportamiento Dependiente del Idioma 20-15 Especificacin del Comportamiento Dependiente del Idioma para el Servidor 20-16 Valores por Defecto Dependientes del Idioma y del Territorio 20-17 Especificacin del Comportamiento Dependiente del Idioma para la Sesin 20-19 Ordenacin Lingstica 20-23 Ordenacin NLS 20-24 Uso de Parmetros NLS en las Funciones SQL 20-27 Soporte de ndice Lingstico 20-31 Importacin y Carga de Datos mediante NLS 20-32 Uso de Parmetros NLS en las Funciones SQL 20-33 Obtencin de Informacin acerca de los Juegos de Caracteres 20-34 Obtencin de Informacin acerca de los Valores de NLS 20-35 Resumen 20-39 Prctica 20: Visin General 20-40

xii

Apndice A: Cmo crear una Base de Datos Oracle9i en un Entorno UNIX Apndice B: Gestin Manual de Datos de Deshacer (Segmentos de Rollback) Apndice C: Soluciones a la Prctica de SQL*Plus Apndice D: Soluciones a la Prctica de Oracle Enterprise Manager

xiii

xiv

Prlogo

Perfil Este curso est diseado para proporcionar al administrador de la base de datos de Oracle (DBA) unos fundamentos slidos en las tareas administrativas bsicas. El objetivo principal de este curso es proporcionar al DBA el conocimiento y las habilidades necesarias para configurar, mantener y solucionar problemas de una base de datos Oracle. El curso se ha diseado para administradores junior de bases de datos, analistas de soporte tcnico, administradores de sistemas, desarrolladores de aplicaciones, gestores MIS y otros usuarios de Oracle. Este prlogo abarca las siguientes secciones: Antes de Comenzar este Curso Requisitos Organizacin de este Curso Publicaciones Relacionadas Convenciones Tipogrficas

Antes de Comenzar Este Curso Las habilidades especficas que debe tener como alumno para obtener el mximo provecho de este curso son: Familiaridad con los conceptos de bases de datos relacionales Un profundo conocimiento de SQL, SQL*Plus y los comandos de sistemas operativos (UNIX y NT) Conocimiento bsico de sistemas operativos Experiencia prctica con el entorno Oracle Introduction to Oracle9i: SQL Basics

Requisitos

Organizacin de este Curso Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I es un curso dirigido por instructor que incluye partes tericas y prcticas. El curso tambin permite adquirir los conocimientos necesarios para realizar las prcticas con SQL*Plus u OEM (Oracle Enterprise Manager). Asimismo, contiene objetivos claramente definidos, diseados con el fin de ayudarle a preparar el examen Oracle Certified Professional.

Prlogo - 2

Publicaciones Relacionadas Publicaciones de Oracle Ttulo Oracle9i Backup and Recovery Concepts Oracle9i Database Administrator's Guide Oracle9i Database Concepts Oracle9i Database Error Messages Oracle9i Database New Features Oracle9i Database Reference Oracle9i Database Utilities Oracle9i Enterprise Manager Administrators Guide Oracle9i Enterprise Manager Concepts Guide Oracle9i Enterprise Manager Configuration Guide Oracle9i Net Services Administrators Guide Oracle9i Net Services Reference Guide Oracle9i Recovery Manager Reference Oracle9i Recovery Manager Users Guide Oracle9i SQL Reference Oracle9i User-Managed Backup and Recovery Guide Publicaciones Adicionales Boletines de actualizacin del sistema Guas de instalacin y de usuario Archivos read.me Artculos del International Oracle Users Group (IOUG) Oracle Magazine Nmero de la Parte A96519-01 A96521-01 A96524-01 A96525-01 A96531-01 A96536-01 A96652-01 A96670.01 A96674-01 A96673-01 A96580-01 A96581-01 A96565-01 A96566-01 A96540-01 A96572-01

Prlogo - 3

Convenciones Tipogrficas Convenciones Tipogrficas del Texto

Convention Bold italic Caps and lowercase

Element Example Glossary term (if there is The algorithm inserts the new key. a glossary) Buttons, check boxes, triggers, windows Code output, directory names, filenames, passwords, pathnames, URLs, user input, usernames Graphics labels (unless the term is a proper noun) Emphasized words and phrases, titles of books and courses, variables Click the Executable button. Select the Cant Delete Card check box. Assign a When-Validate-Item trigger to the ORD block. Open the Master Schedule window. Code output: debug.set (I, 300); Directory: bin (DOS), $FMHOME (UNIX) Filename: Locate the init.ora file. Password: User tiger as your password. Pathname: Open c:\my_docs\projects URL: Go to http://www.oracle.com User input: Enter 300 Username: Log on as scott Customer address (but Oracle Payables)

Courier new, case sensitive (default is lowercase)

Initial cap

Italic

Do not save changes to the database. For further information, see Oracle7 Server SQL Language Reference Manual. Enter user_id@us.oracle.com, where user_id is the name of the user.

Quotation marks

Interface elements with long names that have only initial caps; lesson and chapter titles in cross-references SQL column names, commands, functions, schemas, table names

Select Include a reusable module component and click Finish. This subject is covered in Unit II, Lesson 3, Working with Objects. Use the SELECT command to view information stored in the LAST_NAME column of the EMP table.

Uppercase

Prlogo - 4

Convention Arrow Commas Plus signs

Element Menu paths Key sequences Key combinations

Example Select File > Save. Press and release keys one at a time: [Alternate], [F], [D] Press and hold these keys simultaneously: [Ctrl]+[Alt]+[Del]

Convenciones Tipogrficas del Cdigo

Convention Caps and lowercase Lowercase

Element Oracle Forms triggers Column names, table names Passwords PL/SQL objects

Example When-Validate-Item SELECT last_name FROM s_emp; DROP USER scott IDENTIFIED BY tiger; OG_ACTIVATE_LAYER (OG_GET_LAYER (prod_pie_layer))

Lowercase italic Uppercase

Syntax variables SQL commands and functions

CREATE ROLE role SELECT userid FROM emp;

Prlogo - 5

Prlogo - 6

Introduccin

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos del Curso


Al finalizar este curso, debera estar capacitado para: Identificar los diversos componentes de la arquitectura de Oracle Iniciar y cerrar una base de datos Oracle Crear una base de datos operativa Gestionar archivos de control de Oracle, archivos redo log online, archivos de datos, tablespaces, segmentos, extensiones y bloques Gestionar usuarios, privilegios y recursos Utilizar las funciones de soporte de globalizacin

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos del Curso Este curso es el primero de una serie de cursos que abarcan las principales tareas del administrador de la base de datos. Las tareas que se describen en este curso son: Descripcin de la arquitectura de Oracle Planificacin y creacin de bases de datos Gestin de las estructuras lgicas, fsicas, de procesos y de memoria Gestin de los usuarios de la base de datos mediante el control de sus acciones Uso de las funciones de soporte de globalizacin

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I I-2

Oracle9i Enterprise Edition

Particionamiento

Real Application Clusters

Paquetes de Oracle Enterprise Manager

Seguridad Avanzada

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Oracle9i Enterprise Edition Oracle9i Enterprise Edition es una base de datos de objetos relacionales escalable y fcil de gestionar. En este curso se explica la administracin bsica de Oracle9i Enterprise Edition. Sin embargo, las siguientes opciones proporcionan una funcionalidad adicional. Particionamiento: Proporciona utilidades para implementar aplicaciones de gran tamao y escalables. Permite controlar las tablas y los ndices con un nivel de granularidad inferior al que sera posible con la versin bsica de Enterprise Edition. Real Application Clusters: Mejora la escalabilidad y disponibilidad de una base de datos, ya que permite que mltiples instancias del software de Oracle accedan a una nica base de datos. Paquetes de Oracle Enterprise Manager: Estn creados sobre Oracle Enterprise Manager. Los paquetes de Oracle Enterprise Manager Diagnostics, Tuning y Change Management son programas complementarios que proporcionan a los administradores un juego de herramientas para una gestin de cambios, un ajuste, un control y un diagnstico avanzados de los entornos de Oracle. Seguridad avanzada: Proporciona seguridad de red de servidor a servidor y de cliente a servidor mediante el cifrado y la comprobacin de la integridad de datos, y soporta servicios de autenticacin de usuario mejorados con servicios de seguridad de terceros. Nota: Estas opciones requieren la adquisicin de una licencia.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I I-3

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

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tareas del Administrador de la Base de Datos Los administradores de bases de datos son los responsables de mantener Oracle Server con el fin de que pueda procesar las solicitudes de usuario. Es preciso entender la arquitectura de Oracle para mantenerla de forma eficaz. El objetivo de este curso es explicar la arquitectura de Oracle y otras tareas del administrador como la planificacin y creacin de bases de datos, la gestin de la disponibilidad de la base de datos, la gestin de las estructuras fsicas, lgicas y de memoria y la gestin de usuarios y privilegios. Tareas del administrador de la base de datos tratadas en otros cursos: Las siguientes tareas se describen en otros cursos: Copia de seguridad y recuperacin en Oracle9i Database Administration Fundamentals II Administracin de redes en Oracle9i Database Administration Fundamentals II Ajuste de la base de datos en Oracle9i Database Performance Tuning

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I I-4

Componentes de la Arquitectura de Oracle

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Esbozar la arquitectura de Oracle y sus componentes principales Enumerar las estructuras implicadas en la conexin de un usuario a una instancia Oracle

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos Esta leccin presenta la arquitectura de Oracle Server. Para ello, examina las estructuras fsicas, lgicas, de procesos y de memoria implicadas en el establecimiento de una conexin con la base de datos, en la creacin de una sesin y en la ejecucin de comandos SQL.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-2

Visin General de los Componentes Principales


Proceso de usuario Instancia Conjunto Compartido Cach de Biblioteca Proceso de servidor PGA PMON SMON DBWR LGWR CKPT Otros Cach del Diccionario de Datos SGA Cach de Buffers de Base de Datos Conjunto Java Buffer de Redo Log Conjunto Grande

Archivo de parmetros Archivo de contraseas

Archivos de datos

Archivos de control

Archivos Redo Log

Archivos log archivados

Base de datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Visin General de los Componentes Principales La arquitectura Oracle incluye cierto nmero de componentes principales, que se analizan ms adelante en esta leccin. Oracle Server: Existen varios archivos, procesos y estructuras de memoria en Oracle Server, no obstante, cuando se procesa una sentencia SQL no se utilizan todos. Algunos se utilizan para mejorar el rendimiento de la base de datos, asegurar la recuperacin de la base de datos si se produce un error de software o de hardware, o realizar otras tareas necesarias para mantener la base de datos. Oracle Server est formado por una instancia y una base de datos Oracle. Instancia Oracle: Una instancia Oracle es la combinacin de los procesos en segundo plano y las estructuras de memoria. Es necesario iniciar la instancia para acceder a los datos de la base de datos. Cada vez que se inicia una instancia, se asigna un SGA (rea Global del Sistema) y se inician los procesos en segundo plano de Oracle. Los procesos en segundo plano desempean funciones en favor del proceso que llama. Consolidan las funciones que, de lo contrario, se gestionaran mediante la ejecucin de mltiples programas Oracle para cada usuario. Los procesos en segundo plano realizan operaciones de E/S (entrada/salida) y controlan otros procesos de Oracle para proporcionar un mayor paralelismo y, de esta manera, mejorar el rendimiento y la fiabilidad.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-3

Visin General de los Componentes Principales (continuacin) Base de datos Oracle: Una base de datos Oracle est formada por archivos del sistema operativo, tambin llamados archivos de base de datos, que proporcionan el almacenamiento fsico real para la informacin de la base de datos. Los archivos de la base de datos se utilizan para asegurar la consistencia de los datos, as como su recuperacin en caso de que se produzca un fallo de la instancia. Otros archivos clave: Los archivos que no son de base de datos se utilizan para configurar la instancia, autenticar los usuarios con privilegios y recuperar la base de datos en caso de que se produzca un fallo de disco. Procesos de usuario y de servidor: Los procesos de usuario y de servidor son los procesos principales implicados en la ejecucin de una sentencia SQL. Sin embargo, hay otros procesos que pueden ayudar al servidor a finalizar el procesamiento de la sentencia SQL. Otros procesos: Existen otros muchos procesos que se utilizan en otras opciones, como Gestin de Colas Avanzada, Real Application Clusters, Servidor Compartido, Replicacin Avanzada, etc. Estos procesos se describen en los cursos correspondientes.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-4

Oracle Server
Oracle Server: Es un sistema de gestin de bases de datos que proporciona un enfoque abierto, global e integrado de la gestin de informacin Est formado por una instancia Oracle y una base de datos Oracle

Oracle Server

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Oracle Server Oracle Server es la clave para la gestin de la informacin. Por regla general, Oracle Server debe gestionar grandes cantidades de datos en un entorno para varios usuarios de forma fiable, de modo que muchos usuarios puedan acceder de forma simultnea a los mismos datos. Al mismo tiempo, es necesario que el rendimiento obtenido sea excelente. Oracle Server tambin debe impedir el acceso no autorizado y proporcionar soluciones eficaces para la recuperacin en caso de fallo.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-5

Instancia Oracle
Una instancia Oracle: Es un medio de acceso a una base de datos Oracle Siempre abre una nica base de datos Est formada por estructuras de procesos en segundo plano y de memoria
Instancia Conjunto Compartido Cach de Biblioteca Cach del Diccionario de Datos PMON SMON SGA Cach de Buffers de Base de Datos Conjunto Java DBWR LGWR Buffer de Redo Log Conjunto Grande CKPT Otros

Estructuras de la memoria

Estructuras de procesos en segundo plano

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Instancia Oracle Una instancia Oracle se compone de la estructura de la memoria SGA (rea Global del Sistema) y de los procesos en segundo plano que se utilizan para gestionar una base de datos. La identificacin de una instancia se realiza mediante los mtodos especficos de cada sistema operativo. La instancia slo podr abrir y utilizar una base de datos a la vez.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-6

Establecimiento de una Conexin y Creacin de una Sesin


Conexin a una instancia Oracle: Establecimiento de una conexin de usuario Creacin de una sesin
Conexin establecida Proceso de usuario Proceso de servidor Sesin creada Oracle Server

Usuario de base de datos


Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Establecimiento de una Conexin y Creacin de una Sesin Para que los usuarios puedan ejecutar sentencias SQL en una base de datos Oracle, se deben conectar a una instancia. El usuario inicia una herramienta como SQL*Plus, o bien ejecuta una aplicacin que se haya desarrollado con una herramienta como Oracle Forms. Esta aplicacin o herramienta se ejecuta como un proceso de usuario. En la configuracin ms bsica, cuando un usuario se conecta a Oracle Server, se crea un proceso en el equipo que ejecuta Oracle Server. A este proceso se le llama proceso de servidor. El proceso de servidor se comunicar con la instancia Oracle en nombre del proceso de usuario en el cliente. El proceso de servidor ejecuta las sentencias SQL en nombre del usuario. Conexin Una conexin no es ms que una ruta de comunicacin entre un proceso de usuario y Oracle Server. Un usuario de base de datos se puede conectar a Oracle Server de tres formas: El usuario se conecta al sistema operativo ejecutando la instancia Oracle e inicia una aplicacin o herramienta que accede a la base de datos en ese sistema. Se establece la ruta de comunicacin mediante los mecanismos de comunicacin entre procesos disponibles en el sistema operativo del host.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-7

Establecimiento de una Conexin y Creacin de una Sesin Conexin (continuacin) El usuario inicia la aplicacin o la herramienta en un equipo local y se conecta a travs de la red al equipo que ejecuta la instancia Oracle. En esta configuracin, conocida como cliente-servidor, el software de red se utiliza para establecer la comunicacin entre el usuario y Oracle Server. En una conexin de tres capas, el equipo del usuario se comunica a travs de la red con un servidor de aplicaciones o de red, que se conecta a travs de una red a la mquina que ejecuta la instancia Oracle. Por ejemplo, el usuario ejecuta un explorador en un equipo de red para utilizar una aplicacin que reside en un servidor NT, que recupera los datos de una base de datos Oracle que se ejecuta en un host UNIX. Sesiones Una sesin es una conexin especfica de un usuario a Oracle Server. La sesin se inicia cuando Oracle Server valida al usuario, y finaliza cuando el usuario se desconecta o cuando se produce una terminacin anormal. Un usuario de base de datos determinado puede realizar muchas sesiones simultneas si dicho usuario se conecta desde distintas herramientas, aplicaciones o terminales al mismo tiempo. Excepto en el caso de algunas herramientas de administracin de base de datos especializadas, el inicio de una sesin de base de datos requiere que Oracle Server est disponible. Nota: El tipo de conexin que se explica aqu, donde hay una correspondencia uno a uno entre un proceso de usuario y de servidor, se llama conexin de servidor dedicado. Si se utiliza una configuracin de servidor compartido, muchos procesos de usuario podrn compartir procesos de servidor.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-8

Base de Datos Oracle


Una base de datos Oracle: Es un conjunto de datos que se trata como una unidad Est formada por tres tipos de archivos
Base de Datos Oracle Archivos de datos Archivos de control Archivos Redo Log

Archivo de parmetros Archivo de contraseas

Archivos log archivados

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Base de Datos Oracle El objetivo general de una base de datos es el de almacenar y recuperar la informacin relacionada. Una base de datos Oracle tiene una estructura lgica y una fsica. La estructura fsica de la base de datos es el juego de archivos del sistema operativo en la base de datos. Una base de datos Oracle consta de tres tipos de archivos. Los archivos de datos que contienen los datos reales de la base de datos Los archivos redo log que contienen un registro de los cambios efectuados en la base de datos para activar la recuperacin de los datos en caso de fallos Los archivos de control que contienen la informacin necesaria para mantener y verificar la integridad de la base de datos Otras Estructuras de Archivos Clave Oracle Server tambin utiliza otros archivos que no forman parte de la base de datos: El archivo de parmetros define las caractersticas de una instancia Oracle. Por ejemplo, contiene los parmetros que especifican el tamao de las estructuras de la memoria en el SGA. El archivo de contraseas autentica los usuarios con privilegios para iniciar y cerrar una instancia Oracle. Los archivos redo log archivados son copias offline de los archivos redo log online que pueden ser necesarios para recuperarse de los fallos del medio fsico.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-9

Estructura Fsica
La estructura fsica incluye tres tipos de archivos: Archivos de control Archivos de datos Archivos redo log online
Cabecera Archivos de datos (incluye el diccionario de datos) Archivos de control

Archivos Redo Log Online

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Estructura Fsica La estructura fsica de una base de datos Oracle incluye tres tipos de archivos: archivos de control, archivos de datos y archivos redo log online.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-10

Estructura de la Memoria
La estructura de la memoria de Oracle est formada por dos reas de memoria llamadas: SGA (rea Global del Sistema): Asignada al iniciar la instancia y componente fundamental de una instancia Oracle PGA (rea Global de Programas): Asignada al iniciar el proceso de servidor

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-11

rea Global del Sistema


El rea SGA est formada por varias estructuras de la memoria:
Conjunto Compartido Cach de Buffers de Base de Datos Buffer de Redo Log Otras estructuras (por ejemplo, gestin de bloqueos y bloqueos internos, datos estadsticos)

Existen dos estructuras de la memoria adicionales que se pueden configurar desde el SGA:
Conjunto Grande Conjunto Java

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

SGA (rea Global del Sistema) El rea SGA tambin se llama rea global compartida. Se utiliza para almacenar informacin de base de datos que comparten los procesos de base de datos. Contiene datos e informacin de control para Oracle Server y se asigna en la memoria virtual de la computadora donde reside Oracle. Para ver las asignaciones de memoria SGA, se puede utilizar la siguiente sentencia: SQL> SHOW SGA: Total System Global Area 36437964 bytes Fixed Size 6543794 bytes Variable Size 19521536 bytes Database Buffers 16777216 bytes Redo Buffers 73728 bytes

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-12

rea Global del Sistema (continuacin) SGA Dinmica A partir de Oracle9i, el rea SGA dinmica implementa una infraestructura que permite modificar la configuracin del SGA sin cerrar la instancia. Asimismo, esto permite modificar el tamao de la cach de buffers de base de datos, del conjunto compartido y del conjunto grande sin cerrar la instancia. En principio, se podra subconfigurar la cach de buffers de base de datos y el conjunto compartido, que podran aumentar y reducirse posteriormente en funcin de sus respectivas cargas de trabajo, hasta un mximo especificado por SGA_MAX_SIZE. Especificacin del Tamao del SGA El tamao del rea SGA lo determinan varios parmetros de inicializacin. Los parmetros que afectan al tamao del rea SGA en mayor medida son: DB_CACHE_SIZE: Tamao de la cach de bloques estndar. El valor por defecto es de 48 MB para UNIX y 52 MB para NT. LOG_BUFFER: Nmero de bytes asignados al buffer de redo log SHARED_POOL_SIZE: Tamao en bytes del rea dedicada a SQL compartido y a PL/SQL. El valor por defecto es 16 MB. Si se trata de 64 bits, el tamao por defecto es de 64 MB. LARGE_POOL_SIZE: Tamao del conjunto grande. El valor por defecto es cero (excepto si el parmetro PARALLEL_AUTOMATIC_TUNING de init.ora se define en TRUE, en cuyo caso se calcula automticamente el valor por defecto.) JAVA_POOL_SIZE: Tamao del conjunto Java. El valor por defecto es 24 MB. Por lo tanto, el tamao del rea SGA no puede superar el especificado en SGA_MAX_SIZE menos los valores de DB_CACHE_SIZE, LOG_BUFFER, SHARED_POOL_SIZE, LARGE_POOL_SIZE y JAVA_POOL_SIZE. Nota: El rea SGA dinmica y la especificacin del tamao se cubren ms detenidamente en el curso Oracle9i Database Performance Tuning.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-13

rea Global del Sistema


Es dinmica Tamao definido por el parmetro SGA_MAX_SIZE Asignada y con seguimiento en grnulos por componentes del SGA
Asignacin de memoria virtual contigua El tamao de grnulo se basa en el valor de SGA_MAX_SIZE total estimado

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

rea Global del Sistema (continuacin) Unidad de Asignacin Un grnulo es una unidad de asignacin de memoria virtual contigua. El tamao de un grnulo depende del tamao del SGA total estimado cuyo clculo se basa en el valor del parmetro SGA_MAX_SIZE. 4 MB si el tamao del SGA estimado es < 128 MB 16 MB, en caso contrario Los componentes (cach de buffers de base de datos, conjunto compartido y conjunto grande) pueden aumentar o disminuir de tamao en funcin de los lmites del grnulo. Al iniciar la instancia, Oracle Server asigna las entradas de grnulos, una por cada grnulo que soporta el nmero de bytes de SGA_MAX_SIZE de espacio de direccin. Mientras contina el inicio, cada componente adquiere los grnulos que necesita. La configuracin de SGA mnima es de tres grnulos (un grnulo para el rea SGA fija [incluye los buffers de redo], un grnulo para la cach de buffers de base de datos y un grnulo para el conjunto compartido).

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-14

Conjunto Compartido
Se utiliza para almacenar:
Las ltimas sentencias SQL ejecutadas Las ltimas definiciones de datos utilizadas

Est formado por dos estructuras de memoria clave relacionadas con el rendimiento:
Cach de Biblioteca Cach del Diccionario de Datos

Tamao definido por el parmetro SHARED_POOL_SIZE


Conjunto Compartido Cach de Biblioteca ALTER SYSTEM SET SHARED_POOL_SIZE = 64M; Diccionario de datos Cach

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Conjunto Compartido El entorno de conjunto compartido contiene estructuras tanto fijas como variables. Las estructuras fijas mantienen relativamente el mismo tamao, mientras que las estructuras variables aumentan y disminuyen en funcin de los requisitos del usuario y del programa. El tamao real de las estructuras fijas y variables se basa en un parmetro de inicializacin y el funcionamiento de un algoritmo interno de Oracle. Especificacin del Tamao del Conjunto Compartido Puesto que el conjunto compartido se utiliza para objetos que se pueden compartir de forma global, como planes de ejecucin SQL reutilizables, paquetes PL/SQL, procedimientos, funciones e informacin de cursor, su tamao se debe ajustar a las necesidades tanto de las reas fijas como variables. La asignacin de memoria del conjunto compartido se determina por el parmetro de inicializacin SHARED_POOL_SIZE. El tamao se puede cambiar de forma dinmica mediante ALTER SYSTEM SET. Tras el anlisis de rendimiento, se puede ajustar, aunque el tamao total del rea SGA no puede exceder el valor de SGA_MAX_SIZE.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-15

Cach de Biblioteca
Almacena informacin acerca de las sentencias SQL y PL/SQL utilizadas ms recientemente Permite compartir las sentencias utilizadas con mayor frecuencia Lo gestiona un algoritmo LRU (utilizado menos recientemente) Est formado por dos estructuras:
rea de SQL compartido rea de PL/SQL compartido

Tamao determinado por el tamao del conjunto compartido

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Cach de Biblioteca El tamao de la cach de biblioteca se basa en el tamao definido para el conjunto compartido. La memoria se asigna al analizar una sentencia o al llamar a una unidad de programa. Si el tamao del conjunto compartido es demasiado pequeo, las sentencias se recargan continuamente en la cach de biblioteca, lo que afecta al rendimiento. La cach de biblioteca se gestiona por medio de un algoritmo LRU. A medida que se va llenando la cach, se eliminan los rboles de anlisis y las rutas de ejecucin utilizados menos recientemente de la cach de biblioteca para dejar espacio a las nuevas entradas. Si las sentencias SQL o PL/SQL no se vuelven a utilizar, al final quedarn obsoletas. La cach de biblioteca est formada por dos estructuras: SQL compartido: Almacena y comparte el plan de ejecucin y el rbol de anlisis para las sentencias SQL que se ejecutan en la base de datos. La segunda vez que se ejecuta una sentencia SQL idntica, sta se puede beneficiar de la informacin de anlisis disponible en el SQL compartido para acelerar la ejecucin. Para garantizar que las sentencias SQL utilizan un rea SQL compartida siempre que sea posible, el texto, el esquema y las variables ligadas deben ser idnticos. PL/SQL compartido: Almacena y comparte las sentencias PL/SQL ejecutadas ms recientemente. Los procedimientos (funciones, paquetes y disparadores) y las unidades de programa analizados y compilados se almacenan en este rea.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-16

Cach del Diccionario de Datos


Conjunto de las definiciones utilizadas ms recientemente en la base de datos Incluye informacin acerca de archivos de base de datos, tablas, ndices, columnas, usuarios, privilegios y otros objetos de base de datos Durante la fase de anlisis, el proceso de servidor busca la informacin en el diccionario de datos para resolver los nombres de objeto y validar el acceso El almacenamiento de la informacin del diccionario de datos en cach mejora el tiempo de respuesta de las consultas y DML Tamao determinado por el tamao del conjunto compartido
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Cach del Diccionario de Datos La cach del diccionario de datos tambin se llama cach del diccionario o cach de filas. La informacin acerca de la base de datos (datos de cuenta de usuario, nombres de archivos de datos, nombres de segmento, ubicaciones de extensiones, descripciones de tablas y privilegios de usuario) se almacena en las tablas del diccionario de datos. Cuando el servidor necesita esta informacin, se leen las tablas del diccionario de datos y los datos devueltos se almacenan en la cach del diccionario de datos. Especificacin del Tamao del Diccionario de Datos El tamao total depende del tamao del conjunto compartido y lo gestiona de forma interna la base de datos. Si la cach del diccionario de datos es demasiado pequea, la base de datos tiene que consultar las tablas del diccionario de datos repetidas veces para obtener la informacin que necesita el servidor. Estas consultas se denominan llamadas recursivas y son ms lentas que las consultas directas de la cach del diccionario de datos, puesto que las consultas directas no utilizan SQL.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-17

Cach de Buffers de Base de Datos


Almacena copias de bloques de datos que se han recuperado de archivos de datos Permite grandes mejoras de rendimiento al obtener y actualizar datos Gestionado por un algoritmo LRU DB_BLOCK_SIZE determina el tamao del bloque primario
Cach de Buffers de Base de Datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Cach de Buffers de Base de Datos Cuando se procesa una consulta, el proceso de Oracle Server busca en la cach de buffers de base de datos los bloques que necesita. Si no se encuentra el bloque en la cach de buffers de base de datos, el proceso del servidor lee el bloque desde el archivo de datos y coloca una copia en la cach de buffers de base de datos. Dado que las siguientes solicitudes para el mismo bloque ya pueden encontrar el bloque en la memoria, las solicitudes no necesitarn las lecturas fsicas. Oracle Server utiliza un algoritmo LRU para los buffers obsoletos a los que no se ha accedido recientemente con el fin de dejar sitio a los nuevos bloques en la cach de buffers de base de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-18

Cach de Buffers de Base de Datos


Est formado por subcachs independientes:
DB_CACHE_SIZE DB_KEEP_CACHE_SIZE DB_RECYCLE_CACHE_SIZE

Se puede cambiar de tamao de forma dinmica


ALTER SYSTEM SET DB_CACHE_SIZE = 96M;

DB_CACHE_ADVICE se define con el fin de recoger estadsticas para predecir el comportamiento de los distintos tamaos de cach Estadsticas mostradas por V$DB_CACHE_ADVICE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Cach de Buffers de Base de Datos Especificacin del Tamao de la Cach de Buffers de Base de Datos El tamao de cada buffer de la cach de buffers de base de datos equivale al tamao de un bloque Oracle, y lo especifica el parmetro DB_BLOCK_SIZE. La cach de buffers de base de datos est formada por dos subcachs independientes para conjuntos de buffers y para mltiples tamaos de bloque. El parmetro DB_BLOCK_SIZE determina el tamao del bloque primario, que se usa para el tablespace SYSTEM. Hay tres parmetros que definen los tamaos de las cachs de buffers de base de datos: DB_CACHE_SIZE: Slo especifica el tamao de la cach de buffers por defecto; siempre est presente y no se puede definir en cero DB_KEEP_CACHE_SIZE: Establece el tamao de la cach de buffers KEEP, que se utiliza para retener en memoria bloques que probablemente se van a reutilizar DB_RECYCLE_CACHE_SIZE: Determina el tamao de la cach de buffers de reciclado, que se utiliza para eliminar de la memoria bloques que probablemente no se van a reutilizar

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-19

Cach de Buffers de Base de Datos (continuacin) Asesor de Cach de Buffers La funcin Asesor de Cach de Buffers activa y desactiva la recopilacin de estadsticas para predecir el comportamiento de los distintos tamaos de cach. La informacin proporcionada por estas estadsticas le puede ayudar a establecer el tamao ptimo de la cach de buffers de base de datos para cada carga de trabajo determinada. La informacin del Asesor de Cach de Buffers se recopila y se muestra mediante la vista V$DB_CACHE_ADVICE. La funcin Asesor de Cach de Buffers se activa mediante el parmetro de inicializacin DB_CACHE_ADVICE, que es un parmetro dinmico y se puede modificar con ALTER SYSTEM. Existen tres valores (OFF, ON y READY) disponibles. Valores del Parmetro DB_CACHE_ADVICE OFF: El asesor est desactivado y no se le asigna memoria. ON: El asesor est activado y se produce una sobrecarga tanto de CPU como de memoria. Si se intenta definir el parmetro en el estado ON cuando tiene el valor OFF, puede dar lugar al siguiente error: ORA-4031 Inability to allocate from the Shared Pool when the parameter is switched to ON. Si el parmetro se encuentra en estado READY, se puede definir como ON sin errores, porque la memoria ya est asignada. READY: El asesor est desactivado pero la memoria contina asignada. Al asignar la memoria antes de activar el asesor, se evita el riesgo de que se produzca el error ORA-4031. Si se activa el estado de este parmetro cuando est en OFF, es posible que se produzca el error ORA-4031.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-20

Buffer de Redo Log


Registra todos los cambios realizados en los bloques de datos de la base de datos Su finalidad principal es la recuperacin Los cambios registrados dentro de ste se llaman registros de redo Los registros de redo contienen informacin que permite reconstruir o rehacer cambios Tamao definido por LOG_BUFFER

Buffer de Redo Log

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Buffer de Redo Log El buffer de redo log es un buffer circular que contiene los cambios realizados en los bloques de archivos de datos. Esta informacin se almacena en registros de redo. Los registros de redo contienen la informacin necesaria para recrear los datos que haba antes de los cambios realizados por las operaciones INSERT, UPDATE, DELETE, CREATE, ALTER o DROP. Especificacin del Tamao del Buffer de Redo Log El tamao del buffer de redo log est definido por el parmetro de inicializacin LOG_BUFFER. Nota: La especificacin del tamao del buffer de redo log se explica con ms detalle en el curso Oracle9i Database Performance Tuning. Consulte la leccin Mantenimiento de Archivos Redo Log para obtener ms informacin sobre los archivos redo log online.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-21

Conjunto Grande
rea opcional de memoria en el SGA Libera al conjunto compartido de su carga Se utiliza para:
Memoria de sesin (UGA) para el servidor compartido Procesos de servidor de E/S Operaciones de copia de seguridad y recuperacin o RMAN Buffers de mensajes de ejecucin en paralelo PARALLEL_AUTOMATIC_TUNING se define como TRUE

No utiliza una lista LRU Tamao definido por LARGE_POOL_SIZE Se puede cambiar de tamao de forma dinmica

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Conjunto Grande Mediante la asignacin de memoria de sesin desde el conjunto grande para el servidor compartido, Oracle XA o los buffers de consulta paralela, Oracle puede utilizar el conjunto compartido principalmente para almacenar sentencias de SQL compartido en cach. De este modo, libera de su carga otras reas del conjunto compartido. El conjunto compartido no tiene que reservar memoria para almacenar en cach los rboles de anlisis SQL en favor de la informacin de sesin de servidor compartido, los procesos de E/S y los procesos de copia de seguridad y de recuperacin. La mejora de rendimiento se debe a la reduccin de la sobrecarga derivada del aumento y la disminucin de la cach de SQL compartido. Copia de Seguridad y Recuperacin RMAN (Oracle Recovery Manager) utiliza el conjunto grande cuando se definen los parmetros BACKUP_DISK_IO=n y BACKUP_TAPE_IO_SLAVE= TRUE. Si se ha configurado el conjunto grande, pero no tiene el tamao suficiente, fallar la asignacin de la memoria del conjunto grande. RMAN escribe un mensaje de error en el archivo log de alertas y no utiliza esclavos de E/S para copias de seguridad o restauracin. Ejecucin en Paralelo Si el parmetro PARALLEL_AUTOMATIC_TUNING se define en TRUE, se utiliza el conjunto grande. En caso contrario, estos buffers se asignan al conjunto compartido.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-22

Conjunto Grande (continuacin) Especificacin del Tamao del Conjunto Grande El tamao del conjunto grande se especifica en bytes definidos por el parmetro LARGE_POOL_SIZE. Este parmetro se puede modificar dinmicamente con el comando ALTER SYSTEM SET. SQL> ALTER SYSTEM SET LARGE_POOL_SIZE=24MB El Conjunto Grande y las Listas LRU El conjunto grande no tiene una lista LRU. Es distinto al espacio reservado del conjunto compartido, que utiliza una lista LRU.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-23

Conjunto Java
Requisitos de anlisis de servicios para comandos Java Es necesario si se instala y se utiliza Java Tamao definido por el parmetro JAVA_POOL_SIZE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Conjunto Java El conjunto Java es una definicin opcional que es obligatoria si se instala y utiliza Java. Su tamao se define en bytes, mediante el parmetro JAVA_POOL_SIZE. En Oracle9i, el tamao por defecto del conjunto Java es de 24 MB.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-24

rea Global de Programas


Memoria reservada para cada proceso de usuario que se conecte a una base de datos Oracle Se asigna cuando se crea un proceso Se libera cuando se termina un proceso Slo la utiliza un proceso

PGA Proceso de servidor

Proceso de usuario

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

rea Global de Programas (PGA) El PGA (rea Global de Programas o rea Global de Proceso) es una regin de la memoria que contiene los datos y la informacin de control de un nico proceso de servidor o de un nico proceso en segundo plano. El PGA se asigna cuando se crea un proceso y se libera cuando ste se termina. A diferencia del SGA, que comparten varios procesos, el PGA es un rea que slo utiliza un proceso. Contenido del PGA El contenido de la memoria PGA vara en funcin de si la instancia se ejecuta en una configuracin de servidor dedicado o de servidor compartido. Por regla general, la memoria PGA incluye los siguientes componentes: rea SQL privada: Contiene datos, como informacin ligada y estructuras de memoria de tiempo de ejecucin. Cada sesin que emite una sentencia SQL tiene un rea SQL privada. Cada usuario que ejecuta la misma sentencia SQL tiene su propia rea SQL privada que utiliza una nica rea de SQL compartido. Por tanto, muchas reas SQL privadas se pueden asociar a la misma rea de SQL compartido. El rea SQL privada de un cursor se divide en dos reas:

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-25

rea Global de Programas (continuacin) - rea persistente: Contiene informacin ligada y slo se libera cuando se cierra el cursor - rea de tiempo de ejecucin: Creada como primer paso de una solicitud de ejecucin. Para los comandos INSERT, UPDATE y DELETE, esta rea se libera una vez ejecutada la sentencia. En el caso de las consultas, esta rea se libera slo cuando se han recuperado todas las filas o se ha cancelado la consulta. La ubicacin del rea SQL privada depende del tipo de conexin establecida para la sesin. En un entorno de servidor dedicado, las reas SQL privadas estn ubicadas en el PGA de su proceso de servidor. En un entorno de servidor compartido, las reas SQL privadas estn ubicadas en el SGA. La gestin de reas SQL privadas es responsabilidad del proceso de usuario. El nmero de reas SQL privadas que puede asignar un proceso de usuario est siempre limitado por el parmetro de inicializacin OPEN_CURSORS. El valor por defecto de este parmetro es 50. Memoria de Sesin: Consta de memoria asignada para retener las variables de una sesin y otra informacin relacionada con la sesin. En un entorno de servidor compartido, la memoria de sesin es compartida y no privada. reas de Trabajo SQL: Utilizadas en operaciones con uso intensivo de la memoria como: Ordenacin, Unin de Comprobacin Aleatoria, Fusin de Bitmaps y Creacin de Bitmaps. El tamao del rea de trabajo se puede controlar y ajustar. A partir de Oracle9i, se puede gestionar de forma automtica y global el tamao del rea de trabajo. Esta caracterstica se activa definiendo el parmetro WORKAREA_SIZE_POLICY en AUTO, que es el valor por defecto, y el parmetro de inicializacin PGA_AGGREGATE_TARGET. El parmetro PGA_AGGREGATE_TARGET se define con el objetivo de especificar la cantidad de memoria PGA de destino agregada disponible para la instancia. Dicho parmetro es slo un destino y se puede modificar de manera dinmica en el nivel de la instancia. Acepta un nmero de bytes, kilobytes, megabytes o gigabytes. Cuando se definen estos parmetros, la especificacin del tamao de las reas de trabajo se hace de manera automtica y con *_AREA_SIZE. En las versiones anteriores a Oracle9i, el DBA controlaba el tamao mximo de las reas de trabajo SQL definiendo los siguientes parmetros: SORT_AREA_SIZE, HASH_AREA_SIZE, BITMAP_MERGE_AREA_SIZE y CREATE_BITMAP_AREA_SIZE. La definicin de estos parmetros puede resultar difcil puesto que el tamao mximo del rea de trabajo se selecciona de forma ptima en funcin del tamao de entrada de datos y el nmero total de reas de trabajo activas en el sistema. Estos dos factores varan en gran medida de un rea de trabajo a la siguiente y de un momento a otro.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-26

rea Global de Programas (continuacin) Diferencias en la Asignacin de Memoria entre Servidores Dedicados y Servidores Compartidos El contenido de la memoria PGA vara en funcin de si la instancia se ejecuta en una configuracin de servidor dedicado o de servidor compartido. Por regla general, la memoria PGA incluye los siguientes componentes:

rea de Memoria

Servidor Dedicado Privado PGA PGA

Servidor Compartido

Naturaleza de la Memoria de Sesin Ubicacin del rea Persistente Ubicacin del rea de Tiempo de Ejecucin (SELECT) Ubicacin del rea de Tiempo de Ejecucin (DML/DDL)

Compartido SGA SGA

PGA

PGA

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-27

Estructura de Procesos
Oracle se beneficia de varios tipos de procesos: Procesos de usuario: Se inician cuando un usuario de base de datos solicita una conexin a Oracle Server Procesos de servidor: Se conectan a la instancia Oracle y se inician cuando un usuario establece una sesin Procesos en segundo plano: Se inician al iniciar una instancia Oracle

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-28

Procesos de Usuario
Programa que solicita interaccin con Oracle Server Debe establecer primero una conexin No interacta directamente con Oracle Server

Proceso de servidor Proceso de usuario Conexin establecida

Usuario de base de datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Procesos de Usuario Cualquier usuario de base de datos que necesite solicitar informacin a la base de datos debe establecer primero una conexin con Oracle Server. La conexin se solicita con una herramienta de interfaz de base de datos, como SQL*Plus, e iniciando el proceso de usuario. El proceso de usuario no interacta directamente con Oracle Server. En su lugar, genera llamadas mediante la UPI (Interfaz de Programa de Usuario), que crea una sesin e inicia un proceso de servidor.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-29

Procesos de Servidor
Programas que interactan directamente con Oracle Server Cumplen las llamadas generadas y devuelven resultados Pueden ser un servidor dedicado o compartido
Proceso de servidor Sesin creada Oracle Server

Conexin establecida Proceso de usuario

Usuario de base de datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Procesos de Servidor Una vez que el usuario ha establecido una conexin, se inicia un proceso de servidor para gestionar las solicitudes de los procesos de usuario. Un proceso de servidor puede ser de dos tipos: un proceso de servidor dedicado o un proceso de servidor compartido. En un entorno de servidor dedicado, el proceso de servidor gestiona la solicitud de un nico proceso de usuario. Una vez que el proceso de usuario se desconecta, el proceso de servidor termina. En un entorno de servidor compartido, el proceso de servidor gestiona la solicitud de varios procesos de usuario. El proceso de servidor se comunica con Oracle Server mediante la OPI (Interfaz de Programa Oracle). Nota: Las diferencias entre la asignacin del proceso de servidor en un entorno dedicado y en un entorno compartido se cubren en mayor profundidad en el curso Oracle9i Database Performance Tuning.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-30

Procesos en Segundo Plano


Mantienen y fuerzan las relaciones entre las estructuras fsicas y de memoria: Procesos en segundo plano obligatorios:
DBWn LGWR ARCn CJQ0 Dnnn LCKn PMON SMON LMDn LMON LMS Pnnn CKPT

Procesos en segundo plano opcionales:


QMNn RECO Snnn

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Procesos en Segundo Plano La arquitectura Oracle tiene cinco procesos en segundo plano obligatorios, que se analizan posteriormente en esta leccin. Adems de la lista obligatoria, Oracle tiene muchos procesos en segundo plano opcionales que se inician cuando se utiliza su opcin. Estos procesos opcionales no forman parte del mbito de este curso, a excepcin del proceso en segundo plano ARCn. En la lista siguiente se incluyen algunos procesos en segundo plano opcionales: ARCn: Archiver CJQ0: Proceso en segundo plano de Cola de Trabajos de Coordinador Dnnn: Distribuidor LCKn: Gestor de Bloqueos RAC Bloqueos de Instancia LMDn: Monitor de DLM de RACBloqueos Remotos LMON: Monitor de DLM de RACBloqueos Globales LMS: Servicio de Cach Global de RAC Pnnn: Esclavos de Consulta en Paralelo QMNn: Gestin de Colas Avanzada RECO: Recuperador Snnn: Servidor Compartido

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-31

DBWn (Escritor de Base de Datos)


Instancia SGA Cach de Buffers de Base de Datos

DBWn

Archivos de datos

Archivos de control

Archivos Redo Log

Base de datos

DBWn escribe si: Se produce un punto de control Los buffers sucios alcanzan el umbral No hay ningn buffer libre Se produce un timeout Se realiza un solicitud de sondeo RAC Tablespace OFFLINE Tablespace READ ONLY Tabla DROP o TRUNCATE Tablespace BEGIN BACKUP

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

DBWn (Escritor de Base de Datos) El proceso de servidor registra los cambios que hay que deshacer y los bloques de datos en la cach de buffers de base de datos. El proceso DBWn escribe los buffers sucios desde la cach de buffers de base de datos en los archivos de datos. Esto asegura que hay un nmero suficiente de buffers libres (buffers que se pueden sobrescribir cuando los procesos de servidor necesiten leer bloques en los archivos de datos) disponibles en la cach de buffers de base de datos. De esta manera, se mejora el rendimiento de la base de datos porque los procesos de servidor slo realizan cambios en la cach de buffers de base de datos. DBWn aplaza la escritura en los archivos de datos hasta que se produce uno de los siguientes eventos: Punto de control normal o incremental El nmero de buffers sucios alcanza un valor umbral Un proceso explora un nmero determinado de bloques cuando realiza una exploracin en busca de buffers libres y no puede encontrar ninguno Se produce un timeout Se produce una solicitud de sondeo en un entorno RAC (Real Application Clusters)

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-32

DBWn (Escritor de Base de Datos) (continuacin) Se coloca un tablespace normal o temporal offline Se coloca un tablespace en modo de slo lectura Borrado o truncamiento de una tabla ALTER TABLESPACE nombre del tablespace BEGIN BACKUP

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-33

LGWR (Escritura de Logs)


Instancia SGA Buffer de Redo Log

DBWn LGWR

LGWR escribe: En la validacin Si se llena a un tercio de su capacidad Si hay 1 MB de redo Cada tres segundos Antes de que escriba DBWn

Archivos de datos

Archivos Archivos de control Redo Log

Base de datos
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

LGWR (Escritura de Logs) LGWR realiza escrituras secuenciales desde el buffer de redo log al archivo redo log en las siguientes situaciones: Cuando se valida una transaccin Cuando el buffer de redo log se encuentra a un tercio de su capacidad Cuando existe ms de un megabyte de cambios en el buffer de redo log Antes de que DBWn escriba los bloques modificados de la cach de buffers de base de datos en los archivos de datos Cada tres segundos Puesto que es necesario rehacer los cambios para la recuperacin, LGWR slo confirmar la operacin de validacin (COMMIT) una vez que se haya escrito el redo en el disco. LGWR tambin puede llamar al proceso DBWn para escribir en los archivos de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-34

SMON (Monitor del Sistema)


Instancia SGA

SMON

Archivos de datos

Archivos Archivos de control Redo Log

Base de datos

Responsabilidades: Recuperacin de instancias Aplica los cambios pendientes en los archivos redo log online Abre la base de datos para que acceda el usuario Deshace las transacciones no validadas Fusiona el espacio libre Libera los segmentos temporales

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

SMON (Monitor del Sistema) Si falla la instancia Oracle, se perder toda la informacin del SGA que no se haya escrito en el disco. Por ejemplo, el fallo del sistema operativo produce el fallo de una instancia. Una vez que se haya perdido la instancia, el SMON de proceso en segundo plano realiza automticamente una recuperacin de la instancia cuando la base de datos se vuelve a abrir. La recuperacin de la instancia consta de los siguientes pasos: 1. Se aplican transacciones pendientes para recuperar los datos que no se hayan registrado en los archivos de datos, pero s en el archivo redo log online. Estos datos no se han escrito en el disco debido a la prdida del SGA durante el fallo de la instancia. Durante este proceso, SMON lee los archivos redo log online y aplica los cambios registrados en el archivo redo log online a los bloques de datos. Como todas las transacciones validadas se han escrito en los archivos redo log online, este proceso recupera completamente estas transacciones. 2. Se abre la base de datos para que los usuarios se puedan conectar. Cualquier dato que no se haya bloqueado por las transacciones no recuperadas est disponible inmediatamente.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-35

SMON (Monitor del Sistema) (continuacin) 3. Se hace un rollback en las transacciones no validadas. SMON o los procesos de servidor individual se encargan de hacer rollback en ellas a medida que acceden a los datos bloqueados. SMON tambin realiza ciertas funciones de mantenimiento de espacio: Combina, o fusiona, las reas adyacentes de espacio libre en los archivos de datos. Libera segmentos temporales para devolverlos como espacio libre en los archivos de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-36

PMON (Monitor de Procesos)


Instancia SGA

PMON

rea PGA

Hace una limpieza cuando los procesos han fallado: Haciendo un rollback en las transacciones Liberando los bloqueos Liberando otros recursos Reiniciando distribuidores interrumpidos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

PMON (Monitor de Procesos) El proceso en segundo plano PMON realiza una limpieza despus de los procesos fallidos de la siguiente forma: Realizando rollback en la transaccin actual del usuario Liberando todos los bloqueos de tablas o filas actuales Liberando otros recursos que estn reservados en ese momento por el usuario Reiniciando distribuidores interrumpidos Los distribuidores se explican en mayor profundidad en el curso Administracin de la Base de Datos Oracle9i: Conceptos Bsicos II.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-37

CKPT (Punto de Control)


Instancia SGA

DBWn LGWR CKPT

Archivos de datos

Archivos Archivos de control Redo Log

Responsable de: Sealar a DBWn en los puntos de control Actualizar las cabeceras de archivos de datos con informacin del punto de control Actualizar los archivos de control con informacin del punto de control

Base de datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

CKPT (Punto de Control) Cada tres segundos, el proceso CKPT almacena datos en el archivo de control para identificar el punto del archivo redo log online en el que se debe iniciar la recuperacin, que se llama punto de control. El objetivo de un punto de control es garantizar que todos los buffers de la cach de buffers de base de datos que se han modificado antes de un punto en el tiempo se hayan escrito en los archivos de datos. Este punto en el tiempo (llamado posicin del punto de control) es el punto en el que se debe iniciar la recuperacin de la base de datos en caso del fallo de una instancia. El proceso DBWn ya habr escrito todos los buffers de la cach de buffers de base de datos que se han modificado antes de dicho punto. En versiones anteriores a Oracle9i, este proceso se realizaba al final del archivo redo log online. En caso de que se produzca un cambio de log, el proceso CKPT tambin escribe esta informacin de punto de control en las cabeceras de los archivos de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-38

CKPT (Punto de Control) (continuacin) Los puntos de control se inician por los siguientes motivos: Para garantizar que los bloques de datos modificados en la memoria se escriben en el disco con frecuencia, de forma que no se pierdan en caso de que se produzca el fallo de un sistema o de una base de datos. Para reducir el tiempo necesario de recuperacin de una instancia. Para la recuperacin, slo es necesario procesar las entradas del archivo redo log online posteriores al ltimo punto de control. Para garantizar que todos los datos validados se han escrito en los archivos de datos durante el cierre. La informacin de punto de control que escribe el proceso CKPT incluye la posicin del punto de control, el nmero de cambio del sistema, la ubicacin en el archivo redo log online desde la que iniciar la recuperacin, la informacin sobre logs, etc. Nota: CKPT no escribe bloques de datos en el disco ni bloques de redo en los archivos redo log online.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-39

ARCn (Archiver)
Proceso opcional en segundo plano Archiva automticamente archivos redo log online si est definido el modo ARCHIVELOG Protege el registro contra todos los cambios realizados en la base de datos
ARCn
Archivos de datos Archivos Archivos de control Redo Log Archivos redo log archivados

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

ARCn (Archiver) ARCn es un proceso en segundo plano opcional, no obstante, es crucial para recuperar una base de datos despus de la prdida de un disco. Cuando se llena un archivo redo log online, Oracle Server comienza a escribir en el siguiente. El proceso de cambio de un archivo redo log online a otro se llama cambio de log. El proceso ARCn inicia una copia de seguridad, o archivado, del grupo de logs llenos en cada cambio de log. Archiva automticamente el archivo redo log online antes que se pueda volver a utilizar el log, con el fin de proteger todos los cambios realizados en la base de datos. Esto permite recuperar la base de datos hasta el punto en que se produjo el fallo, incluso aunque est daada una unidad de disco. Archivado de los Archivos Redo Log Online Una de las decisiones importantes que debe tomar un DBA es si debe configurar la base de datos para que funcione en modo ARCHIVELOG o en modo NOARCHIVELOG. Modo NOARCHIVELOG: En este modo, los archivos redo log online se sobrescriben cada vez que se produce un cambio de log. LGWR no sobrescribir un grupo de archivos redo log online hasta que el punto de control se haya terminado para ese grupo. Esto asegura que los datos validados se puedan recuperar si se produce un error de instancia. Durante el error de instancia, slo se pierde el SGA. No hay prdida de discos, slo de memoria. Por ejemplo, un error del sistema operativo provoca un error de instancia.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-40

ARCn (Archiver) (continuacin) Archivado de Archivos Redo Log Online (continuacin) Modo ARCHIVELOG: En caso de que la base de datos se configure para que se ejecute en modo ARCHIVELOG, ser necesario archivar los grupos inactivos de archivos redo log online llenos antes de que se puedan volver a utilizar de nuevo. Dado que los cambios efectuados en la base de datos se registran en los archivos redo log online, el administrador de la base de datos puede utilizar la copia de seguridad fsica de los archivos de datos y los archivos redo log online archivados para recuperar la base de datos sin perder ninguno de los datos validados debido a un solo punto de fallo, incluida la prdida de un disco. Normalmente, se suele configurar una base de datos de produccin para que se ejecute en modo ARCHIVELOG. Los modos de archive log se explican en mayor profundidad en el curso Administracin de la Base de Datos Oracle9i: Conceptos Bsicos II.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-41

Estructura Lgica
Establece el modo de uso del espacio fsico de una base de datos Jerarqua formada por tablespaces, segmentos, extensiones y bloques
Tablespace Archivo de datos Segmento Segmento

Extensin

Bloques

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Estructura Lgica Existe la siguiente jerarqua de estructuras lgicas: Una base de datos Oracle contiene como mnimo un tablespace. Un tablespace contiene uno o ms segmentos. Cada segmento est formado por extensiones. Una extensin est formada por bloques lgicos. Un bloque es la unidad ms pequea para las operaciones de lectura y escritura. La arquitectura de la base de datos Oracle incluye las estructuras fsicas y lgicas que conforman la base de datos. La estructura fsica incluye archivos de control, archivos redo log online y archivos de datos que conforman la base de datos. La estructura lgica incluye tablespaces, segmentos, extensiones y bloques de datos. Oracle Server permite un control preciso del uso del espacio de disco mediante estructuras de almacenamiento lgicas y de tablespaces, incluidos segmentos, extensiones y bloques de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-42

Estructura Lgica (continuacin) Tablespaces Los datos de una base de datos Oracle se almacenan en tablespaces. Una base de datos Oracle se puede agrupar de forma lgica en reas lgicas ms pequeas de espacio conocidas como tablespaces. Un tablespace slo puede pertenecer a una base de datos a la vez. Cada tablespace est formado por uno o ms archivos del sistema operativo, que reciben el nombre de archivos de datos. Un tablespace puede tener uno o ms segmentos. Los tablespaces se pueden poner en lnea mientras se est ejecutando la base de datos. Excepto en el caso del tablespace SYSTEM o un tablespace con un segmento de deshacer activo, los tablespaces se pueden poner offline y dejar que la base de datos se siga ejecutando. Los tablespaces pueden cambiar entre un estado de lectura y escritura y de slo lectura. Archivos de Datos (Estructura No Lgica): Cada tablespace de una base de datos Oracle est formado por uno o ms archivos llamados archivos de datos. Se trata de estructuras fsicas que se ajustan al sistema operativo en el que se ejecuta Oracle Server. Un archivo de datos slo puede pertenecer a un tablespace. Oracle Server crea un archivo de datos para un tablespace asignando la cantidad especificada de espacio en disco ms una pequea cantidad de sobrecarga. El administrador de la base de datos puede cambiar el tamao de un archivo de datos una vez creado, o bien puede especificar que un archivo debera aumentar dinmicamente a medida que aumentan los objetos en el tablespace. Segmentos Un segmento es el espacio asignado a una estructura de almacenamiento lgica especfica dentro de un tablespace. Un tablespace puede estar formado por uno o ms segmentos. Un segmento no puede abarcar tablespaces; sin embargo, un segmento puede abarcar mltiples archivos de datos que pertenezcan al mismo tablespace. Cada segmento est formado por una o ms extensiones. Extensiones El espacio se asigna a un segmento mediante extensiones. Una o ms extensiones componen un segmento. - Cuando se crea un segmento, ste est formado, como mnimo, por una extensin. - A medida que el segmento va creciendo, se le agregan extensiones. - El DBA puede agregar extensiones a un segmento manualmente. Una extensin es un juego de bloques Oracle contiguos. Una extensin no puede abarcar archivos de datos y, por tanto, debe existir en un archivo de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-43

Estructura Lgica (continuacin) Bloques de Datos Oracle Server gestiona el espacio de almacenamiento de los archivos de datos en unidades llamadas bloques Oracle o bloques de datos. Con el mayor nivel de granularidad posible, los datos de una base de datos Oracle se almacenan en bloques de datos. Los bloques de datos Oracle son las unidades de almacenamiento ms pequeas que Oracle Server puede asignar, leer o escribir. Un bloque de datos se corresponde con uno o ms bloques del sistema operativo asignados desde un archivo de datos existente. El tamao de bloque de datos estndar de cada base de datos Oracle lo especifica el parmetro de inicializacin DB_BLOCK_SIZE cuando se crea la base de datos. El tamao del bloque de datos debera ser mltiplo del tamao del bloque del sistema operativo para evitar operaciones de E/S innecesarias. El tamao mximo del bloque de datos depende del sistema operativo.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-44

Procesamiento de Sentencias SQL


Conexin a una instancia mediante:
Procesos de usuario Procesos de servidor

Los componentes de Oracle Server que se utilicen dependern del tipo de sentencia SQL:
Filas de devolucin de consultas Cambios de log de sentencias DML La validacin garantiza la recuperacin de la transaccin

Algunos componentes de Oracle Server no participan en el procesamiento de las sentencias SQL.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Procesamiento de Sentencias SQL Procesamiento de una Consulta Anlisis: - Buscar una sentencia idntica - Comprobar la sintaxis, los nombres de objetos y los privilegios - Bloquear los objetos que se utilizan durante el anlisis - Crear y almacenar el plan de ejecucin Enlace: Obtener valores para variables Ejecucin: Procesar la sentencia Recuperacin: Devolver filas al proceso de usuario

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-45

Procesamiento de Sentencias SQL (continuacin) Procesamiento de una Sentencia DML Anlisis: La fase de anlisis es la misma que la utilizada para procesar una consulta Enlace: La misma fase de enlace que la utilizada para procesar una consulta. Ejecucin: - Si los bloques de datos y de deshacer no estn todava en la cach de buffers de base de datos, el proceso de servidor los lee desde los archivos de datos en la cach de buffers de base de datos. - El proceso de servidor coloca bloqueos en las filas que se van a modificar. El bloque de deshacer se utiliza para almacenar la imagen anterior de los datos, de forma que se pueda hacer rollback en los cambios de las sentencias DML si fuera necesario. - Los bloques de datos registran los nuevos valores de los datos. - El proceso de servidor registra la imagen anterior en el bloque de deshacer y actualiza el bloque de datos. Estos dos cambios se llevan a cabo en la cach de buffers de base de datos. Todos los bloques cambiados en la cach de buffers de base de datos se marcan como buffers sucios. Es decir, los buffers que no se corresponden con los bloques del disco. - El procesamiento de un comando DELETE o INSERT utiliza pasos similares. La imagen anterior de un comando DELETE contiene los valores de columna de la fila suprimida, mientras que la imagen anterior de un comando INSERT contiene la informacin de ubicacin de filas. Procesamiento de una Sentencia DDL La ejecucin de una sentencia DDL (Lenguaje de Definicin de Datos) es distinta a la ejecucin de las sentencias y las consultas DML (Lenguaje de Manipulacin de Datos), ya que una sentencia DDL correcta requiere acceso de escritura al diccionario de datos. Para este tipo de sentencias, el anlisis comprende en realidad el anlisis, la consulta del diccionario de datos y la ejecucin. Las sentencias SQL de gestin del sistema , gestin de sesiones y gestin de transacciones se procesan en las etapas de anlisis y ejecucin. Para volver a ejecutarlas, slo tiene que realizar otra ejecucin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-46

Resumen
En esta leccin, ha aprendido a: Explicar los archivos de la base de datos: archivos de datos, archivos de control, archivos redo log online Explicar las estructuras de memoria SGA: cach de buffers de base de datos, conjunto compartido y buffer de redo log Explicar los principales procesos en segundo plano: DBWn, LGWR, CKPT, PMON, SMON Explicar el uso del proceso en segundo plano opcional ARCn Identificar procesos en segundo plano opcionales y condicionales Explicar la jerarqua lgica
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-47

Prctica 1: Visin General


Esta prctica abarca los siguientes temas: Revisin de los componentes de la arquitectura Identificacin de las estructuras que participan en la conexin de un usuario a una instancia Oracle

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-48

Prctica 1: Componentes de la Arquitectura de Oracle 1 Cul de las siguientes afirmaciones es correcta? a Oracle Server es un conjunto de datos formado por tres tipos de archivos. b Un usuario establece una conexin a la base de datos iniciando una instancia Oracle. c Una conexin es una ruta de comunicacin entre Oracle Server y la instancia Oracle. d Se inicia una sesin cuando Oracle Server valida un usuario. 2 Cul de las siguientes reas de memoria no forma parte de la memoria SGA? a Cach de buffers de base de datos b PGA c Buffer de redo log d Conjunto compartido 3 Entre las siguientes afirmaciones sobre el conjunto compartido, dos son correctas. Cules son? a El conjunto compartido est formado por la cach de biblioteca, la cach del diccionario de datos, el rea SQL compartido, el conjunto Java y el conjunto grande. b El conjunto compartido se utiliza para almacenar las ltimas sentencias SQL ejecutadas. c El conjunto compartido se utiliza para un objeto que se puede compartir de forma global. d La cach de biblioteca est formada por las reas SQL compartido y PL/SQL compartido. 4 Cul de las siguientes reas de memoria se utiliza para almacenar en cach la informacin del diccionario de datos? a Cach de buffers de base de datos b PGA c Buffer de redo log d Conjunto compartido 5 El principal fin del buffer de redo log es registrar todos los cambios en los bloques de datos de la base de datos. a Verdadero b Falso 6 La regin de memoria PGA contiene datos e informacin de control para varios procesos de servidor o para varios procesos en segundo plano. a Verdadero b Falso 7 Cul de los siguientes elementos est disponible cuando se inicia una instancia Oracle? a Proceso de usuario b Proceso de servidor c Procesos en segundo plano

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-49

Prctica 1: Componentes de la Arquitectura de Oracle (continuacin) 8 Identifique cinco procesos en segundo plano obligatorios. ________________________________________ ________________________________________ ________________________________________ ________________________________________ ________________________________________ 9 Una el proceso con su tarea. a Escritor de base de datos 1 Ayuda a escribir en las cabeceras de los archivos de datos b Escritura de logs 2 Responsable de la recuperacin de instancias c Monitor del sistema 3 Realiza una limpieza cuando los procesos han fallado d Monitor de procesos 4 Registra los cambios de la base de datos con fines de recuperacin e Punto de control 5 Escribe en los buffers sucios para los archivos de datos 10 La estructura fsica de una base de datos Oracle est formada por los siguientes tipos de archivos: archivos de control, archivos de datos y archivos redo log online. a Verdadero b Falso Coloque las siguientes estructuras por orden de jerarqua empezando por la base de datos. a Tablespaces b Extensin c Segmento d Base de datos e Bloque Identifique los componentes de Oracle Server. ________________________________________ ________________________________________ Identifique los componentes de una instancia Oracle. ________________________________________ ________________________________________ Identifique tres tipos de archivos que componen una base de datos Oracle. ________________________________________ ________________________________________ ________________________________________

11

12

13

14

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 1-50

Introduccin a Oracle Server

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Identificar herramientas de administracin de base de datos comunes disponibles para el DBA Identificar las caractersticas de Oracle Universal Installer Utilizar SQL*Plus para manipular una base de datos Oracle e interactuar con ella Enumerar los componentes principales de Oracle Enterprise Manager

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-2

Herramientas de Administracin de Bases de Datos

Herramienta Oracle Universal Installer (OUI) Asistente de Configuracin de Bases de Datos Oracle SQL*Plus Oracle Enterprise Manager

Descripcin Utilizada para instalar, actualizar o eliminar componentes de software Herramienta de interfaz grfica de usuario que interacta con OUI, o que se puede utilizar de forma independiente para crear, suprimir o modificar una base de datos Utilidad para acceder a los datos de una base de datos Oracle Interfaz grfica utilizada para administrar, controlar y ajustar una o ms bases de datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Herramientas de Administracin de Bases de Datos En este curso se explican las herramientas enumeradas, aunque tan slo son un subjuego de las utilidades que proporciona Oracle.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-3

Oracle Universal Installer


Utilizado para instalar, actualizar o eliminar componentes de software y crear una base de datos Basado en un sistema Java Entre sus caractersticas se incluyen
Resolucin automtica de dependencias Permite instalaciones basadas en Web Seguimiento de inventario de instalaciones de componentes y series Desinstalacin de componentes instalados Soporte para varios directorios raz de Oracle Soporte para tecnologa de globalizacin

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Oracle Universal Installer Oracle Universal Installer, basado en Java, es una solucin de instalacin para todas las plataformas con Java activado, permitiendo un flujo de instalacin comn y una experiencia de usuario independiente de la plataforma. Oracle Universal Installer Detecta dependencias entre componentes y realiza la instalacin en consecuencia Se puede utilizar para apuntar a una URL, donde se ha definido una zona intermedia o de liberacin, y para instalar software de forma remota sobre HTTP Se puede utilizar para eliminar productos instalados. Las acciones de desinstalacin deshacen las acciones de instalacin. Mantiene un inventario de todos los directorios raz de Oracle en una mquina de destino, as como sus nombres, productos y las versiones de los productos instalados. Detecta el idioma del sistema operativo y ejecuta la sesin de instalacin en ese idioma. Se puede ejecutar en modo interactivo o silencioso. Oracle Universal Installer se ejecuta en modo silencioso (o no interactivo) con un archivo de respuesta.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-4

Inicio de Oracle Universal Installer


Para iniciar Oracle Universal Installer en UNIX:
$ ./runInstaller

Para iniciar Oracle Universal Installer en NT:


Start > Programs > Oracle Installation Products > Universal Installer

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Inicio de Oracle Universal Installer UNIX El programa de instalacin se denomina runInstaller y est ubicado en el directorio oracle\oui\install. No ejecute Installer como usuario raz en UNIX.. NT El programa de instalacin se denomina setup.exe y est ubicado en el directorio Program Files/Oracle/oui/install. Nota: Consulte la documentacin de Oracle especfica del sistema operativo para obtener ms informacin acerca de la instalacin de Oracle Server en su plataforma.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-5

Instalacin no Interactiva con Archivos de Respuesta


No requiere interaccin por parte del usuario Archivos de respuesta:
Las plantillas se deben editar. Los archivos de texto contienen variables y valores. Los parmetros se personalizan.

Para iniciar Oracle Universal Installer en modo no interactivo:


./runInstaller -responsefile myrespfile -silent

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Instalacin no Interactiva con Archivos de Respuesta La instalacin no interactiva se lleva a cabo cuando no se requiere ninguna accin por parte del usuario o si se utilizan terminales no grficas para la misma. Los parmetros de instalacin se personalizan mediante un archivo de respuesta. Un archivo de respuesta es un archivo de texto que contiene variables y valores utilizados por Oracle Universal Installer durante el proceso de instalacin. Entre los ejemplos de parmetros de instalacin se incluyen valores para ORACLE_HOME y tipos de instalacin (es decir, Tpica o Personalizada). El usuario debe primero copiar y editar el archivo de respuesta para especificar los componentes que se van a instalar. UNIX Las plantillas de los archivos de respuesta estn disponibles en el directorio stage/response. En los sistemas UNIX, hay que introducir lo siguiente en la lnea de comandos del directorio en el que est instalado Universal Installer: ./runInstaller -responsefile nombre_de_archivo [-silent] [nowelcome]

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-6

Instalacin no Interactiva con Archivos de Respuesta (continuacin) NT Las plantillas de los archivos de respuesta estn disponibles en el directorio Response del CD-ROM. Para iniciar Oracle Universal Installer y especificar el archivo de respuesta, hay que introducir el siguiente comando en la lnea de comandos del directorio en el que est instalado Universal Installer. setup.exe responsefile filename [-silent] Nota: ste no es el modo carcter. Ejemplo: Inicie Oracle Universal Installer en modo no interactivo. UNIX
./runInstaller responsefile NOMBRE_DE_ARCHIVO [-SILENT] [-NOWELCOME]

donde: NOMBRE_DE_ARCHIVO: Identifica el archivo de respuesta SILENT: Ejecuta Oracle Universal Installer en modo silencioso NOWELCOME: No muestra la ventana de bienvenida. Si se utiliza el modo SILENT, este parmetro no es necesario Archivo de Respuesta de Ejemplo para UNIX [General] RESPONSEFILE_VERSION=1.7.0 [Session] UNIX_GROUP_NAME="dba" FROM_LOCATION="/u01/stage/products.jar" ORACLE_HOME="/u01/app/oracle/ora9i" ORACLE_HOME_NAME="Ora9i" TOPLEVEL_COMPONENT={"oracle.server", "9.0.1.1.1"} SHOW_COMPONENT_LOCATIONS_PAGE=false SHOW_SUMMARY_PAGE=false SHOW_INSTALL_PROGRESS_PAGE=false SHOW_REQUIRED_CONFIG_TOOL_PAGE=false SHOW_OPTIONAL_CONFIG_TOOL_PAGE=false SHOW_END_SESSION_PAGE=false NEXT_SESSION=true SHOW_SPLASH_SCREEN=true SHOW_WELCOME_PAGE=false SHOW_ROOTSH_CONFIRMATION=true SHOW_EXIT_CONFIRMATION=true INSTALL_TYPE="Typical s_GlobalDBName="u01.us.oracle.com" s_mountPoint="/u01/app/oracle/ora9i/dbs" s_dbSid="db09" b_createDB=true

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-7

Instalacin no Interactiva con Archivos de Respuesta (continuacin) Archivo de Respuesta de Ejemplo (continuacin) La seccin General especifica el nmero de versin del archivo de respuesta. La seccin Sessions enumera distintos recuadros de dilogo de Oracle Universal Installer. Algunos de estos recuadros de dilogo son: - FROM LOCATION: Especifica la ubicacin del origen de los productos que se van a instalar - ORACLE_HOME: Es un valor para ORACLE_HOME - ORACLE_HOME_NAME: Es un valor para ORACLE_HOME_NAME - SHOW INSTALL PROGRESS: Es la pgina del progreso de la instalacin que aparece durante la fase de instalacin - SHOW ROOTISH CONFIRMATION: Se define en TRUE si se debe mostrar el recuadro de dilogo de confirmacin para ejecutar el archivo de comandos root.sh - SHOW EXIT CONFIRMATION: Se define en TRUE si se debe mostrar la confirmacin al salir del instalador El xito o fracaso de la instalacin silenciosa se genera en un archivo denominado silentInstall.log. UNIX Este archivo se generar en el directorio /tmp. NT Este archivo se generar en el directorio especificado por la variable TEMP. Nota: Consulte la gua de instalacin especfica del sistema operativo para obtener informacin ms detallada acerca de la configuracin de un archivo de respuesta.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-8

Asistente de Configuracin de Bases de Datos Oracle


El Asistente de Configuracin de Bases de Datos Oracle sirve para: Crear una base de datos Configurar opciones de base de datos Suprimir una base de datos Gestionar plantillas

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Asistente de Configuracin de Bases de Datos Oracle La creacin de una base de datos con el Asistente de Configuracin de Bases de Datos Oracle se cubre en la leccin Creacin de una Base de Datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-9

Usuarios Administradores de Base de Datos

Los usuarios SYS y SYSTEM se crean de forma automtica


Durante la creacin de la base de datos Se les otorga el rol DBA

Usuario SYS
Propietario del diccionario de datos de la base de datos Contrasea por defecto: change_on_install

Usuario SYSTEM
Propietario de las vistas y tablas internas adicionales que utilizan las herramientas de Oracle Contrasea por defecto: manager

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Usuarios Administradores de Base de Datos Es necesario disponer de privilegios adicionales para ejecutar tareas administrativas en Oracle Server como, por ejemplo, la creacin de usuarios. Con la base de datos, se crean automticamente dos cuentas de usuario de base de datos, SYS y SYSTEM, a las que se asigna el rol DBA. Es decir, un rol predefinido que se crea automticamente con cada base de datos. El rol DBA tiene todos los privilegios del sistema de base de datos. SYS Cuando se crea una base de datos, tambin se crea el usuario SYS, al que se identifica inicialmente por la contrasea change_on_install. El usuario SYS es el propietario del diccionario de datos, que es fundamental. Al conectarse como SYS, se debe hacer como SYSDBA o SYSOPER. Si intenta conectarse sin privilegios de SYSDBA o SYSOPER, recibir el error ORA-28009 connecting to SYS should be SYSDBA or SYSOPER.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-10

Usuarios Administradores de Base de Datos (continuacin) SYSTEM Al crear una base de datos, el usuario SYSTEM tambin se crea automticamente. SYSTEM se identifica inicialmente mediante la contrasea manager. Tambin se crean las tablas y las vistas adicionales que posea el usuario SYSTEM. Contienen la informacin administrativa que utilizan las herramientas Oracle. Usuarios Administradores de Base de Datos Adicionales Se pueden crear usuarios adicionales en funcin del modo de creacin de la base de datos, es decir, de forma manual o utilizando el Asistente de Configuracin de Base de Datos. Debe crear, como mnimo, un nombre de usuario de administrador adicional para utilizarlo cuando se realicen las tareas administrativas diarias. Contraseas por Defecto de SYS y SYSTEM Por motivos de seguridad, las contraseas por defecto SYS y SYSTEM se deben modificar inmediatamente despus de la creacin de la base de datos. Nota: A partir de Oracle9i versin 2, el Asistente de Configuracin de Bases de Datos le solicitar que cambie la contrasea por defecto de SYS y SYSTEM. Asimismo, al crear una base de datos utilizando el comando CREATE DATABASE de SQL*Plus, los usuarios SYS y SYSTEM se pueden identificar con contraseas diferentes a la contrasea por defecto. Si no se identifican las contraseas en el comando CREATE DATABASE, se utilizarn las contraseas por defecto.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-11

SQL*Plus
Herramienta de Oracle que permite:
Manipular la base de datos e interactuar con ella Iniciar y cerrar la base de datos, crear y ejecutar consultas, agregar filas, modificar datos y escribir informes personalizados

Subjuego del lenguaje SQL estndar con complementos especficos Conexin con SQL*Plus:
sqlplus /nolog connect / as sysdba
Connected to an idle instance.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

SQL*Plus SQL*Plus es la herramienta de lnea de comandos de Oracle que se utiliza para ejecutar la serie de comandos SQL (Lenguaje Estructurado de Consulta) estndar. SQL es un lenguaje funcional que se utiliza para comunicarse con Oracle con el fin de recuperar, agregar, actualizar o modificar datos de la base de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-12

Oracle Enterprise Manager


Funciona como herramienta de gestin centralizada de sistemas para los DBA Herramienta para administrar, diagnosticar y ajustar varias bases de datos Herramienta para administrar varios nodos de red y servicios desde muchas ubicaciones Se utiliza para compartir tareas con otros administradores Proporciona herramientas para administrar servidores paralelos y bases de datos replicadas

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Oracle Enterprise Manager Oracle Enterprise Manager es un marco de gestin unificado formado por una consola basada en Java, una serie de herramientas y servicios y una red de servidores de gestin y agentes inteligentes. Incluye tanto el rbol jerrquico y las representaciones grficas de los objetos como sus relaciones en el sistema. Todos los servicios comunes (incluyendo la gestin y la programacin de trabajos, la gestin de eventos, la deteccin y la gestin de bases de datos y la deteccin y la gestin de servicios) proporcionan un marco completo para Oracle Enterprise Manager. Adems, Oracle Enterprise Manager incorpora aplicaciones integradas que le permiten realizar tareas de administracin habituales y avanzadas. Son paquetes opcionales como, por ejemplo, Oracle Diagnostics Pack, Paquete Oracle Tuning y Paquete Change Management, y otras aplicaciones como, por ejemplo, el Gestor de Red de Oracle, Spatial Index Advisor y Text Manager.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-13

Arquitectura de Oracle Enterprise Manager

Oracle Management Server Consola

Agente Oracle Server

Repositorio

Agente Oracle Server

Oracle Management Server

Oracle Server

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Arquitectura de Oracle Enterprise Manager Oracle Enterprise Manager utiliza una arquitectura de tres capas que incluye: Primera capa: Clientes de consola y herramientas integradas que proporcionan una interfaz grfica para los administradores. Segunda capa: Oracle Management Servers y un repositorio de base de datos que proporciona una capa media escalable para las tareas de gestin del sistema de procesamiento. Tercera capa: Agentes inteligentes instalados en cada nodo que controlan sus servicios y ejecutan tareas desde Oracle Management Server. Puesto que no es necesario implementar Oracle Enterprise Manager como un sistema de tres capas en todos los casos, Oracle Enterprise Manager tambin est disponible como arquitectura de dos capas, que se conecta directamente a las bases de datos. Si se inicia la consola de forma autnoma, una sola persona puede utilizar una o ms aplicaciones sin necesidad de Oracle Management Server o el agente inteligente. Se puede utilizar una consola autnoma si desea realizar tareas administrativas bsicas que no necesiten el sistema de trabajo, evento o grupo.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-14

Arquitectura de Oracle Enterprise Manager (continuacin) Consola La primera capa est formada por clientes, como consolas y aplicaciones de gestin, que presentan interfaces grficas de usuario a los administradores para todas las tareas de gestin. La primera capa depende de Oracle Management Server de segunda capa para la mayor parte de la lgica de aplicacin. Nota: A partir de la versin Oracle9i, se puede realizar la conexin a la consola de forma autnoma. En versiones anteriores a Oracle9i, todas las conexiones a la consola se realizaban a travs de Oracle Management Server. Oracle Management Server El componente de segunda capa de Oracle Enterprise Manager es OMS (Oracle Management Server). OMS es el ncleo del marco de Oracle Enterprise Manager y proporciona cuentas de usuario administrativas, procesa funciones como, por ejemplo, trabajos y eventos, y gestiona el flujo de informacin entre la consola (primera capa) y los nodos gestionados (tercera capa). OMS utiliza un repositorio para almacenar todos los datos de sistema, los datos de aplicacin, la informacin del estado de los nodos gestionados y la informacin acerca de cualquier paquete gestionado por el sistema. Repositorio de Oracle Enterprise Manager Un repositorio es un juego de tablas que se crea cuando se configura OMS. OMS utiliza el repositorio como almacn de back-end persistente. Si es necesario, se puede utilizar ms de un OMS. Varios OMS comparten un repositorio y proporcionan fiabilidad y tolerancia de fallos. Nodos La tercera capa se compone de nodos gestionados, que contienen destinos, como bases de datos y otros servicios gestionados. En cada nodo reside un agente inteligente de Oracle, que se comunica con el OMS y realiza las tareas enviadas por las consolas y las aplicaciones cliente. Slo se requiere un agente inteligente por nodo. Un agente inteligente funciona de forma independiente de la base de datos, la consola y Oracle Management Server. Puesto que funcionan de forma independiente de otros componentes, los agentes inteligentes pueden realizar tareas como, por ejemplo, el inicio y el cierre de una base de datos y permanecer operativos si otra parte del sistema falla. El identificador del agente inteligente es dbsnmp.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-15

Consola
Punto de inicio central Puede ejecutarse en un cliente fino o un cliente grueso Se puede iniciar de manera autnoma o por medio de un OMS

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Consola La consola proporciona una interfaz grfica para los administradores y un punto de inicio central para todas las aplicaciones y herramientas de gestin. Adems, SQL*Plus Worksheet se puede iniciar desde la consola. La consola se puede ejecutar en modo fino a travs de la Web o como un cliente grueso. Los clientes finos utilizan un explorador Web para conectarse a un servidor dnde estn instalados los archivos de consola, mientras que los clientes gruesos precisan la instalacin local de los archivos de consola. La consola se puede iniciar tanto de forma autnoma como conectndose a Oracle Management Server. Nota: El objetivo de este curso no es aportar informacin detallada acerca de Oracle Enterprise Manager, la consola u Oracle Management Server. Para obtener informacin detallada acerca del uso de Oracle Enterprise Manager, consulte el curso Oracle Enterprise Manager 9i.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-16

Cmo Iniciar la Consola de Oracle Enterprise Manager Ejemplo: Iniciar la Consola de Oracle Enterprise Management. 1. Lance la consola: Start > Programs > Oracle-OraHome92 > Enterprise Manager Console 2. Inicie la consola seleccionando una de las opciones siguientes: - Conctese a Oracle Management Server - Inicie en modo autnomo 3. Haga clic en OK.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-17

Resumen
En esta leccin, ha aprendido a: Identificar herramientas de administracin de base de datos Identificar las caractersticas de Oracle Universal Installer Utilizar SQL*Plus para manipular la base de datos e interactuar con ella Identificar los componentes principales de Oracle Enterprise Manager

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-18

Prctica 2: Visin General


Esta prctica abarca los siguientes temas: Conexin con SQL*Plus Conexin con la consola de Oracle Enterprise Manager

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-19

Prctica 2: Introduccin a Oracle Server Esta prctica est dirigida por un instructor, quien le proporcionar las cuentas de conexin y le guiar durante el proceso de conexin a su cuenta. Anote a continuacin la informacin proporcionada por el instructor. Nombre del host: _________________________________ Nombre del SID: __________________________________ 1 Conctese a SQL*Plus como SYSDBA. Indicacin - Conctese a su cuenta utilizando las instrucciones que le proporcione el instructor. - Inicie SQL*Plus. - Conctese como usuario SYS.
$ sqlplus /nolog SQL*Plus: Release 9.2.0.1.0 - Production on Mon Aug 5 10:52:10 2002 Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved. . SQL> CONNECT / AS SYSDBA Connected.

2 En SQL*Plus, ejecute la siguiente consulta para verificar que se ha realizado la conexin con la base de datos. SQL> SELECT * FROM DUAL; D X 3 Inicie Oracle Enterprise Manager en modo autnomo. - Navegue a Start > Programs > Oracle-OraHome92 > Enterprise Manager Console. - Seleccione la opcin Launch standalone. - Seleccione OK.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-20

Prctica 2: Introduccin a Oracle Server (continuacin) 4 Si est en un aula de Oracle, debe realizar los siguientes cuatro pasos que son especficos de la configuracin de aulas de Oracle: a. Haga clic en el icono de actualizacin de archivos omsconfig en el escritorio. Introduzca el nombre del servidor UNIX que utiliza su aula. El instructor le proporcionar este nombre. Introdzcalo exactamente como se lo proporcione el instructor. Esta entrada es sensible a maysculas/minsculas. b. Abra una ventana de MSDOS. c. En el prompt, introduzca: oemctl start oms. Espere a que aparezca el mensaje:
"The Oracle92_homeManagementServer service was started successfully."

d. Cierre la ventana de MSDOS. Inicie Oracle Enterprise Manager con Oracle Management Service. Inicie la consola de OEM y seleccione la opcin Login to the Oracle Management Server. Conctese con los siguientes datos: Administrador: sysman Nota: Sensible a maysculas/minsculas. Contrasea: oem_temp Nota: Sensible a maysculas/minsculas. Cuando el sistema se lo solicite, cambie la contrasea a oracle. Nota: Sensible a maysculas/minsculas. Management Server: (Proporcionado por el instructor) Navegue a Navigator > Discover Nodes desde el men principal despus de iniciar OEM. Se abrir la consola y aparecer el recuadro de dilogo Discovery Wizard. Seleccione Next. Introduzca el nombre del nodo que desea gestionar, es decir, el nombre del host del servidor de base de datos designado. (Proporcionado por el instructor) Haga clic en Next. Seleccione Finish una vez terminada la deteccin. Haga clic en OK. Nota: Avise al instructor si la deteccin no es correcta. Ample la carpeta Databases. Haga clic dos veces en la base de datos designada proporcionada por el instructor. Proporcione la informacin de conexin: Usuario: sys Contrasea: secure Como: SYSDBA Defina las credenciales del nodo para la ejecucin de trabajos. Navegue a Configuration > Preferences en el men principal Seleccione la pgina Preferred Credentials. Desplcese hacia abajo y seleccione la entrada de la base de datos designada.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-21

Prctica 2: Introduccin a Oracle Server (continuacin) 5 Inicie SQL*Plus Worksheet. SQL*Plus Worksheet se puede iniciar desde la Consola de Oracle Enterprise Manager con la siguiente ruta de navegacin: Navegue a Tools > Database Applications > SQL*Plus Worksheet SQL*Plus Worksheet tambin se puede iniciar desde el men de Windows NT de la siguiente forma: Navegue a Start > Programs > Oracle-OraHome92 > Application Development > SQLPlus Worksheet Conctese directamente a la base de datos definida por el instructor y escriba:
Nombre de usuario Contrasea Servicio

Conctese como: SYSDBA Haga clic en OK. Nota: Cada vez que se conecte como un usuario diferente (dentro de SQL*Plus Worksheet), se debe incluir el nombre de servicio en la cadena de conexin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 2-22

Gestin de una Instancia Oracle

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Crear y gestionar archivos de parmetros de inicializacin Iniciar y cerrar una instancia Controlar y utilizar archivos de diagnstico

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-2

Archivos de Parmetros de Inicializacin


Instancia Oracle Conjunto Compartido Cach de Biblioteca Cach del Diccionario de Datos PMON SMON DBW0 SGA Cach de Buffers de Base de Datos Conjunto Java LGWR Buffer de Redo Log Conjunto Grande CKPT Otros

spfiledb01.ora

CONNECT / AS SYSDBA STARTUP

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Archivos de Parmetros de Inicializacin Para iniciar una instancia y abrir la base de datos, se debe conectar como SYSDBA e introducir el comando STARTUP. A continuacin, Oracle Server leer el archivo de parmetros de inicializacin y preparar la instancia de acuerdo con los parmetros de inicializacin que contiene. Nota: Debe tener el privilegio SYSDBA. En lecciones posteriores, se analizarn la autenticacin y el privilegio SYSDBA.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-3

Archivos de Parmetros de Inicializacin


Las entradas son especficas de la instancia que se inicia Dos tipos de parmetros:
Explcitos: Tienen una entrada en el archivo Implcitos: Sin entrada en el archivo, aunque suponen los valores por defecto de Oracle

Pueden existir varios archivos de parmetros de inicializacin Los cambios en las entradas del archivo entran en vigor en funcin del tipo de archivo de parmetros de inicializacin utilizado:
Archivo de parmetros esttico, PFILE Archivo de parmetros de servidor persistente, SPFILE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Archivos de Parmetros de Inicializacin Para iniciar una instancia, Oracle Server lee el archivo de parmetros de inicializacin. Existen dos tipos de archivos de parmetros de inicializacin: El archivo de parmetros esttico, PFILE, que normalmente se denomina initSID.ora. El archivo de parmetros de servidor persistente, SPFILE, que normalmente se denomina spfileSID.ora. Contenido del Archivo de Parmetros de Inicializacin Una lista de parmetros de instancia El nombre de la base de datos a la que se ha asociado la instancia Asignaciones para estructuras de memoria del SGA (rea Global del Sistema) Instrucciones sobre qu hacer con los archivos redo log online llenos Los nombres y las ubicaciones de los archivos de control Informacin sobre segmentos de deshacer Pueden existir varios archivos de parmetros de inicializacin para una instancia con el fin de optimizar el rendimiento en distintas situaciones.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-4

Archivos de Parmetros de Inicializacin (continuacin) Uso de Oracle Enterprise Manager para Visualizar los Parmetros de Inicializacin Desde la Consola de OEM: 1. Navegue a Instance > Configuration. 2. Resalte Configuration. 3. Seleccione All Initialization Parameters en la pgina del separador General.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-5

PFILE initSID.ora
Archivo de texto Se modifica con un editor del sistema operativo Las modificaciones se realizan de forma manual Los cambios entran en vigor en el siguiente inicio Slo se abre durante el inicio de la instancia La ubicacin por defecto es $ORACLE_HOME/dbs

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

PFILE PFILE es un archivo de texto que se puede mantener con un editor estndar del sistema operativo. El archivo PFILE slo se lee durante el inicio de la instancia. Si se modifica el archivo, debe cerrar y reiniciar la instancia para que los nuevos valores del parmetro tengan efecto. PFILE se ubica por defecto en el directorio $ORACLE_HOME/dbs y se denomina initSID.ora.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-6

Creacin de un Archivo PFILE


Creado a partir de un archivo de ejemplo init.ora
Ejemplo instalado por Oracle Universal Installer Copie el archivo de ejemplo con el comando COPY del sistema operativo El SID de la base de datos lo identifica como nico cp init.ora $ORACLE_HOME/dbs/initdba01.ora

Modifique el archivo initSID.ora


Edite los parmetros Especfico de las necesidades de la base de datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de un Archivo PFILE Oracle Universal Installer crea un archivo init.ora de ejemplo durante la instalacin. Este archivo de ejemplo se puede utilizar para crear un initSID.ora especfico de la instancia. Se puede utilizar un editor de texto para modificar los parmetros del archivo initSID.ora.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-7

Ejemplo de PFILE
# Initialization Parameter File: initdba01.ora db_name instance_name = dba01 = dba01

control_files = ( /home/dba01/ORADATA/u01/control01dba01.ctl, /home/dba01/ORADATA/u02/control01dba02.ctl) db_block_size db_cache_size shared_pool_size java_pool_size max_dump_file_size user_dump_dest core_dump_dest undo_management undo_tablespace . . .
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

= 4096 = 4M = 50000000 = 50000000 = 10240 = /home/dba01/ADMIN/UDUMP = /home/dba01/ADMIN/CDUMP = AUTO = UNDOTBS

background_dump_dest = /home/dba01/ADMIN/BDUMP

Ejemplo de PFILE Se especifican los valores con el siguiente formato: palabra_clave=valor. El servidor tiene un valor por defecto para cada parmetro. Este valor puede depender del sistema operativo, en funcin del parmetro. Los parmetros se pueden especificar en cualquier orden, aunque hay algunas excepciones. Las lneas de comentario empiezan por el smbolo #. Encierre los parmetros entre comillas dobles para incluir los literales de caracteres. Se pueden incluir archivos adicionales con la palabra clave IFILE. Si el sistema operativo es sensible a maysculas y minsculas, eso tambin ser importante en los nombres de archivo. Los valores mltiples se escriben entre parntesis y se separan con comas. Nota: Desarrolle un estndar para enumerar los parmetros, ya sea para ordenarlos por orden alfabtico o para agruparlos por su funcionalidad. El archivo PFILE vara de una instancia a otra y no tiene necesariamente que parecerse al ejemplo anterior.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-8

SPFILE spfileSID.ora
Archivo binario Lo mantiene Oracle Server Siempre reside en el servidor Capacidad de realizar cambios persistentes en los procesos de cierre y de inicio Puede autoajustar los valores de los parmetros Puede tener soporte de Recovery Manager para realizar copias de seguridad en el archivo de parmetros de inicializacin

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

SPFILE El archivo SPFILE, nuevo en la versin Oracle9i, es un archivo binario. Este archivo no se debe modificar de forma manual y debe residir siempre en el servidor. Una vez creado, Oracle Server se encarga de su mantenimiento. Si se modifica manualmente, el archivo SPFILE quedar inutilizado. Este archivo proporciona la capacidad de realizar cambios persistentes en la base de datos durante los procesos de cierre e inicio. Tambin permite autoajustar los valores de parmetros, que se registran en el archivo. Es posible el soporte de RMAN para la realizacin de copias de seguridad del archivo de parmetros de inicializacin porque SPFILE reside en el servidor. El archivo est ubicado por defecto en el directorio $ORACLE_HOME/dbs y tiene el formato de nombre por defecto spfileSID.ora.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-9

Creacin de un Archivo SPFILE


Creado a partir de un archivo PFILE
CREATE SPFILE = ?$ORACLE_HOME/dbs/spfileDBA01.ora? FROM PFILE = ?$ORACLE_HOME/dbs/initDBA01.ora?;

donde NOMBRE-SPFILE: Archivo SPFILE que se va a crear NOMBRE-PFILE: Archivo PFILE que crea el archivo SPFILE

Se puede ejecutar antes o despus del inicio de instancia

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de un Archivo SPFILE Un archivo SPFILE se crea a partir de un archivo PFILE mediante el comando CREATE SPFILE. Este comando requiere el privilegio SYSDBA para su ejecucin. Se puede ejecutar antes o despus del inicio de instancia. CREATE SPFILE [='NOMBRE-SPFILE'] FROM PFILE[='NOMBRE-PFILE']; donde: NOMBRE-SPFILE: Nombre del archivo SPFILE que se va a crear NOMBRE-PFILE: Nombre del archivo PFILE utilizado para crear el archivo SPFILE. El archivo PFILE debe estar disponible en el servidor Si no se incluye NOMBRE-SPFILE ni NOMBRE-PFILE en la sintaxis, Oracle utilizar el archivo PFILE por defecto para generar un archivo SPFILE con un nombre generado por el sistema. SQL> CREATE SPFILE FROM PFILE;

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-10

Creacin de un Archivo SPFILE (continuacin) Exportacin de SPFILE Se puede exportar el contenido del archivo SPFILE a un archivo PFILE. SQL> CREATE PFILE FROM SPFILE; El archivo PFILE se crea como archivo de texto en el servidor. Este comando se puede ejecutar antes o despus del inicio de la instancia. De esta forma, se cuenta con una forma sencilla de ver el archivo SPFILE y realizar modificaciones: Exportando el archivo SPFILE a PFILE Editando PFILE Volviendo a crear SPFILE a partir del PFILE editado La exportacin de SPFILE a PFILE tambin puede servir como alternativa a la creacin de una copia de seguridad del archivo de parmetros del servidor. Nota: Con Oracle9i, RMAN tambin puede realizar copias de seguridad de los archivos de parmetros del servidor. V$SPPARAMETER Tal y como se muestra en el ejemplo anterior, hay varias opciones para ver los valores de los parmetros de SPFILE. V$SPPARAMETER es otro origen para la presentacin y visualizacin del contenido del archivo SPFILE.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-11

Creacin de un Archivo SPFILE Uso de Oracle Enterprise Manager para Crear un Archivo SPFILE Desde la Consola de OEM: 1. Navegue a Instance > Configuration. 2. Resalte Configuration. 3. Desde el men principal, seleccione Object > Create pfile.

Uso de Oracle Enterprise Manager para Exportar un Archivo SPFILE Desde la Consola de OEM: 1. Navegue a Instance > Configuration. 2. Resalte Configuration. 3. Desde el men principal, seleccione Object > Create pfile.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-12

Ejemplo de SPFILE
*.background_dump_dest= '/home/dba01/ADMIN/BDUMP' *.compatible='9.0.0' *.control_files='/home/dba01/ORADATA/u01/ctrl01.ctl' *.core_dump_dest= '/home/dba01/ADMIN/CDUMP' *.db_block_size=4096 *.db_name='dba01 *.db_domain= 'world' *.global_names=TRUE *.instance_name='dba01' *.remote_login_passwordfile='exclusive *.java_pool_size=50000000 *.shared_pool_size=50000000 *.undo_management='AUTO' *.undo_tablespace='UNDOTBS' . . .

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Ejemplo de SPFILE Los comentarios especificados en las mismas lneas como valores de parmetros en el archivo PFILE se mantienen en el archivo SPFILE. Todos los dems comentarios se omiten. Aunque el texto de un archivo SPFILE se visualiza fcilmente en UNIX, el archivo SPFILE es binario y, si se modifica de forma manual, SPFILE quedar inutilizable. Si necesita ver el contenido especfico de un archivo SPFILE o realizar alguna modificacin, exporte SPFILE a un archivo PFILE.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-13

Modificacin de Parmetros de SPFILE


Cambio de valores de parmetros
ALTER SYSTEM SET undo_tablespace = UNDO2;

Especificacin de los cambios temporales o persistentes


ALTER SYSTEM SET undo_tablespace = UNDO2 SCOPE=BOTH;

Supresin o restablecimiento de valores


ALTER SYSTEM RESET undo_suppress_errors SCOPE=BOTH SID='*';
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Modificacin de Parmetros de SPFILE El comando ALTER SYSTEM SET se utiliza para cambiar el valor de los parmetros de instancia. ALTER SYSTEM SET nombre_de_parmetro = valor_de_parmetro [COMMENT 'texto'] [SCOPE = MEMORY|SPFILE|BOTH] [SID= 'sid'|'*'] donde nombre_de_parmetro: Nombre del parmetro que se va a cambiar valor_de_parmetro: Valor al que se va a cambiar el parmetro COMMENT: Comentario que se agrega al archivo SPFILE junto al parmetro que se va a modificar SCOPE: Determina si el cambio se debe hacer en la memoria, en el archivo SPFILE o en ambos MEMORY: Slo cambia el valor del parmetro en la instancia que se est ejecutando en esos momentos SPFILE: Cambia el valor del parmetro slo en el archivo SPFILE

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-14

Modificacin de Parmetros de SPFILE (continuacin) BOTH: Cambia el valor del parmetro en la instancia que est en ejecucin en ese momento y en el archivo SPFILE SID: Identifica ORACLE_SID para el archivo SPFILE en uso 'sid': SID especfico que se va a utilizar para modificar SPFILE '*': Utiliza el archivo SPFILE por defecto Ejemplo SQL> SHOW PARAMETERS undo_suppress_errors NOMBRE TIPO VALOR ---------------------- ----------- ------undo_suppress_errors booleano FALSE SQL> ALTER SYSTEM SET undo_suppress_errors = TRUE 2 COMMENT = prueba temporal SCOPE=BOTH 3 SID=DBA01; SQL> SHOW PARAMETERS undo_suppress_errors NOMBRE TIPO VALOR ---------------------- ----------- ------undo_suppress_errors booleano TRUE El comando ALTER SYSTEM RESET se utiliza para suprimir el valor por defecto o para volver a l tras realizar cambios. ALTER SYSTEM RESET nombre_de_parmetro [SCOPE = MEMORY|SPFILE|BOTH] [SID= sid|*] Ejemplo SQL> ALTER SYSTEM RESET undo_suppress_errors 2 SCOPE=BOTH SID=dba01; Existen varias formas de eliminar un parmetro de SPFILE: Definir el parmetro en su valor por defecto para simular su supresin utilizando ALTER SYSTEM SET. Volver a crear el archivo SPFILE utilizando CREATE SPFILE FROM PFILE. Utilizar ALTER SYSTEM RESET para suprimir el parmetro de SPFILE.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-15

Modificacin de Parmetros de SPFILE (continuacin) Uso de Oracle Enterprise Manager para Modificar la Configuracin de SPFILE Desde la Consola de OEM: 1. Navegue a Instance > Configuration. 2. Resalte Configuration. 3. Seleccione All Initialization Parameters en la pgina del separador General. 4. Modifique un parmetro en la columna de valores. 5. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-16

Comportamiento del Comando STARTUP

Orden de prioridad:
spfileSID.ora SPFILE por defecto initSID.ora PFILE por defecto

El archivo PFILE especificado puede sustituir la prioridad.


STARTUP PFILE = $ORACLE_HOME/dbs/initDBA1.ora

PFILE puede indicar que se utilice SPFILE.


SPFILE = /database/startup/spfileDBA1.ora

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Comportamiento del Comando STARTUP Orden de Prioridad Cuando se utiliza el comando STARTUP, se usa el archivo spfileSID.ora del servidor para iniciar la instancia. Si no se encuentra el archivo spfileSID.ora, se utilizar el archivo SPFILE por defecto del servidor para iniciar la instancia. Si no se encuentra el archivo SPFILE por defecto, se utilizar el archivo initSID.ora del servidor para iniciar la instancia. Un archivo PFILE especificado puede sustituir el uso del archivo SPFILE por defecto para el inicio de la instancia. Adems, un archivo PFILE puede contener una definicin para indicar el uso de un archivo SPFILE. sta es la nica forma de iniciar la instancia con un archivo SPFILE que est en una ubicacin que no sea por defecto. Para iniciar la base de datos con un archivo SPFILE que no est en la ubicacin por defecto: SPFILE=<ruta de acceso completa y nombre de archivo> se debe colocar en el archivo PFILE. Ejemplo: SPFILE=$HOME/ADMIN/PFILE/$ORACLE_SID.ora.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-17

Parmetros que se Deben Especificar en el Archivo de Parmetros de Inicializacin

Parmetro

Descripcin

BACKGROUND_DUMP_DEST La ubicacin en la que se escriben los archivos de rastreo de los procesos en segundo plano (LGWR, DBWn, etc.). Tambin es la ubicacin del archivo log de alertas COMPATIBLE CONTROL_FILES DB_CACHE_SIZE DB_NAME Versin del servidor con el que esta instancia debera ser compatible. Nombres de los archivos de control Determina el tamao de la cach para los buffers de tamao de bloque estndar Identificador de la base de datos de ocho caracteres como mximo. ste es el nico parmetro necesario cuando se crea una nueva base de datos. Tamao en bytes del conjunto compartido Ubicacin en la que, en nombre de un proceso de usuario, se crean los archivos de rastreo de depuracin del usuario.

SHARED_POOL_SIZE USER_DUMP_DEST

Nota: Los valores por defecto dependen de la versin de Oracle Server.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-18

Parmetros Modificados Frecuentemente

Parmetro IFILE

Descripcin Nombre de otro archivo de parmetros que se embebe en el archivo de parmetros actual. Se permiten hasta tres niveles de anidamiento. Nmero de bytes asignados al buffer de redo log en SGA Tamao mximo de los archivos de rastreo, especificado como nmero de bloques del sistema operativo. Nmero mximo de procesos del sistema operativo que se pueden conectar de forma simultnea a esta instancia Activa o desactiva la utilidad de rastreo SQL para cada sesin de usuario Activa o desactiva la temporizacin en los archivos de rastreo y en las pantallas del monitor

LOG_BUFFER MAX_DUMP_FILE_SIZE

PROCESSES

SQL_TRACE TIMED_STATISTICS

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-19

Inicio de una Base de Datos NOMOUNT


OPEN STARTUP MOUNT

NOMOUNT Instancia iniciada SHUTDOWN SHUTDOWN

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Inicio de una Base de Datos Cuando se inicia la base de datos, se debe seleccionar el estado en el que se inicia. Los siguientes supuestos describen diferentes etapas del inicio de una instancia. Inicio de la Instancia (NOMOUNT) Una instancia slo se iniciara en la etapa NOMOUNT durante la creacin de la base de datos o la nueva creacin de los archivos de control. El inicio de una instancia incluye las siguientes tareas: Lectura del archivo de inicializacin desde $ORACLE_HOME/dbs en el siguiente orden: - En primer lugar, spfileSID.ora - Si no se encuentra, spfile.ora - Si no se encuentra, initSID.ora Si se especifica el parmetro PFILE con STARTUP, se sustituye el comportamiento por defecto. Asignacin de SGA Inicio de los procesos en segundo plano Apertura del archivo alertSID.log y los archivos de rastreo Hay que asignar un nombre a la base de datos con el parmetro DB_NAME, bien en el archivo de parmetros de inicializacin, o bien en el comando STARTUP.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-20

Inicio de una Base de Datos MOUNT


OPEN STARTUP MOUNT Archivo de control abierto para esta instancia

NOMOUNT Instancia iniciada SHUTDOWN

SHUTDOWN

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Inicio de una Base de Datos (continuacin) Montaje de la Base de Datos (MOUNT) Para realizar operaciones de mantenimiento especficas, se inicia una instancia y se monta una base de datos, pero sin abrirla. Por ejemplo, la base de datos se debe montar, pero no abrir, durante las siguientes tareas: Cambio del nombre de los archivos de datos Activacin y desactivacin de las opciones de archivado de archivos redo log online Recuperacin completa de la base de datos El montaje de una base de datos incluye las siguientes tareas: Asociacin de una base de datos a una instancia iniciada previamente Ubicacin y apertura de los archivos de control especificados en el archivo de parmetros Lectura de los archivos de control con el fin de obtener los nombres y el estado de los archivos de datos y los archivos redo log online. No obstante, no se realizan comprobaciones para verificar la existencia de los archivos de datos y los archivos redo log online en este momento.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-21

Inicio de una Base de Datos OPEN


OPEN STARTUP Todos los archivos que se abren segn describe el archivo de control de MOUNT esta instancia Archivo de control abierto NOMOUNT para esta instancia Instancia iniciada SHUTDOWN

SHUTDOWN

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Inicio de una Base de Datos (continuacin) Apertura de la Base de Datos (OPEN) El funcionamiento normal de la base de datos significa que se inicia una instancia y la base de datos se monta y se abre. Durante el funcionamiento normal de la base de datos, cualquier usuario vlido se puede conectar a la base de datos y realizar operaciones tpicas de acceso a los datos. La apertura de la base de datos incluye las siguientes tareas: Apertura de los archivos de datos online Apertura de los archivos redo log online Si no aparece ninguno de los archivos de datos o archivos redo log online cuando se intenta abrir la base de datos, Oracle Server devuelve un error. Durante esta etapa final, Oracle Server comprueba que todos los archivos de datos y archivos redo log online se puedan abrir y verifica la consistencia de la base de datos. Si fuera necesario, el proceso en segundo plano de SMON inicia la recuperacin de la instancia.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-22

Comando STARTUP

Iniciar la instancia y abrir la base de datos:


STARTUP STARTUP PFILE=$ORACLE_HOME/dbs/initdb01.ora

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Comando STARTUP Para iniciar una instancia, utilice este comando: STARTUP [FORCE] [RESTRICT] [PFILE=nombre_de_archivo] [OPEN [RECOVER][base_de_datos] |MOUNT |NOMOUNT] Nota: sta no es la sintaxis completa. donde: OPEN: Permite a los usuarios acceder a la base de datos MOUNT: Monta la base de datos para ciertas actividades del DBA, aunque no permite que el usuario acceda a la base de datos NOMOUNT: Crea el SGA e inicia los procesos en segundo plano, pero no permite que el usuario tenga acceso a la base de datos PFILE=archivo_de_parmetros: Permite utilizar un archivo de parmetros de inicializacin que no es por defecto para configurar la instancia

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-23

Comando STARTUP (continuacin) FORCE: Interrumpe la instancia en ejecucin antes de realizar un inicio normal. RESTRICT: Slo permite que los usuarios con el privilegio RESTRICTED SESSION accedan a la base de datos RECOVER: Comienza la recuperacin de los medios fsicos cuando se inicia la base de datos Automatizacin del Inicio de la Base de Datos En UNIX: La automatizacin del inicio y cierre de la base de datos se puede controlar mediante las entradas de un archivo especial del sistema operativo; por ejemplo, oratab en el directorio /var/opt/oracle. Nota: Para obtener ms informacin, consulte la gua de instalacin del sistema operativo. Solucin de Problemas Si se producen errores al emitir el comando STARTUP, debe emitir el comando SHUTDOWN antes de otro STARTUP. Nota: Los comandos STARTUP y SHUTDOWN son comandos de SQL*Plus y no de SQL.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-24

Comando STARTUP (continuacin) Uso de Oracle Enterprise Manager para Iniciar una Base de Datos Desde la Consola de OEM: 1. Navegue a Instance > Configuration. 2. Resalte Configuration. 3. Seleccione la opcin Open en la pgina del separador General . 4. Haga clic en Apply. Nota: Se debe conectar a la base de datos con privilegios de SYSDBA para realizar el inicio.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-25

Comando ALTER DATABASE


Cambia el estado de la base de datos de NOMOUNT a MOUNT:
ALTER DATABASE db01 MOUNT;

Abre la base de datos en modo de slo lectura:


ALTER DATABASE db01 OPEN READ ONLY;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Comando ALTER DATABASE Para mover la base de datos de la etapa NOMOUNT a MOUNT, o de MOUNT a OPEN, es necesario utilizar el comando ALTER DATABASE: ALTER DATABASE { MOUNT | OPEN } Para evitar que las transacciones de usuario modifiquen los datos, la base de datos slo se puede abrir en modo de slo lectura. Para iniciar una instancia, utilice este comando: ALTER DATABASE OPEN [READ WRITE| READ ONLY] donde: READ WRITE: Abre la base de datos en modo de lectura y escritura, lo que permite que los usuarios puedan generar archivos redo log online. READ ONLY: Restringe a los usuarios a las transacciones de slo lectura, evitando as que generen informacin del archivo redo log online.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-26

Apertura de una Base de Datos en Modo Restringido


Use el comando STARTUP para restringir el acceso a una base de datos:
STARTUP RESTRICT

Utilice el comando ALTER SYSTEM para poner una instancia en modo restringido:
ALTER SYSTEM ENABLE RESTRICTED SESSION;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Apertura de una Base de Datos en Modo Restringido Una sesin restringida es til, por ejemplo, cuando se realiza el mantenimiento de la estructura o una importacin o exportacin de la base de datos. La base de datos se puede iniciar en modo restringido para que slo est disponible para los usuarios con el privilegio RESTRICTED SESSION. La base de datos tambin se puede poner en modo restringido con el comando ALTER SYSTEM SQL: ALTER SYSTEM [ {ENABLE|DISABLE} RESTRICTED SESSION ] donde: ENABLE RESTRICTED SESSION: Permite conexiones futuras slo para los usuarios que tienen el privilegio RESTRICTED SESSION DISABLE RESTRICTED SESSION: Desactiva RESTRICTED SESSION para que se puedan conectar los usuarios que no tengan este privilegio

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-27

Apertura de una Base de Datos en Modo Restringido (continuacin) Terminacin de Sesiones Una vez colocada una instancia en modo restringido, puede que desee finalizar todas las sesiones de usuario actuales antes de realizar las tareas administrativas. Esto es posible mediante la ejecucin de: ALTER SYSTEM KILL SESSION 'entero1,entero2' donde: entero1: Valor de la columna SID en la vista V$SESSION entero2: Valor de la columna SERIAL# en la vista V$SESSION Nota: El identificador de sesin y el nmero de serie se utilizan para identificar una sesin como nica. Esto garantiza que el comando ALTER SYSTEM KILL SESSION se aplique a la sesin correcta, aunque el usuario se desconecte y una nueva sesin utilice el mismo identificador de sesin. Efectos de la Terminacin de una Sesin El comando ALTER SYSTEM KILL SESSION provoca que el proceso en segundo plano PMON haga lo siguiente cuando se ejecuta: Hace rollback de la transaccin actual del usuario Libera todos los bloqueos de tabla o de fila retenidos actualmente. Libera todos los recursos reservados en ese momento por el usuario.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-28

Apertura de una Base de Datos en Modo Restringido (continuacin) Uso de Oracle Enterprise Manager para Abrir una Base de Datos en Modo Restringido Desde la Consola de OEM: 1. Navegue a Instance > Configuration. 2. Resalte Configuration. 3. Seleccione la pgina del separador General. 4. Seleccione la opcin Shutdown en Instance State. 5. Haga clic en Apply. A continuacin, se abrir el recuadro de dilogo Shutdown Options. 6. Seleccione la opcin Immediate. 7. Haga clic en OK. 8. Cuando finalice el proceso, seleccione Close. 9. Seleccione la opcin Open en Instance State. 10. Haga clic en OK. A continuacin, se abrir el recuadro de dilogo Startup Options. 11. Seleccione la opcin "Restrict access to database". 12. Haga clic en OK. 13. Cuando finalice el proceso, haga clic en Close. Nota: Debe estar conectado a la base de datos con privilegios de SYSDBA.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-29

Apertura de una Base de Datos en Modo de Slo Lectura


Apertura de una base de datos en modo de slo lectura:
STARTUP MOUNT ALTER DATABASE OPEN READ ONLY;

Se puede utilizar para:


Ejecutar consultas Ejecutar las ordenaciones de disco mediante tablespaces gestionados localmente Poner online y offline archivos de datos, pero no tablespaces Realizar la recuperacin de tablespaces y archivos de datos offline
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Apertura de una Base de Datos en Modo de Slo Lectura Una base de datos se puede abrir en modo de slo lectura, si no se ha abierto ya en modo de lectura y escritura. Esta caracterstica es especialmente til para que una base de datos en espera descargue de la base de datos de produccin el procesamiento de la consulta. Si una consulta necesita utilizar un tablespace temporal para, por ejemplo, ordenar los discos, debe asignar al usuario actual un tablespace gestionado localmente como tablespace temporal por defecto ya que, de lo contrario, la consulta fallar. Nota: Los tablespaces gestionados localmente se analizan en una leccin posterior. El modo de slo lectura no restringe la recuperacin de la base de datos ni las operaciones que cambian el estado de la base de datos sin generar datos de redo. Por ejemplo, en modo de slo lectura: Los archivos de datos se pueden poner online y offline. Se puede realizar la recuperacin de tablespaces y archivos de datos offline. Las escrituras de disco en otros archivos como, por ejemplo, los archivos de control, las pistas de auditora del sistema operativo, los archivos de rastreo y los archivos log de alertas pueden continuar en modo de slo lectura.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-30

Apertura de una Base de Datos en Modo de Slo Lectura (continuacin) Uso de Oracle Enterprise Manager para Iniciar una Base de Datos en Modo de Slo Lectura Desde la Consola de OEM: 1. Navegue a Instance > Configuration. 2. Resalte Configuration. 3. Seleccione la pgina del separador General. 4. Seleccione la opcin Shutdown en Instance State. 5. Haga clic en Apply. A continuacin, se abrir el recuadro de dilogo Shutdown Options. 6. Seleccione la opcin Immediate. 7. Haga clic en OK. 8. Cuando finalice el proceso, seleccione Close. 9. Seleccione la opcin Open en Instance State. 10. Haga clic en OK. A continuacin, se abrir el recuadro de dilogo Startup Options. 11. Seleccione la casilla de control Read Only Mode. 12. Haga clic en OK. 13. Cuando finalice el proceso, haga clic en Close. Nota: Debe estar conectado a la base de datos con privilegios de SYSDBA.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-31

Cierre de la Base de Datos


Modo de Cierre Permite nuevas conexiones Espera a que finalicen las sesiones actuales Espera a que finalicen las transacciones actuales Fuerza un punto de control y cierra los archivos A No No No No I No No No S T No No S S N No S S S

Modo de cierre: A = ABORT I = IMMEDIATE T = TRANSACTIONAL N = NORMAL


Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Cierre de la Base de Datos Cierre la base de datos para realizar copias de seguridad offline de sistema operativo de todas las estructuras fsicas y para que, al reiniciar, entren en vigor los parmetros de inicializacin estticos modificados. Para cerrar una instancia, se debe conectar como SYSOPER o SYSDBA y utilizar el siguiente comando: SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-32

Opciones SHUTDOWN
Durante

Al cerrar: La cach de buffers de base de datos se escribe en los archivos de datos Los cambios no validados se deshacen Recursos liberados

SHUTDOWN NORMAL o SHUTDOWN TRANSACTIONAL o SHUTDOWN IMMEDIATE

Al iniciar: Sin recuperacin de instancia

Base de datos consistente (base de datos limpia)


Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Opciones SHUTDOWN SHUTDOWN NORMAL El modo normal es el modo de cierre por defecto. El cierre normal de la base de datos se lleva a cabo en las siguientes condiciones: No se pueden realizar conexiones nuevas. Oracle Server espera a que se desconecten todos los usuarios antes de finalizar el cierre. Los buffers de la base de datos y de redo se escriben en el disco. Los procesos en segundo plano han terminado y se ha eliminado el SGA de la memoria. Oracle cierra y desmonta la base de datos antes de cerrar la instancia. El siguiente inicio no requiere una recuperacin de la instancia. SHUTDOWN TRANSACTIONAL Un cierre transaccional evita que los clientes pierdan su trabajo. Un cierre transaccional de la base de datos se lleva a cabo en las siguientes condiciones: Ningn cliente puede iniciar una nueva transaccin en esta instancia particular. Un cliente se desconecta cuando el cliente finaliza la transaccin en curso. Una vez finalizadas todas las transacciones, se produce un cierre inmediato. El siguiente inicio no requiere una recuperacin de la instancia.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-33

Opciones SHUTDOWN (continuacin) SHUTDOWN IMMEDIATE El cierre inmediato de la base de datos se lleva a cabo en las siguientes condiciones: No se finalizan las sentencias SQL actuales que est procesando Oracle. Oracle Server no espera a que se desconecten los usuarios conectados en ese momento a la base de datos. Oracle hace rollback de las transacciones activas y desconecta a todos los usuarios conectados. Oracle cierra y desmonta la base de datos antes de cerrar la instancia. El siguiente inicio no requiere una recuperacin de la instancia.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-34

Opciones SHUTDOWN
Durante

Al cerrar: Los buffers modificados no se escriben en los archivos de datos No se hace rollback de los cambios no validados

SHUTDOWN ABORT o Fallo de la Instancia o STARTUP FORCE

Al iniciar: Se utilizan archivos redo log online para volver a aplicar los cambios Se utilizan segmentos de deshacer para hacer rollback de los cambios no validados Recursos liberados

Base de datos inconsistente (base de datos sucia)


Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Opciones SHUTDOWN (continuacin) SHUTDOWN ABORT Si las opciones de cierre NORMAL e IMMEDIATE no funcionan, se puede abortar la instancia de base de datos actual. La interrupcin de una instancia se lleva a cabo en las siguientes condiciones: Se terminan inmediatamente las sentencias SQL actuales que Oracle Server est procesando. Oracle no espera a que se desconecten los usuarios conectados actualmente a la base de datos. Los buffers de la base de datos y de redo no se escriben en el disco. No se hace rollback de las transacciones no validadas La instancia se termina sin cerrar los archivos. La base de datos no se cierra ni se desmonta. El siguiente inicio requiere la recuperacin de la instancia, que se produce automticamente. Nota: No se recomienda realizar una copia de seguridad de una base de datos que tiene un estado inconsistente.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-35

Opciones SHUTDOWN (continuacin) Uso de Oracle Enterprise Manager para Cerrar una Base de Datos Desde la Consola de OEM: 1. Navegue a Instance > Configuration. 2. Resalte Configuration. 3. Seleccione la opcin Shutdown en la pgina del separador General. 4. Haga clic en Apply. Nota: Se debe conectar a la base de datos con privilegios de SYSDBA para realizar el cierre de la base de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-36

Control de una Instancia con Archivos de Diagnstico


Archivos de diagnstico
Contienen informacin acerca de los eventos significativos que se han producido Se utilizan para solucionar problemas Se utilizan para mejorar la gestin diaria de la base de datos

Existen varios tipos:


Archivo alertSID.log Archivos de rastreo en segundo plano Archivos de rastreo de usuario

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Control de una Instancia con Archivos de Diagnstico Los archivos de diagnstico son medios para capturar la informacin acerca de las actividades de la base de datos. Tambin son herramientas tiles para la gestin de una instancia. Existen varios tipos. El tipo de archivo de diagnstico creado depende del problema que se haya producido o de la informacin que haya que difundir. Archivo log de alertas (alertSID.log): Informacin del funcionamiento diario de la base de datos Archivos de rastreo en segundo plano: Informacin esencial cuando fallan los procesos en segundo plano como, por ejemplo, SMON, PMON, DBWn, etc. Archivos de rastreo de usuario: Informacin vital para errores de usuario fatales o archivos rastreados forzados de usuario

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-37

Archivo Log de Alertas


Archivo alertSID.log:
Registra los comandos Registra los resultados de los eventos principales Se utiliza para la informacin diaria de operaciones Se utiliza para diagnosticar errores de base de datos

Cada entrada tiene un registro de hora asociado Lo debe gestionar el DBA La ubicacin la define el parmetro BACKGROUND_DUMP_DEST

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Archivo Log de Alertas Cada instancia Oracle tiene un archivo log de alertas. Si no se ha creado con anterioridad, se crea durante el inicio de la instancia. El DBA es quien se debe encargar de la gestin del archivo log de alertas. Este archivo va creciendo mientras la base de datos contina trabajando. El archivo log de alertas debera ser el primer lugar en el que se mira a la hora de diagnosticar las operaciones diarias o los errores. Este archivo tambin incluye punteros para rastrear archivos con el fin de obtener ms informacin. El archivo log de alertas mantiene un registro de la siguiente informacin: Cundo se ha iniciado o cerrado la base de datos Una lista de todos los parmetros de inicializacin que no son por defecto El inicio de procesos en segundo plano El thread que est utilizando la instancia El nmero de secuencia de log en el que est escribiendo LGWR Informacin de cambios de log Creacin de tablespaces y segmentos de deshacer Sentencias Alter que se han emitido Informacin de mensajes de error como, por ejemplo, ORA-600 y errores de extensiones

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-38

Archivo Log de Alertas (continuacin) La ubicacin de alert_SID.log viene definida por el parmetro de inicializacin BACKGROUND_DUMP_DEST.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-39

Archivos de Rastreo en Segundo Plano


Archivos de rastreo en segundo plano
Registran los errores detectados por cualquier proceso en segundo plano Se utilizan para diagnosticar y solucionar errores

Se crean cuando un proceso en segundo plano tiene un error La ubicacin la define el parmetro BACKGROUND_DUMP_DEST

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Archivos de Rastreo en Segundo Plano Los archivos de rastreo en segundo plano se utilizan para registrar errores que ha encontrado un proceso en segundo plano como, por ejemplo SMON, PMON, DBWn, etc. Estos archivos slo existen cuando un error requiere escribir en los archivos de rastreo. Estos archivos se pueden utilizar para diagnosticar y solucionar problemas. Inicialmente, cuando se crea un archivo de rastreo en segundo plano, contiene informacin de cabecera que indica el nmero de versin del servidor de datos y del sistema operativo. La regla de nomenclatura para el archivo de rastreo de usuario es sid_nombreproceso_PID.trc (db01_lgwr_23845.trc). Su ubicacin la define el parmetro de inicializacin BACKGROUND_DUMP_DEST.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-40

Archivos de Rastreo de Usuario


Archivos de rastreo de usuario
Producidos por el proceso de usuario Los puede generar un proceso de servidor Contienen estadsticas para sentencias SQL rastreadas Contienen mensajes de error de usuario

Creados cuando un usuario encuentra errores de sesin de usuario La ubicacin la define el parmetro USER_DUMP_DEST El tamao lo define el parmetro MAX_DUMP_FILE_SIZE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Archivos de Rastreo de Usuario Los archivos de rastreo de usuario contienen estadsticas para las sentencias SQL rastreadas, que resultan tiles para el ajuste SQL. Adems, los archivos de rastreo de usuario contienen mensajes de error de usuario. La regla de nomenclatura para el archivo de rastreo de usuario es sid_ora_PID.trc (db01_ora_23845.trc). Su ubicacin la define el parmetro de inicializacin USER_DUMP_DEST.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-41

Activacin o Desactivacin del Rastreo de Usuario


Nivel de sesin:
Con el comando ALTER SESSION: ALTER SESSION SET SQL_TRACE = TRUE Ejecucin del procedimiento DBMS: dbms_system.SET_SQL_TRACE_IN_SESSION

Nivel de instancia
Definiendo el parmetro de inicializacin: SQL_TRACE = TRUE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Activacin o Desactivacin del Rastreo de Usuario La definicin de SQL_TRACE=TRUE en el nivel de instancia genera un volumen importante de datos de rastreo. Esta opcin se debe utilizar con cuidado. El rastreo de usuario se cubre de forma ms detallada en el curso Oracle9i SQL Statement Tuning.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-42

Activacin o Desactivacin del Rastreo de Usuario Uso de Oracle Enterprise Manager para Activar o Desactivar el Rastreo de Usuario Desde la Consola de OEM: 1. Navegue a Instance > Configuration. 2. Resalte Configuration. 3. Seleccione All Initialization Parameters en la pgina del separador General . 4. Defina el parmetro SQL_TRACE = TRUE. 5. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-43

Resumen
En esta leccin, ha aprendido a: Crear y gestionar archivos de parmetros de inicializacin Iniciar y cerrar una instancia Controlar y utilizar archivos de diagnstico

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-44

Prctica 3: Visin General


Esta prctica abarca los siguientes temas: Creacin de un archivo SPFILE Inicio y cierre de la base de datos en distintos modos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Prctica 3: Visin General Nota: Esta prctica se puede realizar con SQL*Plus o con OEM y SQL*Plus Worksheet.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-45

Prctica 3: Gestin de una Instancia Oracle 1 Conctese a la base de datos como usuario SYS y cirrela. 2 Con la base de datos cerrada, cree un archivo SPFILE a partir de PFILE. El archivo SPFILE se crear en $ORACLE_HOME/dbs. 3 Desde el sistema operativo, visualice el archivo SPFILE. 4 Conctese como usuario SYS e inicie la base de datos con el archivo SPFILE. 5 a Cierre la base de datos y brala en modo de slo lectura. b Conctese como usuario HR con la contrasea HR e inserte una fila en la tabla REGIONS de la siguiente manera:
INSERT INTO regions VALUES (5, 'Mars');

Qu sucede? c Vuelva a poner la base de datos en modo de lectura y escritura. 6 a Conctese como usuario HR con la contrasea HR e inserte la siguiente fila en la tabla REGIONS; no valide ni salga de la base de datos.
INSERT INTO regions VALUES (5, 'Mars');

b En una nueva sesin telnet, inicie SQL*Plus. Conctese como SYS y realice un SHUTDOWN TRANSACTIONAL. c Realice un rollback de la insercin en la sesin HR y salga. Qu le ocurre a la sesin HR? Qu le ocurre a la sesin SYS? 7 a Inicie la base de datos en la sesin de usuario SYS. b En la sesin telnet abierta, inicie SQL*Plus y conctese como usuario HR. Nota: Mantenga las dos sesiones SQL*Plus abiertas, una como usuario SYS y otra como usuario HR. Como usuario SYS, active una sesin restringida. Como usuario HR, realice un SELECT en la tabla REGIONS. Se ha realizado la operacin SELECT correctamente? Salga de la sesin y, a continuacin, vulvase a conectar como HR. Qu sucede? El usuario HR no tiene el privilegio RESTRICTED SESSION y, por lo tanto, no puede conectarse. Como usuario SYS, desactive la sesin restringida. Salga de la sesin telnet de HR

c d e

f g

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 3-46

Creacin de una Base de Datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Enumerar los requisitos necesarios para la creacin de bases de datos Crear una base de datos con el Asistente de Configuracin de Bases de Datos Oracle Crear una base de datos de forma manual Crear una base de datos con OMF (Oracle Managed Files)

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-2

Planificacin y Organizacin de una Base de Datos


La planificacin de la base de datos es el primer paso para gestionar un sistema de base de datos
Defina el objetivo de la base de datos. Defina el tipo de la base de datos. Describa el diseo arquitectnico de la base de datos. Seleccione el nombre de la base de datos.

Cree su base de datos. Utilice el Asistente de Migracin de Datos Oracle para realizar una migracin desde una versin anterior de la base de datos.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Planificacin y Organizacin de una Base de Datos La planificacin de la base de datos es el primer paso de la organizacin y la implementacin de un sistema de base de datos. En primer lugar se debe definir el modo de uso de la base de datos. Esto determina el tipo de base de datos que necesita crear con el fin de que se adapte a las necesidades de su actividad, por ejemplo, almacenes de datos, procesamiento avanzado de transacciones online o de carcter general. Despus de determinar el objetivo y el tipo, debe definir la arquitectura de la base de datos que se va a utilizar. Por ejemplo, debe establecer cmo se van a organizar y almacenar los archivos de datos, los archivos de control y los archivos redo log online. La arquitectura OFA (Optimal Flexible Architecture ) de Oracle le puede ayudar a organizar la estructura y las ubicaciones de los archivos de base de datos. Una vez definida la arquitectura, debe elegir un nombre de identificacin de sistema y de base de datos para la nueva base de datos. La creacin de la base de datos es una tarea que consiste en preparar varios archivos del sistema operativo y slo es necesario realizarla en una ocasin, independientemente de los archivos de datos que vaya a utilizar la base de datos. Durante la migracin desde una versin anterior de Oracle, slo es necesario crear la base de datos si se necesita una base de datos completamente nueva. En caso contrario, se puede utilizar una utilidad de migracin. El Asistente de Migracin de Datos Oracle es una herramienta diseada con el fin de ayudarle a migrar su sistema actual de base de datos.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-3

Arquitectura OFA (Optimal Flexible Architecture)


Diseo de arquitectura de base de datos estndar recomendado por Oracle La arquitectura OFA tiene tres reglas principales:
Establecer una estructura de directorios en la que cualquier archivo de base de datos se pueda almacenar en cualquier recurso de disco. Separar los objetos que tengan un comportamiento distinto en diferentes tablespaces. Maximizar la fiabilidad y el rendimiento de la base de datos separando los componentes de la base de datos en distintos recursos de disco.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Arquitectura OFA (Optimal Flexible Architecture) La instalacin y configuracin en todas las plataformas soportadas se ajusta a la arquitectura OFA (Optimal Flexible Architecture). La arquitectura OFA organiza los archivos de base de datos por tipo y por uso. Los archivos binarios, de control, de redo log online y de administracin se pueden distribuir entre varios discos. El uso de reglas de nomenclatura coherentes aporta las siguientes ventajas: Los archivos de base de datos se pueden diferenciar fcilmente de otros archivos. Resulta fcil identificar los archivos de control, redo log online y de datos. La administracin de varios directorios raz de Oracle en la misma mquina es ms sencilla, ya que los archivos se separan en discos y directorios diferentes. El rendimiento es mejor, ya que se reduce el riesgo de contencin de disco entre archivos de datos, archivos binarios y archivos administrativos, que ahora pueden residir en directorios y discos diferentes.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-4

Ubicaciones de Archivos y Software de Oracle


oracle_base /product /release_number /bin /dbs /rdbms /sqlplus /admin /inst_name /pfile Software oradata/ db01/ system01.dbf control01.ctl redo0101.log ... db02/ system01.dbf control01.ctl redo0101.log ... Archivos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Ubicaciones de Archivos y Software de Oracle El rbol de directorio anterior muestra un ejemplo de una estructura compatible con la arquitectura OFA. Arquitectura OFA (Optimal Flexible Architecture) Otro problema importante durante la instalacin y la creacin de una base de datos es la organizacin del sistema de archivos de forma que facilite la administracin del crecimiento agregando datos a una base de datos existente, agregando usuarios, creando nuevas bases de datos, agregando hardware y distribuyendo la carga de E/S (entrada/salida) en tantas unidades como sea necesario.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-5

Requisitos de Creacin
Para crear una base de datos nueva, debe disponer de lo siguiente: Una cuenta con privilegios autenticada de una de las siguientes formas:
Por el sistema operativo Por el archivo de contraseas

Memoria suficiente para iniciar la instancia Espacio de disco suficiente para la base de datos planificada

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Requisitos de Creacin Para crear una base de datos, se requieren privilegios de SYSDBA. Estos privilegios se conceden utilizando la autenticacin del sistema operativo o la autenticacin del archivo de contraseas. Antes de crear una base de datos, debe comprobar que la memoria del SGA, el archivo ejecutable Oracle y los procesos sea suficiente. Consulte las guas de instalacin y administracin de la instalacin del sistema operativo. Calcule el espacio de disco necesario para la base de datos, incluyendo los archivos redo log online, los archivos de control y los archivos de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-6

Mtodos de Autenticacin para Administradores de Base de Datos


Administracin remota de la base de datos Administracin local de la base de datos

S Dispone de una conexin segura? Desea utilizar la autenticacin del SO?

S Utilice la autenticacin del sistema operativo

No

No

Utilice un archivo de contraseas

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Mtodos de Autenticacin para Administradores de Base de Datos Dependiendo de si desea administrar la base de datos de manera local en la misma mquina en la que reside la base de datos, o bien desea administrar muchos servidores de base de datos diferentes desde un nico cliente remoto, puede elegir la autenticacin del sistema operativo o de archivo de contraseas para autenticar a los administradores de la base de datos. Nota: Consulte los manuales del sistema operativo para obtener informacin acerca de la autenticacin del sistema operativo.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-7

Uso de la Autenticacin de Archivo de Contraseas


Cree el archivo de contraseas con la utilidad de contraseas.
$ orapwd file=$ORACLE_HOME/dbs/orapwU15 password=admin entries=5

Defina REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE en el archivo de parmetros de inicializacin. Agregue usuarios al archivo de contraseas. Asigne los privilegios correspondientes a cada usuario.
GRANT SYSDBA TO HR;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Uso de la Autenticacin de Archivo de Contraseas Oracle proporciona una utilidad de contraseas denominada orapwd que sirve para crear un archivo de contraseas. Cuando se conecta con privilegios de SYSDBA, se est conectando al esquema SYS y no al esquema asociado a su nombre de usuario. En el caso de SYSOPER, se conecta al esquema PUBLIC. Los comandos GRANT especiales emitidos por usuarios con privilegios proporcionan el acceso a la base de datos mediante el archivo de contraseas. Nota: Consulte la leccin "Gestin de Privilegios" para obtener ms informacin acerca de los permisos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-8

Uso de la Autenticacin de Archivo de Contraseas (continuacin) Uso de un Archivo de Contraseas 1. Cree el archivo de contraseas con la utilidad de contraseas orapwd. orapwd file=nombrearchivo password=contrasea entries=usuarios_mximos donde: nombrearchivo: Nombre del archivo de contraseas (obligatorio) password: La contrasea para SYSOPER y SYSDBA (obligatorio) entries: El nmero mximo de usuarios distintos que se pueden conectar como SYSDBA o SYSOPER. Si supera este nmero, deber crear un nuevo archivo de contraseas. Es ms seguro disponer de un nmero mayor. No hay que dejar ningn espacio delante ni detrs del signo igual que (=). Ejemplo: orapwd file=$ORACLE_HOME/dbs/orapwU15 password=admin entries=5 2. Defina el parmetro REMOTE_LOGIN_PASSWORDFILE en EXCLUSIVE donde: EXCLUSIVE: Indica que slo una instancia puede utilizar el archivo de contraseas y que el archivo de contraseas contiene nombres que no son SYS. Con un archivo de contraseas EXCLUSIVE, se pueden otorgar privilegios SYSDBA o SYSOPER a usuarios individuales. 3. Conctese a la base de datos con el archivo de contraseas creado anteriormente. CONNECT sys/admin AS SYSDBA Ubicaciones del Archivo de Contraseas UNIX: $ORACLE_HOME/dbs NT: %ORACLE_HOME%/database Mantenimiento del Archivo de Contraseas Suprima el archivo de contraseas existente con comandos del sistema operativo y cree un archivo de contraseas nuevo con la utilidad de contraseas.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-9

Creacin de una Base de Datos


Se puede crear una base de datos Oracle mediante: Oracle Universal Installer Asistente de Configuracin de Bases de Datos Oracle
Interfaz grfica de usuario Basado en Java Lanzado por Oracle Universal Installer Se puede utilizar como una aplicacin autnoma

El comando CREATE DATABASE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de una Base de Datos La creacin de una base de datos se puede llevar a cabo de tres formas: automticamente durante la instalacin de Oracle9i con Oracle Universal Installer, mediante DBCA (Asistente de Configuracin de Bases de Datos Oracle) o creando un archivo de comandos SQL mediante el comando CREATE DATABASE. El Asistente de Configuracin de Bases de Datos Oracle es una interfaz grfica de usuario que interacta con Oracle Universal Installer o que se puede utilizar de forma autnoma, con el fin de simplificar la creacin de una base de datos. El asistente DBCA est basado en Java y se puede lanzar desde cualquier plataforma con un sistema Java. Durante la instalacin de Oracle Server, Oracle Universal Installer inicia el DBCA y puede crear automticamente una base de datos inicial. Puede elegir entre utilizar o no el DBCA, as como entre crear o no crear una base de datos inicial. Tambin tiene la opcin de iniciar el DBCA posteriormente como aplicacin autnoma para crear una base de datos. Asimismo, puede migrar o actualizar una base de datos existente si utiliza una versin anterior del software de Oracle.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-10

Entorno del Sistema Operativo


Defina las siguientes variables de entorno: ORACLE_BASE ORACLE_HOME ORACLE_SID ORA_NLS33 PATH LD_LIBRARY_PATH

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Entorno del Sistema Operativo Para crear una base de datos manualmente o con el Asistente de Configuracin de Bases de Datos Oracle, el entorno de sistema operativo se debe configurar correctamente. ORACLE_BASE: Especifica el directorio raz del software de Oracle Ejemplo: /u01/app/oracle ORACLE_HOME: Especifica el directorio donde est instalado el software de Oracle. El valor recomendado por OFA es $ORACLE_BASE/product/release. Ejemplo: /u01/app/oracle/product/9.2 ORACLE_SID: Especifica el nombre de la instancia y debe ser nico para las instancias Oracle que se ejecuten en la misma mquina. ORA_NLS33: Es necesario cuando cree una base de datos con un juego de caracteres diferente de US7ASCII. Ejemplo: $ORACLE_HOME/ocommon/nls/admin/data PATH: Especifica los directorios en los que el sistema operativo busca archivos ejecutables como, por ejemplo, SQL*Plus. Los archivos ejecutables de Oracle9i estn ubicados en el directorio $ORACLE_HOME/bin y se deben agregar a la variable PATH. LD_LIBRARY_PATH: Especifica los directorios para los archivos del sistema operativo y la biblioteca Oracle. Ejemplo: $ORACLE_HOME/lib
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-11

Asistente de Configuracin de Bases de Datos


Con el Asistente de Configuracin de Bases de Datos puede: Crear una base de datos Configurar las opciones de la base de datos Suprimir una base de datos Gestionar plantillas Crear nuevas plantillas utilizando valores predefinidos Crear nuevas plantillas a partir de una base de datos existente Suprimir plantillas de base de datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Asistente de Configuracin de Bases de Datos La gestin de plantillas es una caracterstica nueva de Oracle9i. Existen algunas plantillas predefinidas disponibles. Asimismo, se puede utilizar la base de datos existente como copia para crear una base de datos o plantilla nueva. Los parmetros de la base de datos se almacenan en formato XML. Ventajas del uso de plantillas: Ahorra tiempo en la creacin de bases de datos Las plantillas se pueden compartir Las opciones de la base de datos se pueden cambiar, si fuera necesario Consulte la ayuda en pantalla del Asistente de Configuracin de Bases de Datos Oracle para obtener ms informacin acerca de las plantillas.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-12

Creacin de una Base de Datos con el Asistente de Configuracin de Bases de Datos


1. 2. 3. 4. 5. 6. Seleccione la opcin de creacin de una base de datos Especifique el tipo de la base de datos Especifique el nombre global y SID de la base de datos Seleccione las caractersticas Seleccione el modo operativo de la base de datos Especifique las opciones de memoria, juegos de caracteres, tamao de la base de datos, ubicaciones de archivos y archivado 7. Defina los parmetros de almacenamiento de la base de datos 8. Seleccione las opciones para:
Crear la base de datos Guardarla como plantilla Generar un archivo de comandos de creacin
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de una Base de Datos con el Asistente de Configuracin de Bases de Datos Inicie el Asistente de Configuracin de Bases de Datos (Database Configuration Assistant): Programs > Oracle-OraHome92 > Configuration and Migration Tools > Database Configuration Assistant. Esta herramienta le guiar por los siguientes pasos: 1. Operaciones: Seleccione la opcin Create a database para crear una base de datos. 2. Plantillas de Base de Datos: Seleccione el tipo de base de datos que desea crear en la lista de plantillas predefinidas. - Data Warehouse - General Purpose - Transaction processing - New Database - OID Nota: Marque el tipo de base de datos y utilice la opcin Show Details para ver lo que se va a crear con la plantilla de base de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-13

Creacin de una Base de Datos con el Asistente de Configuracin de Bases de Datos (continuacin) Las plantillas se pueden crear con o sin archivos de datos. - Includes datafiles? Yes: Contiene slo la estructura de la base de datos. Puede especificar y modificar todos los parmetros de la base de datos. - Includes datafiles? No: Contiene tanto la estructura como los archivos de datos fsicos de la base de datos. Se crean automticamente todos los archivos de log y de control para la base de datos. Asimismo, puede agregar o eliminar archivos de control y grupos de archivos redo log online y cambiar el destino y el nombre de los archivos de datos. No puede agregar ni eliminar archivos de datos, tablespaces o segmentos de rollback. Los parmetros de inicializacin no se pueden cambiar. 3. Database Identification: Especifique un nombre global de la base de datos y un SID. 4. Database Features: Seleccione las caractersticas que se van a utilizar en su base de datos desde la pgina del separador Database Features como, por ejemplo: - Oracle Spatial - Oracle Ultra Search - Oracle Label Security - Oracle Data Mining - Oracle OLAP - Esquemas de Ejemplo Los esquemas de ejemplo contienen archivos de comandos para los siguientes tipos de tablas: - Human Resources - Order Entry - Product Media - Sales History - Shipping Haga clic en el botn Standard de las funciones de la base de datos para ver la lista de las funciones estndar que Oracle recomienda siempre: - Oracle JVM - Oracle Intermedia - Oracle Text - Oracle XML DB Identifique los archivos de comandos que desea ejecutar tras la creacin de la base de datos en la pgina del separador Custom Scripts. 5. Database Connection Options: Seleccione el modo de funcionamiento de la base de datos: - Dedicated Server mode - Shared Server mode

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-14

Creacin de una Base de Datos con el Asistente de Configuracin de Bases de Datos (continuacin) 6. Initialization Parameters: Especifique las opciones en cada pgina de los separadores. - Memory Seleccione una base de datos tpica (Typical) o personalizada (Custom) - Typical: Crea una base de datos con una entrada mnima de usuario. Con la opcin Typical, puede especificar uno de los siguientes entornos para el funcionamiento de la base de datos: Online Transaction Processing (OLTP), Multipurpose y Data Warehousing. - Typical Custom: Le permite personalizar la creacin de la base de datos. Esta opcin es slo para los administradores de bases de datos con experiencia en los procedimientos avanzados de creacin de bases de datos. - Character Sets Seleccione una opcin de juego de caracteres de base de datos - Use the default: Se basa en la definicin del idioma del sistema operativo. - Use Unicode (AL32UTF8): Le permite almacenar varios grupos de idiomas. - Choose from the list of character sets: Men desplegable de opciones. - DB Sizing Define el tamao de bloque y el rea de ordenacin de la base de datos. El tamao de bloque de datos de una base de datos slo se puede especificar en el momento de la creacin de la misma. SORT_AREA_SIZE es la cantidad mxima de memoria utilizada para las operaciones de ordenacin. - File Locations Sirve para definir la ubicacin del archivo de parmetros de inicializacin, si se va a utilizar un archivo SPFILE y las ubicaciones de un archivo de rastreo. Asimismo, el botn All Initialization Parameters sirve para realizar cualquier cambio en los parmetros y el botn File Location Variables, para realizar cualquier cambio en los valores por defecto. - Archive Con esta opcin se especifica que la base de datos se coloque en modo ARCHIVELOG y permite que los archivos redo log online se archiven antes de ser reutilizados. 7. Database Storage: Sirve para especificar los parmetros de almacenamiento de la base de datos. Esta pgina muestra una vista de rbol y de resumen (listas con varias columnas), que le permiten modificar y ver los siguientes objetos: archivos de control, tablespaces, archivos de datos, segmentos de deshacer y grupos de archivos redo log online. 8. Creation Options: Seleccione la opcin de crear la base de datos, guardarla como plantilla o generar un archivo de comandos. - Create Database: Esta opcin crea la base de datos de forma inmediata. - Save as a Database Template: Esta opcin guarda los parmetros de creacin de la base de datos en forma de plantilla. Posteriormente, se agregar esta plantilla a la lista de plantillas disponibles. - Generate Database Creation Scripts: Esta opcin le permite guardar los parmetros de creacin de la base de datos en forma de archivo de comandos, para su utilizacin posterior.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-15

Creacin de una Base de Datos Manualmente


Seleccione una instancia y un nombre de base de datos nicos Seleccione un juego de caracteres de base de datos Defina las variables del sistema operativo Cree el archivo de parmetros de inicializacin Inicie la instancia en la etapa NOMOUNT Cree y ejecute el comando CREATE DATABASE Ejecute los archivos de comandos para generar el diccionario de datos y llevar a cabo los pasos posteriores a la creacin Cree los tablespaces adicionales que sean necesarios
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de una Base de Datos Manualmente Seleccione una instancia y un nombre de base de datos nicos. Seleccione un juego de caracteres de la base de datos. Se debe definir un juego de caracteres de la base de datos. Tambin se puede definir un juego de caracteres nacional opcional. Por ejemplo: - Character set AL32UTF16 - National character set AL16UTF16 Consulte la leccin Uso de Soporte para Globalizacin para obtener ms informacin acerca de los distintos juegos disponibles para su uso. Defina las variables del sistema operativo. Se deben establecer cuatro variables de entorno: ORACLE_HOME, ORACLE_SID, PATH, LD_LIBRARY_PATH. - ORACLE_HOME: Directorio superior en el que est instalado el servidor Oracle9i. - ORACLE_SID: Nombre definible por el usuario asignado a una instancia de base de datos. Se utiliza para distinguir las distintas instancias de base de datos que se ejecutan en una mquina. - PATH: Define los directorios en los que el sistema operativo busca archivos ejecutables. - LD_LIBRARY_PATH: Define los directorios en los que se almacenan los archivos de bibliotecas necesarios.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-16

Creacin de una Base de Datos Manualmente (continuacin) Cree el archivo de parmetros de inicializacin. El archivo de parmetros de inicializacin se crea con el archivo init.ora de ejemplo que se instala durante el proceso de instalacin. Copie el archivo de ejemplo init.ora y asgnele el nombre initSID.ora. Realice modificaciones en el archivo especficas a las necesidades de la base de datos que va a crear. Si se utiliza un archivo SPFILE, se debe crear primero el archivo PFILE. Consulte la leccin Gestin de una Instancia Oracle para obtener instrucciones sobre la creacin de un archivo initSID.ora especfico para la base de datos y un archivo SPFILE. Inicie la instancia en NOMOUNT. Conctese como usuario SYS con privilegios de SYSDBA. Para crear una base de datos, la base de datos se debe colocar en el estado NOMOUNT. Consulte la leccin Gestin de una Instancia Oracle para obtener instrucciones sobre cmo colocar la base de datos en el estado NOMOUNT. Cree y ejecute el comando CREATE DATABASE. - Cree un archivo de comandos SQL que contenga el comando CREATE DATABASE. Conctese a SQL*Plus como usuario SYS con privilegios de SYSDBA. Con la base de datos en estado NOMOUNT, ejecute el archivo de comandos. - El comando CREATE DATABASE se simplificar en gran medida si la base de datos que se va a crear utiliza OMF (Oracle Managed Files) para la gestin de los archivos del sistema operativo. Consulte la leccin Gestin de una Instancia Oracle para obtener ms informacin sobre OMF. Ejecute los archivos de comandos. - Una vez creada la base de datos, se deben ejecutar dos archivos de comandos: catalog.sql y catproc.sql. Ambos archivos de comandos se deben ejecutar como usuario SYS con privilegios de SYSDBA. Antes de ejecutar los archivos de comandos, debe colocar la base de datos en el estado OPEN. - catalog.sql: Crea las vistas, tanto en las tablas base como en las vistas dinmicas de rendimiento, as como sus sinnimos. Inicia otros archivos de comandos que crean objetos para:
El entorno PL/SQL bsico, incluyendo declaraciones para los tipos de dato PL/SQL, excepciones predefinidas, procedimientos y funciones incorporados y operaciones SQL Auditora Importacin y exportacin SQL*Loader Opciones instaladas

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-17

Creacin de una Base de Datos Manualmente (continuacin) Ejecute los archivos de comandos (continuacin) - catproc.sql: Crea los paquetes y procedimientos necesarios para utilizar PL/SQL. Adems, crea varios de los paquetes PL/SQL que se utilizan para ampliar la funcionalidad RDBMS. Este archivo de comandos tambin crea vistas de paquetes adicionales para alertas, canales, logminer, objetos de gran tamao, objetos, colas, replicacin y otras opciones incorporadas. - pupbld.sql: Crea la tabla Product User Profile y sus procedimientos relacionados. La ejecucin de este archivo de comandos evitar que se genere un mensaje de advertencia cada vez que un usuario se conecte a SQL*Plus. Nota: Este archivo de comandos se debe ejecutar como usuario SYSTEM. Cree tablespaces adicionales. Debe crear todos los tablespaces adicionales que necesite su base de datos. Nota: En el Apndice A se proporcionan instrucciones detalladas sobre la creacin manual de una base de datos en un entorno UNIX. Asimismo, consulte la documentacin Oracle especfica del sistema operativo para obtener ms informacin acerca de la creacin de bases de datos en su plataforma.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-18

Creacin de una Base de Datos con OMF (Oracle Managed Files)


El uso de archivos OMF simplifica la administracin de archivos en el sistema operativo. Oracle Server crea y suprime los archivos OMF tal y como se lo indican los comandos SQL. Los archivos OMF se establecen definiendo dos parmetros:
DB_CREATE_FILE_DEST: Definido con el fin de establecer la ubicacin por defecto de los archivos de datos DB_CREATE_ONLINE_LOG_DEST_n: Definido con el fin de establecer las ubicaciones por defecto de los archivos redo log online y de control

Cinco ubicaciones como mximo


Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de una Base de Datos con OMF (Oracle Managed Files) OMF simplifica la administracin de archivos eliminando la necesidad de gestionar los archivos directamente en una base de datos Oracle. Los archivos OMF tienen los siguientes nombres: Archivos de control: ora_%u.ctl Archivos redo log online: ora_%g_%u.log Archivos de datos: ora_%t_%u.dbf Archivos de datos temporales: ora_%t_%u.tmp Los siguientes caracteres se definen de la siguiente forma: %u: Cadena de ocho caracteres que garantiza la exclusividad. %t: El nombre de tablespace, que se puede truncar si es necesario para que se ajuste a la longitud mxima del nombre de archivo. La colocacin del nombre de tablespace delante de la cadena exclusiva significa que todos los archivos de datos de un tablespace aparecen juntos en una lista alfabtica de archivos. %g: El nmero de grupo de archivos redo log online. ora_ con .dbf al final: Identifica al archivo como OMF.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-19

Creacin de una Base de Datos con OMF (Oracle Managed Files) (continuacin) Los archivos de deshacer no tienen una extensin especial. No es necesario definir los dos parmetros DB_CREATE_FILE_DEST y DB_CREATE_ONLINE_LOG_DEST_n. Se puede utilizar uno o los dos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-20

Creacin de una Base de Datos con OMF (Oracle Managed Files)


Defina los parmetros OMF en el archivo de parmetros de inicializacin. Ejemplo:
DB_CREATE_FILE_DEST=/$HOME/ORADATA/u05 DB_CREATE_ONLINE_LOG_DEST_1=/$HOME/ORADATA/u01 DB_CREATE_ONLINE_LOG_DEST_2=/$HOME/ORADATA/u02

El comando CREATE DATABASE se simplifica:


@cddba01.sql > CREATE DATABASE dba01;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de una Base de Datos con OMF (Oracle Managed Files) Para crear una base de datos con OMF, se definen los parmetros DB_CREATE_FILE_DEST y DB_CREATE_ONLINE_LOG_DEST_n en el archivo de parmetros de inicializacin. Una vez definidos los parmetros OMF, se simplifica la sintaxis de creacin de la base de datos, ya que no es necesario definir nombres de archivos ni ubicaciones. En el ejemplo anterior se crea una base de datos con los siguientes OMF: Un archivo de datos de tablespace SYSTEM en el directorio /$HOME/ORADATA/u05 con un tamao de 100 MB y que se puede ampliar automticamente hasta un tamao ilimitado. Dos grupos de archivos redo log online con dos miembros de 100 MB cada uno, en los directorios /$HOME/ORADATA/u01 y /$HOME/ORADATA/u02. Si se activa el modo de gestin SMU automtico, se crea un archivo de datos de tablespace de deshacer en el directorio /$HOME/ORADATA/u05 cuyo tamao es de 10 MB y que se puede ampliar automticamente hasta un tamao ilimitado. Se crea un tablespace de deshacer denominado SYS_UNDOTBS. Si no se ha especificado el parmetro de inicializacin CONTROL_FILES, se crean dos archivos de control en los directorios /$HOME/ORADATA/u01 y /$HOME/ORADATA/u02. El archivo de control de /$HOME/ORADATA/u01 es el archivo de control principal.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-21

Creacin de una Base de Datos con OMF (Oracle Managed Files) (continuacin) Si falla el comando CREATE DATABASE, se eliminan todos los OMF creados. Los nombres de archivos generados de forma interna se pueden ver cuando el usuario selecciona de DBA_DATAFILES, V$DATAFILE, V$CONTROLFILE y V$LOGFILE. Ambos parmetros DB_CREATE_FILE_DEST y DB_CREATE_ONLINE_LOG_DEST_n se pueden modificar de forma dinmica con el comando ALTER SYSTEM SET.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-22

Comando CREATE DATABASE


CREATE DATABASE user01 USER SYS IDENTIFIED BY ORACLE USER SYSTEM IDENTIFIED BY MANAGER CONTROLFILE REUSE LOGFILE GROUP 1 ('$HOME/ORADATA/u01/redo01.log') SIZE 100M, GROUP 2 ('$HOME/ORADATA/u02/redo02.log') SIZE 100M, GROUP 3 ('$HOME/ORADATA/u03/redo03.log') SIZE 100M MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 ARCHIVELOG FORCE LOGGING CHARACTER SET US7ASCII NATIONAL CHARACTER SET AL16UTF16 DATAFILE '/$HOME/ORADATA/u01/system01.dbf' SIZE 325M DEFAULT TEMPORARY TABLESPACE temp UNDO TABLESPACE undotbs SET TIME_ZONE= 'America/New_York'
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Comando CREATE DATABASE Para crear una base de datos, debe disponer del privilegio del sistema SYSDBA. Utilice el siguiente comando SQL para crear manualmente la base de datos. Nota: No todas las clusulas son no obligatorias y se han identificado como tales. Adems, en el ejemplo anterior se da por hecho que se ha activado Oracle Managed Files especificando un valor para el parmetro DB_CREATE_FILE_DEST en el archivo de parmetros de inicializacin. Por lo tanto, no se requiere ninguna especificacin para las clusulas DEFAULT TEMPORARY TABLESPACE y UNDO TABLESPACE anteriores.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-23

Comando CREATE DATABASE (continuacin) CREATE DATABASE base_de_datos USER SYS IDENFIED BY contrasea USER SYSTEM IDENTIFIED BY contrasea CONTROLFILE REUSE LOGFILE GROUP entero especificacin_archivo MAXLOGFILES entero MAXLOGMEMBERS entero MAXLOGHISTORY entero MAXDATAFILES entero MAXINSTANCES entero ARCHIVELOG|NOARCHIVELOG CHARACTER SET juego_caracteres NATIONAL CHARACTER SET juego_caracteres DATAFILE especificacin archivo [clusula_extensin_automtica] especificacin_archivo:= 'nombrearchivo' [SIZE entero][K|M] [REUSE] clusula_extensin_automtica:= [AUTOEXTEND {OFF|ON [NEXT entero[K|M]] [MAXSIZE {UNLIMITED|entero[K|M]}}] DEFAULT TEMPORARY TABLESPACE tablespace especificacin_archivo clusula_extensin_tablespace_temp clusula_extensin_tablespace_temp:= EXTENT MANAGEMENT LOCAL UNIFORM [SIZE entero][K|M] ] UNDO TABLESPACE tablespace DATAFILE especificacin_archivo [clusula_extensin_automtica] SET TIME_ZONE [regin_zona_horaria donde: DATABASE: Es el nombre de la base de datos que se va a crear. El nombre puede tener una longitud mxima de 8 bytes. (Si se omite el nombre de la base de datos, se utiliza el parmetro de inicializacin DB_NAME.) USER SYS IDENTIFIED BY y USER SYSTEM IDENTIFIED BY: Estas clusulas se introdujeron en la base de datos Oracle9i Versin 2, y no son obligatorias. Utilcelas para definir contraseas para los usuarios SYS y SYSTEM. Si especifica una clusula, debe especificar la otra. CONTROLFILE REUSE: Especifica que se debe reutilizar un archivo de control existente identificado en el archivo de parmetros. Se suele utilizar al volver a crear una base de datos, en lugar de cuando se crea por primera vez.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-24

Comando CREATE DATABASE (continuacin) LOGFILE GROUP: Especifica los nombres de los archivos log que se van a utilizar y el grupo al que pertenecen. Una base de datos necesita, como mnimo, dos archivos redo log online. - Si se ha definido el parmetro de inicializacin DB_CREATE_ONLINE_LOG_DEST_n o DB_CREATE_FILE_DEST (o ambos), Oracle Server crea dos archivos OMF con nombres generados por el sistema, con un tamao de 100 MB, en el directorio del archivo log por defecto que especifican estos parmetros. - Si no hay definido ninguno de estos parmetros, Oracle Server crea dos grupos de archivos redo log online. Los nombres y los tamaos de los archivos por defecto dependen del sistema operativo. MAXLOGFILES: Especifica el nmero mximo de grupos de archivos redo log online que se puede crear para la base de datos. MAXLOGMEMBERS: Especifica el nmero mximo de miembros de archivo log para un grupo de archivos log MAXLOGHISTORY: Especifica el nmero mximo de archivos redo log archivados para la recuperacin automtica de medios fsicos de Oracle Real Application Clusters MAXDATAFILES: Especifica el tamao inicial de la seccin del archivo de datos del archivo de control en el momento de la creacin de la base de datos (CREATE DATABASE) o de la creacin del archivo de control (CREATE CONTROLFILE). Cualquier intento por agregar un nuevo archivo cuyo nmero sea mayor que MAXDATAFILES, aunque menor o igual que DB_FILES, provocar que el archivo de control se expanda. MAXINSTANCES: Especifica el nmero mximo de instancias que puede montar y abrir simultneamente la base de datos. ARCHIVELOG|NOARCHIVELOG: Especifique ARCHIVELOG si desea archivar el contenido de un grupo de archivos redo log online antes de que el grupo se pueda reutilizar. Especifique NOARCHIVELOG si no es necesario archivar el contenido de un grupo de archivos redo log online antes de que el grupo se pueda reutilizar. FORCE LOGGING: Especifica el registro de todos los cambios en la base de datos, excepto los cambios en tablespaces temporales y segmentos temporales. CHARACTER SET: Especifica el juego de caracteres que utiliza la base de datos para almacenar datos NATIONAL CHARACTER SET: Especifica el juego de caracteres nacional que se utiliza para almacenar datos en columnas definidas como NCHAR, NCLOB o NVARCHAR2. El juego de caracteres por defecto es AL16UTF16. DATAFILE filespec: Especifica los archivos de datos que se van a utilizar. DEFAULT TEMPORARY TABLESPACE: Crea un tablespace temporal por defecto para la base de datos. Oracle asignar a este tablespace temporal cualquier usuario para el que no haya especificado otro tablespace temporal UNDO TABLESPACE: Crea un tablespace de deshacer y los archivos de datos especificados como parte del tablespace de deshacer SET TIME_ZONE: Define la zona horaria para la base de datos. Puede especificar la zona horaria de dos formas: - Especificando un desplazamiento del rango vlido de UTC (Tiempo Universal Coordinado) de hh:mm de -12:00 a +14:00 - Especificando una regin de la zona horaria. Consulte la columna TZNAME de la vista V$TIMEZONE_NAMES para ver una lista de nombres de regiones vlidos.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-25

Solucin de Problemas
La creacin de la base de datos falla si: Hay errores de sintaxis en el archivo de comandos SQL Los archivos que se deben crear ya existen Se producen errores del sistema operativo, como errores de permisos de directorio o de archivo, o de espacio insuficiente en disco

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Solucin de Problemas Si se produce uno de los tres problemas que se indican en la transparencia, la sentencia CREATE DATABASE falla. Deber suprimir todos los archivos creados por la sentencia CREATE DATABASE, corregir los errores e intentar crearla de nuevo.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-26

Tras la Creacin de la Base de Datos


La base de datos contiene: Archivos de datos, archivos de control y archivos redo log online El usuario SYS con la contrasea change_on_install El usuario SYSTEM con la contrasea manager Tablas internas (pero sin vistas del diccionario de datos)

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tras la Creacin de la Base de Datos Una vez creada la base de datos, la instancia sigue funcionando y la base de datos se abre y est disponible para su utilizacin normal. La base de datos contiene los usuarios SYS y SYSTEM. Dependiendo del mtodo utilizado para la creacin de la base de datos, bien mediante DBCA o de forma manual, es posible que se hayan creado otros usuarios. Cambie las contraseas para los usuarios SYS y SYSTEM en cuanto se haya creado la base de datos. Nota: A partir de Oracle9i Versin 2, DBCA le solicita que introduzca las contraseas de SYS y SYSTEM. Puede ver las vistas dinmicas de rendimiento como V$LOGFILE, V$CONTROLFILE y V$DATAFILE, aunque no se crea ninguna vista de diccionario de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-27

Resumen
En esta leccin, ha aprendido a: Identificar los requisitos para la creacin de una base de datos Crear una base de datos con el Asistente de Configuracin de Bases de Datos Oracle Crear una base de datos de forma manual Crear una base de datos con OMF (Oracle Managed Files)

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-28

Prctica 4: Visin General


En esta leccin se describen dos formas especficas para crear una base de datos:
Utilice el Asistente de Configuracin de Bases de Datos para crear una base de datos mediante pasos grficos. Se lanza de la siguiente forma: Start > Programs > Oracle-OraHome90 > Configuration and Migration Tools. En el Apndice A se incluye una gua detallada para crear una base de datos de forma manual en un sistema UNIX.

Revise los pasos y, si lo desea, cree una base de datos de forma manual o con el Asistente de Configuracin de Bases de Datos.
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-29

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 4-30

Uso del Diccionario de Datos y las Vistas Dinmicas de Rendimiento

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Identificar objetos de base de datos incorporados Identificar el contenido y los usos del diccionario de datos Describir cmo se crean las vistas del diccionario de datos Identificar las categoras de vistas del diccionario de datos Consultar el diccionario de datos y las vistas dinmicas de rendimiento Describir las reglas de nomenclatura de los archivos de comandos administrativos
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-2

Objetos de Base de Datos Incorporados


Otros objetos creados con la base de datos son: Diccionario de datos Tablas de rendimiento Paquetes PL/SQL Disparadores de eventos de la base de datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetos de Base de Datos Incorporados Adems de crear los archivos de la base de datos, tambin se crean muchas otras estructuras. Diccionario de datos: Contiene descripciones de los objetos de la base de datos. Tablas dinmicas de rendimiento: Contienen informacin que utiliza el DBA (Administrador de la Base de Datos) para controlar y ajustar la base de datos y la instancia. Paquetes PL/SQL: Unidades de programa que agregan funcionalidad a la base de datos. Estos paquetes se crean al ejecutar el archivo de comandos catproc.sql despus del comando CREATE DATABASE. Los paquetes PL/SQL no se analizarn dentro del mbito de este curso. Disparadores de eventos de la base de datos: Los disparadores son procedimientos que se ejecutan implcitamente siempre que se modifica una tabla o una vista, o bien cuando se producen algunas acciones de usuario o del sistema de base de datos. Los disparadores de eventos de la base de datos no se analizarn dentro del mbito de este curso.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-3

Diccionario de Datos
Es fundamental para toda base de datos Oracle Describe la base de datos y sus objetos Contiene tablas y vistas de slo lectura Se almacena en el tablespace SYSTEM Es propiedad del usuario SYS Archivos Lo mantiene Oracle Server de datos Archivos de control Se accede a l con SELECT

Archivos Redo Log

Base de datos

Tablas del Diccionario de Datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Diccionario de Datos Una de las partes ms importantes de una base de datos Oracle es su diccionario de datos, que es un juego de tablas y vistas de slo lectura que proporciona informacin acerca de su base de datos asociada. Oracle Server actualiza el diccionario de datos siempre que se ejecuta un comando DDL (Lenguaje de Definicin de Datos). Adems, los comandos DML (Lenguaje de Manipulacin de Datos ), como el que produce la ampliacin de una tabla, tambin pueden actualizar el diccionario de datos. El diccionario de datos no slo es una parte fundamental de todas las bases de datos Oracle, sino que adems se trata de una fuente de informacin importante para todos los usuarios, desde los usuarios finales hasta los diseadores de aplicaciones y los DBA. Las sentencias SQL sirven para acceder al diccionario de datos. Puesto que la base de datos es de slo lectura, slo se pueden emitir consultas en las tablas y las vistas del diccionario de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-4

Tablas Base y Vistas del Diccionario de Datos


El diccionario de datos contiene dos partes: Tablas base
Almacenan la descripcin de la base de datos Se crean con el comando CREATE DATABASE

Vistas del diccionario de datos


Se utilizan para simplificar la informacin de las tablas base Se accede a ellas a travs de sinnimos pblicos Se crean con el archivo de comandos catalog.sql

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tablas Base y Vistas del Diccionario de Datos El diccionario de datos contiene descripciones de los objetos de la base de datos. Incluye dos tipos de objetos. Tablas Base Las tablas base son las tablas subyacentes que almacenan informacin acerca de la base de datos. Las tablas base son los primeros objetos que se crean en cualquier base de datos Oracle. Se crean automticamente cuando Oracle Server ejecuta el archivo de comandos sql.bsq al crear la base de datos. Oracle Server es el nico que debe escribir en estas tablas. Los usuarios acceden a ellas directamente en raras ocasiones, ya que la mayora de los datos se almacenan en un formato cifrado. Se recomienda no utilizar nunca comandos DML para actualizar directamente las tablas base, a excepcin de la tabla AUD$. Un ejemplo de una tabla base es la tabla IND$, que contiene informacin acerca de los ndices de la base de datos. Vistas del Diccionario de Datos Las vistas del diccionario de datos son resmenes de la tabla base, que proporcionan una presentacin ms prctica de la informacin de la tabla base. Por ejemplo, en las vistas del diccionario de datos, se utilizan nombres de objetos en lugar de nicamente nmeros de objetos. Para crear las vistas del diccionario de datos, hay que ejecutar el archivo de comandos catalog.sql despus del comando CREATE DATABASE.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-5

Creacin de las Vistas del Diccionario de Datos

Archivo de comandos

Objetivo Crea sinnimos y vistas del diccionario de datos que se utilizan frecuentemente Ejecuta los archivos de comandos necesarios para el PL/SQL del servidor

catalog.sql

catproc.sql

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de las Vistas del Diccionario de Datos Las tablas base del diccionario de datos se crean automticamente al crear una base de datos. Si dicha base de datos se crea con Oracle Universal Installer, se ejecutan automticamente los archivos de comandos que sirven para crear las vistas del diccionario de datos, las vistas dinmicas de rendimiento y los archivos de comandos para las opciones de Oracle Server. Si crea una base de datos de forma manual, debe ejecutar estos archivos de comandos manualmente. Adems, quiz tenga que ejecutarlos de nuevo cuando realice una actualizacin a una nueva versin de Oracle Server. Estos archivos de comandos se deben ejecutar como usuario SYS con privilegios de SYSDBA. Los archivos de comandos estn ubicados en los siguientes directorios: UNIX: $ORACLE_HOME/rdbms/admin NT: %ORACLE_HOME%\rdbms\admin

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-6

Contenido del Diccionario de Datos


El diccionario de datos proporciona informacin acerca de: Estructuras lgicas y fsicas de la base de datos Definiciones y asignaciones de espacio de los objetos Restricciones de integridad Usuarios Roles Privilegios Auditoras

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Contenido del Diccionario de Datos Un diccionario de datos contiene: Las definiciones de todos los objetos de esquema de la base de datos (tablas, vistas, ndices, agrupamientos, sinnimos, secuencias, procedimientos, funciones, paquetes, disparadores, etc.) El espacio que se ha asignado y que utilizan actualmente los objetos de esquema Los valores por defecto de las columnas La informacin acerca de las restricciones de integridad Los nombres de los usuarios Oracle Los privilegios y roles que se han otorgado a cada usuario La auditora de informacin como, por ejemplo, quin ha accedido o actualizado varios objetos de esquema

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-7

Uso del Diccionario de Datos


Usos principales: Oracle Server lo utiliza para buscar informacin acerca de
Usuarios Objetos de esquema Estructuras de almacenamiento

Oracle Server lo modifica cuando se ejecuta una sentencia DDL. Los usuarios y DBA lo pueden utilizar como una referencia de slo lectura para obtener informacin acerca de la base de datos.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Uso del Diccionario de Datos Cmo Utiliza Oracle Server el Diccionario de Datos Los datos de las tablas base del diccionario de datos son necesarios para que Oracle Server funcione. Por lo tanto, el nico que debera escribir o cambiar la informacin del diccionario de datos es Oracle Server. Durante el funcionamiento de la base de datos, Oracle Server lee el diccionario de datos para determinar si existen objetos de esquema y si los usuarios tienen el acceso correcto a ellos. Oracle Server tambin actualiza el diccionario de datos continuamente para reflejar los cambios en las estructuras de base de datos. Cmo Utilizan el Diccionario de Datos los Usuarios y los Administradores de Bases de Datos Las vistas del diccionario de datos sirven de referencia para todos los usuarios de base de datos. Algunas vistas son accesibles para todos los usuarios Oracle, mientras que otras slo son para los DBA.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-8

Categoras de las Vistas del Diccionario de Datos


Existen tres juegos de vistas estticas Se diferencian por su mbito:
DBA: Lo que hay en todos los esquemas ALL: A lo que puede acceder el usuario USER: Lo que hay en el esquema del usuario

DBA_xxx Todos los objetos de la base de datos ALL_xxx Objetos accesibles para el usuario actual USER_xxx Objetos que posee el usuario actual

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Categoras de las Vistas del Diccionario de Datos Vistas con el Prefijo DBA Las vistas con el prefijo DBA muestran una vista global de toda la base de datos. Su finalidad es que las consulten nicamente los DBA. Cualquier usuario al que se le haya otorgado el privilegio del sistema SELECT ANY TABLE puede consultar las vistas que tienen el prefijo DBA del diccionario de datos. Para realizar consultas acerca de todos los objetos de la base de datos, el DBA podra emitir la siguiente sentencia: SQL> SELECT owner, object_name, object_type 2 FROM dba_objects; Vistas con el Prefijo ALL Las vistas con el prefijo ALL hacen referencia a la perspectiva global del usuario de la base de datos. Estas vistas devuelven informacin acerca de los objetos de esquema a los que tiene acceso el usuario por medio de permisos pblicos o explcitos de privilegios y rol, adems de los objetos de esquema que posee el usuario. Por ejemplo, la siguiente consulta devuelve informacin acerca de todos los objetos a los que tiene acceso un usuario: SELECT owner, object_name, object_type FROM all_objects;
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-9

Categoras de las Vistas del Diccionario de Datos (continuacin) Vistas con el Prefijo USER Probablemente, las vistas ms interesantes para los usuarios normales de la base de datos son las que tienen el prefijo USER. Estas vistas: Hacen referencia al propio entorno privado del usuario de la base de datos Generalmente hacen referencia a los objetos que posee el usuario actual Tienen columnas idnticas a las de otras vistas, excepto que se supone que la columna OWNER es el usuario actual Devuelven un subjuego de la informacin de las vistas ALL Pueden tener sinnimos pblicos abreviados por comodidad Por ejemplo, la siguiente consulta devuelve todos los objetos contenidos en el esquema del usuario: SELECT owner, object_name, object_type FROM users_objects; Vistas del Diccionario de Datos Las vistas del diccionario de datos son vistas estticas que responden a preguntas como: Se ha creado alguna vez el objeto? De qu forma parte el objeto? Quin es el propietario del objeto? Qu privilegios tienen los usuarios? Qu restricciones tiene el objeto? Nota: Consulte el documento Oracle9i Database Reference para obtener una lista de todas las vistas del diccionario de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-10

Ejemplos del Diccionario de Datos


Visin general: DICTIONARY, DICT_COLUMNS Objetos de esquema: DBA_TABLES, DBA_INDEXES, DBA_TAB_COLUMNS, DBA_CONSTRAINTS Asignacin de espacio: DBA_SEGMENTS, DBA_EXTENTS Estructura de la base de datos: DBA_TABLESPACES, DBA_DATA_FILES

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Ejemplos del Diccionario de Datos Para obtener una visin general de las vistas del diccionario de datos, se puede consultar la vista DICTIONARY o su sinnimo DICT. Por ejemplo: SQL> SELECT * FROM dictionary; Incluya la clusula WHERE para limitar las respuestas: SQL> SELECT * FROM dictionary 2 WHERE table_name LIKE DBA_SEG% Para obtener una lista de columnas de una vista, utilice la palabra clave DESCRIBE: SQL> DESCRIBE dba_users; Para obtener una visin general de las columnas de las vistas del diccionario de datos, puede consultar la vista DICT_COLUMNS. Para ver el contenido de una vista del diccionario de datos, utilice el comando SELECT. SQL> SELECT * FROM dba_users; Nota: Consulte el documento Oracle9i Database Reference para obtener una lista detallada de todas las vistas del diccionario de datos y sus columnas.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-11

Tablas Dinmicas de Rendimiento


Tablas virtuales Registran la actividad actual de la base de datos Se actualizan continuamente mientras la base de datos est en funcionamiento Se accede a la informacin desde la memoria y el archivo de control Se utiliza para controlar y ajustar la base de datos El propietario es el usuario SYS Los sinnimos empiezan por V$ Se enumeran en V$FIXED_TABLE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tablas Dinmicas de Rendimiento Durante su funcionamiento, Oracle Server registra la actividad actual de la base de datos en un juego de tablas virtuales denominadas vistas dinmicas de rendimiento. Estas tablas virtuales se encuentran en la memoria slo cuando se est ejecutando la base de datos, con el fin de reflejar las condiciones en tiempo real del funcionamiento de la base de datos. Apuntan a orgenes reales de informacin en la memoria y en el archivo de control. No son tablas verdaderas y la mayora de usuarios no acceden a ellas; sin embargo, los DBA pueden consultar, otorgar el privilegio SELECT y crear vistas sobre estas vistas. A veces, estas vistas se llaman vistas fijas, ya que el DBA no las puede modificar ni eliminar. El usuario SYS es el propietario de las tablas dinmicas de rendimiento y sus nombres empiezan siempre por el prefijo V_$. Primero se crean vistas sobre estas tablas y, posteriormente, se crean sinnimos pblicos para las vistas. Los sinnimos empiezan por el prefijo V$. Por ejemplo, la vista V$DATAFILE contiene informacin acerca de los archivos de datos de la base de datos y la vista V$FIXED_TABLE contiene informacin acerca de todas las tablas dinmicas de rendimiento y las vistas de la base de datos. Las tablas dinmicas de rendimiento responden a estas preguntas: El objeto est online y disponible? Est abierto el objeto? Qu bloqueos estn retenidos? Est activa la sesin?
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-12

Ejemplos de Vistas Dinmicas de Rendimiento


V$CONTROLFILE V$DATABASE V$DATAFILE V$INSTANCE V$PARAMETER V$SESSION V$SGA $SPPARAMETER V$TABLESPACE V$THREAD V$VERSION
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Ejemplos de Vistas Dinmicas de Rendimiento Tambin puede consultar la vista V$FIXED_TABLE para obtener una lista de las vistas dinmicas de rendimiento: SQL> SELECT * FROM V$FIXED_TABLE; Para obtener una lista de columnas de una vista, utilice la palabra clave DESCRIBE: SQL> DESCRIBE V$INSTANCE; Para ver el contenido de la vista, utilice el comando SELECT. SQL> SELECT * from V$INSTANCE;

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-13

Ejemplos de Vistas Dinmicas de Rendimiento (continuacin) Ejemplos V$CONTROLFILE: Enumera los nombres de los archivos de control V$DATABASE: Contiene informacin de base de datos del archivo de control. V$DATAFILE: Contiene informacin de archivos de datos del archivo de control V$INSTANCE: Muestra el estado de la instancia actual V$PARAMETER: Enumera los parmetros y los valores que estn en vigor actualmente para la sesin V$SESSION: Enumera la informacin de sesin para cada sesin actual V$SGA: Contiene informacin de resumen sobre el SGA (rea Global del Sistema) V$SPPARAMETER: Enumera el contenido del archivo SPFILE V$TABLESPACE: Muestra la informacin de tablespace del archivo de control V$THREAD: Contiene informacin de thread del archivo de control V$VERSION: Nmeros de versin de los componentes de la biblioteca principal de Oracle Server Nota: Consulte el documento Oracle9i Database Reference para obtener una lista detallada de todas las vistas dinmicas de rendimiento y sus columnas.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-14

Reglas de Nomenclatura de Archivos de Comandos Administrativos

Convencin cat*.sql dbms*.sql prvt*.plb utl*.sql

Descripcin Informacin del diccionario de datos y del catlogo Especificaciones del paquete de la base de datos Cdigo ajustado del paquete de la base de datos Vistas y tablas para las utilidades de la base de datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Reglas de Nomenclatura de Archivos de Comandos Administrativos Los archivos de comandos administrativos se pueden dividir en categoras en funcin de sus nombres: cat*.sql Estos archivos de comandos crean las vistas del diccionario de datos. Adems de los archivos de comandos catalog.sql y catproc.sql, tambin hay archivos de comandos que crean informacin para las utilidades Oracle. Por ejemplo, el archivo de comandos catadt.sql crea vistas del diccionario de datos para mostrar informacin de los metadatos para los tipos y otras caractersticas de objetos en el ORDBMS. El archivo de comandos catnoadt.sql borra estas tablas y estas vistas. dbms*.sql y prvt*plb: Estos archivos de comandos crean objetos para los paquetes Oracle predefinidos que amplan la funcionalidad de Oracle Server. Estos programas simplifican la administracin de la base de datos. La mayor parte de los archivos de comandos SQL se ejecutan durante la ejecucin del archivo de comandos catproc.sql. El DBA debe ejecutar algunos archivos de comandos adicionales. Un ejemplo es el archivo de comandos dbmspool.sql, que permite mostrar los tamaos de los objetos en el conjunto compartido y marcarlos para que se mantengan o se eliminen del SGA con el fin de reducir la fragmentacin del conjunto compartido.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-15

Reglas de Nomenclatura de Archivos de Comandos Administrativos (continuacin) utl*.sql Estos archivos de comandos se deben ejecutar cuando la base de datos necesita vistas y tablas adicionales. Por ejemplo, el archivo de comandos utlxplan.sql crea una tabla que se utiliza para ver el plan de ejecucin de una sentencia SQL. Nota: La mayor parte de estos archivos de comandos se deben ejecutar como usuario SYS con privilegios SYSDBA. El administrador de la base de datos debe examinar los archivos de comandos para determinar la cuenta de usuario que se debe utilizar para ejecutarlos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-16

Resumen
En esta leccin, ha aprendido a: Identificar los objetos de base de datos incorporados Identificar el contenido y los usos del diccionario de datos Describir cmo se crean las vistas del diccionario de datos Identificar las categoras de vistas del diccionario de datos Consultar el diccionario de datos y las vistas dinmicas de rendimiento Describir las reglas de nomenclatura de los archivos de comandos administrativos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-17

Prctica 5: Visin General


Esta prctica abarca los siguientes temas: Identificacin de los componentes y el contenido del diccionario de datos Consulta del diccionario de datos y las vistas dinmicas de rendimiento

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Prctica 5: Visin General Nota: Esta prctica se puede realizar con SQL*Plus o con Oracle Enterprise Manager y SQL*Plus Worksheet.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-18

Prctica 5: Uso del Diccionario de Datos y de las Vistas Dinmicas de Rendimiento 1 Cul de las siguientes afirmaciones sobre el diccionario de datos es correcta? a El diccionario de datos describe la base de datos y sus objetos. b El diccionario de datos incluye dos tipos de objetos: tablas base y vistas del diccionario de datos. c El diccionario de datos es un juego de tablas. d El diccionario de datos registra y verifica la informacin acerca de su base de datos asociada. 2 Las tablas base se crean con el archivo de comandos catalog.sql. a Verdadero b Falso 3 Tres de las siguientes afirmaciones sobre el uso del diccionario de datos son correctas. Cules son? a Oracle Server lo modifica cuando se ejecuta una sentencia DML. b Se utiliza para buscar informacin acerca de usuarios, objetos de esquema y estructuras de almacenamiento. c Los usuarios y los DBA lo utilizan como referencia. d El diccionario de datos es un componente necesario para el funcionamiento de la base de datos. 4 Las vistas del diccionario de datos son estticas. a Verdadero b Falso 5 La informacin para una vista dinmica de rendimiento se obtiene del archivo de control. a Verdadero b Falso 6 De las siguientes preguntas, a cules puede responder una vista dinmica de rendimiento? a El objeto est online y disponible? b Qu bloqueos estn retenidos? c Quin es el propietario del objeto? d Qu privilegios tienen los usuarios? e Est activa la sesin?

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-19

Prctica 5: Uso del Diccionario de Datos y de las Vistas Dinmicas de Rendimiento 7 Conctese como SYSTEM/MANAGER y busque una lista de las vistas del diccionario de datos. 8 Identifique el nombre de la base de datos, el nombre de la instancia y el tamao de los bloques de la base de datos. Indicacin: Consulte las vistas dinmicas de rendimiento V$DATABASE, V$THREAD y V$PARAMETER. 9 Enumere los nombres de los archivos de datos. Indicacin: Consulte la vista dinmica de rendimiento V$DATAFILE. 10 Identifique el archivo de datos que constituye el tablespace SYSTEM. Indicacin: Consulte la vista del diccionario de datos DBA_DATA_FILES para identificar el archivo de datos de tablespace SYSTEM. 11 Cunto espacio libre hay disponible en la base de datos y cunto se est utilizando ya? Indicaciones - Consulte la vista del diccionario de datos DBA_FREE_SPACE para ver cunto espacio libre est disponible en la base de datos. - Consulte la vista del diccionario de datos DBA_SEGMENTS para ver cunto espacio se est utilizando ya. 12 Enumere el nombre y la fecha de creacin de los usuarios de la base de datos. Indicacin: Consulte la vista del diccionario de datos DBA_USERS para ver el nombre y la creacin de los usuarios de la base de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 5-20

Mantenimiento del Archivo de Control

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Explicar los usos del archivo de control Enumerar el contenido del archivo de control Multiplexar y gestionar el archivo de control Gestionar el archivo de control con OMF (Oracle Managed Files) Obtener informacin acerca del archivo de control

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-2

Archivo de Control
Archivo binario pequeo Define el estado actual de la base de datos fsica Mantiene la integridad de la base de datos Es necesario:
En el estado MOUNT durante el inicio de la base de datos Para hacer funcionar la base de datos
Base de datos Archivos de control

Enlazado a una nica base de datos Puede que si se pierde, sea necesario realizar una recuperacin El tamao est especificado inicialmente por CREATE DATABASE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Archivo de Control El archivo de control es un pequeo archivo binario necesario para que la base de datos se inicie y funcione correctamente. Cada archivo de control est asociado slo a una base de datos Oracle. Antes de abrir una base de datos, se lee el archivo de control para determinar si la base de datos tiene un estado vlido para su uso. Oracle Server actualiza continuamente un archivo de control mientras se est utilizando la base de datos, por lo que debe estar disponible para su escritura siempre que la base de datos est abierta. Oracle Server es el nico que puede modificar la informacin del archivo de control y ni el DBA ni el usuario final pueden editarlo. Si, por cualquier motivo, no se puede acceder al archivo de control, la base de datos no funcionar correctamente. Si se pierden todas las copias de los archivos de control de una base de datos, ser necesario recuperar la base de datos antes de que se pueda abrir.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-3

Archivo de Control (continuacin) Especificacin del Tamao del Archivo de Control Las palabras clave que se especifican durante la creacin de la base de datos afectan al tamao del archivo de control. Esto es especialmente importante cuando los parmetros tienen valores muy elevados. El tamao del archivo de control est influido por las siguientes palabras clave de los comandos CREATE DATABASE o CREATE CONTROLFILE: MAXLOGFILES MAXLOGMEMBERS MAXLOGHISTORY MAXDATAFILES MAXINSTANCES

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-4

Contenido del Archivo de Control


Un archivo de control contiene las siguientes entradas: Nombre e identificador de base de datos Registro de hora de la creacin de la base de datos Nombres de tablespace Nombres y ubicaciones de los archivos de datos y los archivos redo log online El nmero de secuencia del archivo redo log online actual Informacin del punto de control Inicio y fin de los segmentos de deshacer Informacin de los redo logs archivados Informacin de copia de seguridad

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Contenido del Archivo de Control La informacin del archivo de control incluye lo siguiente: El nombre de la base de datos se obtiene del nombre especificado por el parmetro de inicializacin DB_NAME o del nombre que se utiliza en la sentencia CREATE DATABASE. El identificador de la base de datos se registra cuando se crea la base de datos. El registro de hora de la creacin de la base de datos tambin se registra cuando se crea la base de datos. Los nombres y las ubicaciones de los archivos de datos asociados y los archivos redo log online se actualizan cuando se agrega, se cambia de nombre o se borra un archivo de datos o un archivo redo log online de la base de datos. La informacin de tablespace se actualiza a medida que se agregan o se borran tablespaces. El historial de archivos redo log online se registra durante los cambios de log. La ubicacin y el estado de logs archivados se registra cuando se produce el archivado. La utilidad RMAN (Oracle Recovery Manager) registra la ubicacin y el estado de las copias de seguridad. El nmero de secuencia del log actual se registra cuando se producen los cambios de log. La informacin de punto de control se registra a medida que se realizan los puntos de control.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-5

Contenido del Archivo de Control (continuacin) El archivo de control consta de dos tipos de secciones: Reutilizable No reutilizable Las secciones reutilizables almacenan informacin de RMAN como, por ejemplo, los nombres de los archivos de datos de copia de seguridad y los nombres de archivos redo log online de copia de seguridad. Se utilizan de forma circular y slo las podr utilizar RMAN. Nota: RMAN se explica con ms detalle en el curso Administracin de la Base de Datos Oracle9i: Conceptos Bsicos II.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-6

Multiplexacin del Archivo de Control

CONTROL_FILES= $HOME/ORADATA/u01/ctrl01.ctl, $HOME/ORADATA/u02/ctrl02.ctl

Disco 1 (u01)

Disco 2 (u02)

ctrl01.ctl

ctrl02.ctl

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Multiplexacin del Archivo de Control Como medida de seguridad frente a un nico punto de fallo del archivo de control, se recomienda encarecidamente multiplexar el archivo de control y almacenar cada copia en un disco fsico diferente. Si se pierde un archivo de control, se puede utilizar una copia multiplexada de dicho archivo para reiniciar la instancia sin necesidad de recuperar la base de datos. Los archivos de control se pueden multiplexar un mximo de ocho veces de la siguiente forma: Creando varios archivos de control al crear la base de datos incluyendo los nombres y la ruta de acceso completa del archivo de control en el archivo de parmetros de inicializacin: CONTROL_FILES=$HOME/ORADATA/u01/ctrl01.ctl, $HOME/ORADATA/u02/ctrl02.ctl Agregando un archivo de control una vez creada la base de datos Copia de Seguridad de los Archivos de Control Dado que el archivo de control registra la estructura fsica de la base de datos, debera realizar una copia de seguridad del archivo de control inmediatamente despus de efectuar cambios en la estructura fsica de la base de datos. La realizacin de copias de seguridad y la recuperacin del archivo de control se explican en el curso Administracin de la Base de Datos Oracle9i: Conceptos Bsicos II.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-7

Multiplexacin del Archivo de Control al Utilizar SPFILE


1. Modifique el archivo SPFILE:
ALTER SYSTEM SET control_files = '$HOME/ORADATA/u01/ctrl01.ctl', '$HOME/ORADATA/u02/ctrl02.ctl' SCOPE=SPFILE;

2. Cierre la base de datos:


shutdown immediate

3. Cree archivos de control adicionales:


cp $HOME/ORADATA/u01/ctrl01.ctl $HOME/ORADATA/u02/ctrl02.ctl

4. Inicie la base de datos:


startup
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Multiplexacin del Archivo de Control al Utilizar SPFILE Utilice los siguientes pasos para multiplexar archivos de control al utilizar un archivo SPFILE. 1. Modifique el archivo SPFILE: Con el comando ALTER SYSTEM SET, modifique SPFILE, de modo que incluya una lista de todos los archivos de control que se van a utilizar: archivo de control principal y copias multiplexadas. 2. Cierre la base de datos: Cierre la base de datos para crear archivos de control adicionales en el sistema operativo. 3. Cree archivos de control adicionales: Con el comando de copia del sistema operativo, cree los archivos de control adicionales que sean necesarios y compruebe que los archivos se han creado en los directorios adecuados. 4. Inicie la base de datos: Cuando se inicia la base de datos, se lee el archivo SPFILE y Oracle Server mantiene todos los archivos de control enumerados en el parmetro CONTROL_FILES.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-8

Multiplexacin del Archivo de Control al Utilizar PFILE


1. Cierre la base de datos:
shutdown immediate

2. Cree archivos de control adicionales:


cp $HOME/ORADATA/u01/ctrl01.ctl $HOME/ORADATA/u02/ctrl02.ctl

3. Agregue nombres de archivos de control a PFILE:


CONTROL_FILES = $HOME/ORADATA/u01/ctrl01.ctl, $HOME/ORADATA/u02/ctrl02.ctl)

4. Inicie la base de datos:


startup

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Multiplexacin del Archivo de Control al Utilizar PFILE Utilice los siguientes pasos para multiplexar archivos de control al utilizar un archivo PFILE. 1. Cierre la base de datos: Cierre la base de datos para crear archivos de control adicionales en el sistema operativo. 2. Cree archivos de control adicionales: Con el comando de copia del sistema operativo, cree los archivos de control adicionales que sean necesarios y compruebe que los archivos se han creado en los directorios adecuados. 3. Agregue nombres de archivos de control a PFILE: Modifique el archivo PFILE de modo que incluya una lista de todos los archivos de control. 4. Inicie la base de datos: Cuando se inicia la base de datos, se lee el archivo PFILE y Oracle Server mantiene todos los archivos de control enumerados en el parmetro CONTROL_FILES.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-9

Gestin de Archivos de Control con OMF


OMF se crea si no se especifica el parmetro CONTROL_FILES. Las ubicaciones se definen por medio de DB_CREATE_ONLINE_LOG_DEST_n. Los nombres se muestran y generan de manera nica en alertSID.log.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de Archivos de Control con OMF Los archivos de control se crean como OMF automticamente durante la creacin de la base de datos si se no se especifica el parmetro CONTROL_FILES en el archivo de parmetros de inicializacin. Si se utiliza un archivo init.ora, el parmetro CONTROL_FILES se debe definir con los nombres generados de OMF, que se pueden encontrar realizando una seleccin desde V$CONTROLFILE o alertSID.log. Si se utiliza un archivo SPFILE, el parmetro CONTROL_FILES se define y se guarda automticamente cuando se crea la base de datos. El parmetro DB_CREATE_ONLINE_LOG_DEST_n determina las ubicaciones de los archivos de control. Si este parmetro no se ha definido, el parmetro DB_CREATE_FILE_DEST definir la ubicacin de los archivos de control. Si no se ha definido ninguno de estos parmetros, los archivos de control no sern de OMF. Si los archivos de control no son de OMF, se debe definir el parmetro CONTROL_FILES en el archivo de parmetros de inicializacin o, de lo contrario, se generar un error. Los nombres de archivos de control se generan de forma nica (ora_cmr7t30p.ctl) y aparecen en el archivo alertSID.log cuando los archivos se han creado.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-10

Obtencin de Informacin del Archivo de Control


Para recuperar informacin acerca del estado y las ubicaciones del archivo de control, puede consultar las siguientes vistas. V$CONTROLFILE: Enumera el nombre y el estado de todos los archivos de control asociados a la instancia V$PARAMETER: Enumera el estado y la ubicacin de todos los parmetros V$CONTROLFILE_RECORD_SECTION: Proporciona informacin acerca de las secciones de registros del archivo de control SHOW PARAMETER CONTROL_FILES: Enumera el nombre, el estado y la ubicacin de los archivos de control

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Obtencin de Informacin del Archivo de Control Para obtener la ubicacin y los nombres de los archivos de control, consulte la vista V$CONTROLFILE. SQL> SELECT name FROM V$CONTROLFILE; NAME -----------------------------------/u01/home/db03/ORADATA/u01/ctrl01.ctl /u01/home/db03/ORADATA/u01/ctrl01.ctl 2 rows selected. Tambin puede consultar la vista V$PARAMETER. SQL> SELECT name, value from V$PARAMETER WHERE name = 'control_files'; NAME Value ------------------------------------------------control_files /u01/home/db03/ORADATA/u01/ctrl01.ctl
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-11

Obtencin de Informacin del Archivo de Control (continuacin) Para obtener informacin acerca de las diferentes secciones de los archivos de control, consulte la vista V$CONTROLFILE_RECORD_SECTION. SQL> SELECT type, record_size, records_total, records_used 2 FROM v$controlfile_record_section 3 WHERE TYPE='DATAFILE'; TYPE RECORD_SIZE RECORDS_TOTAL RECORDS_USED ------------------ ----------- ------------- -----------DATAFILE 180 40 10 1 row selected. La columna RECORDS_TOTAL especifica el nmero de registros asignados a una seccin especial. El comando SHOW PARAMETER tambin se puede utilizar para buscar la ubicacin de los archivos de control. SQL> SHOW PARAMETER control_files; NAME TYPE VALUE ------------- ----------- -----------------------------control_files string $HOME/ORADATA/u01/ctrl01.ctl, $HOME/ORADATA/u02/ctrl02.ctl La informacin de varias vistas dinmicas de rendimiento se obtiene del archivo de control. A continuacin se incluye una lista de ejemplos: V$BACKUP V$DATAFILE V$TEMPFILE V$TABLESPACE V$ARCHIVE V$LOG V$LOGFILE V$LOGHIST V$ARCHIVED_LOG V$DATABASE

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-12

Obtencin de Informacin del Archivo de Control (continuacin) Uso de Oracle Enterprise Manager para Ver Informacin Acerca de los Archivos de Control Desde la Consola de OEM: 1. Navegue a Storage > Controlfile. 2. Seleccione la pgina del separador General para ver la informacin acerca de los archivos de control.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-13

Resumen
En esta leccin, ha aprendido a: Multiplexar el archivo de control al utilizar un archivo SPFILE Multiplexar el archivo de control al utilizar init.ora Gestionar los archivos de control con OMF

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-14

Prctica 6: Visin General


Esta prctica abarca los siguientes temas: Inicio de la base de datos sin un archivo de control Multiplexacin de un archivo de control existente

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Prctica 6: Visin General Nota: Esta prctica se puede realizar con SQL*Plus o con Oracle Enterprise Manager y SQL*Plus Worksheet.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-15

Prctica 6: Gestin del Archivo de Control 1 Dnde est ubicado el archivo de control y cul es su nombre? Indicacin: Consulte la vista dinmica de rendimiento V$CONTROLFILE. Nota: Tambin puede utilizar V$PARAMETER o ejecutar el comando SHOW PARAMETER para ver el nombre y la ubicacin del archivo de control. 2a Intente iniciar la base de datos sin archivos de control. Para simularlo, cambie el nombre del archivo de control en el archivo de parmetros o cambie el nombre del archivo de control. Qu sucede? Indicaciones - Conctese como usuario SYS. - Cierre la base de datos con la opcin IMMEDIATE. - En la lnea de comandos del sistema operativo, copie el archivo de control .ctl con la extensin .bak. - Elimine el archivo de control .ctl. - Inicie la base de datos. 2b Para resolver el error ORA-00205: - Cierre la base de datos. - Cambie el nombre del archivo de control que ha copiado por el adecuado. - Inicie la base de datos. 3a Multiplexe el archivo de control existente utilizando el directorio u02 y asigne al nuevo archivo de control el nombre ctrl02.ctl. Asegrese de que Oracle Server puede escribir en el nuevo archivo de control. Por ejemplo, en UNIX, utilice el comando chmod 660. Indicaciones - Antes de cerrar la base de datos, modifique el archivo SPFILE (SCOPE=SPILE) para agregar el nuevo archivo de control al archivo de inicializacin. - Cierre la base de datos y copie el archivo de control existente a un nuevo archivo con el nombre ctrl02.ctl en el directorio u02. Utilice el comando chmod 660 en UNIX. Nota: Los permisos del archivo no se suelen cambiar, no obstante, aqu se hace para la finalidad de la clase. - Inicie la base de datos. b Confirme que el archivo de control se ha multiplexado y ya se est utilizando. Indicacin: Consulte la vista dinmica de rendimiento V$CONTROLFILE o V$PARAMETERo utilice el comandoSHOW PARAMETER para confirmar que se estn utilizando los dos archivos de control. 4 Cul es el tamao inicial de la seccin del archivo de datos de su archivo de control? Indicacin: Consulte la vista dinmica de rendimiento V$CONTROLFILE_RECORD_SECTION.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 6-16

Mantenimiento de Archivos Redo Log Online

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Explicar el objetivo de los archivos redo log online Definir el esquema de la estructura de los archivos redo log online Controlar los cambios de log y los puntos de control Multiplexar y mantener archivos redo log online Gestionar archivos redo log online con OMF Obtener informacin de los archivos redo log online

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-2

Uso de los Archivos Redo Log Online


Los archivos redo log online tienen las siguientes caractersticas: Registran todos los cambios realizados en los datos Proporcionan un mecanismo de recuperacin Se pueden organizar en grupos Son necesarios al menos dos grupos
Archivos redo log

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Uso de los Archivos Redo Log Online Los archivos redo log online proporcionan el medio para rehacer transacciones en caso de que se produzca un fallo de la base de datos. Cada transaccin se escribe de forma sncrona en el buffer redo log y, a continuacin, se vaca en los archivos redo log online con el fin de proporcionar un mecanismo de recuperacin en caso de fallo de los medios fsicos. (Con la excepcin de las inserciones de carga directa en los objetos con la clusula NOLOGGING activada.) Esto incluye las transacciones que no se han validado todava, la informacin de segmentos de deshacer y las sentencias de gestin de objetos y esquemas. Los archivos redo log online se utilizan en situaciones como, por ejemplo, en el fallo de una instancia para recuperar los datos validados que no se hayan escrito en los archivos de datos. Los archivos redo log online slo se utilizan para la recuperacin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-3

Estructura de los Archivos Redo Log Online

Grupo 1

Grupo 2

Grupo 3 Disco 1

Miembro

Miembro

Miembro

Miembro

Miembro

Miembro

Disco 2

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Estructura de los Archivos Redo Log Online El administrador de la base de datos puede configurar la base de datos Oracle para que mantenga copias de los archivos redo log online con el fin de evitar la prdida de informacin de la base de datos debido a un solo punto de fallo. Grupos de Archivos Redo Log Online Se llama grupo de archivos redo log online a un juego de copias idnticas de archivos redo log online. El proceso en segundo plano LGWR escribe simultneamente la misma informacin en todos los archivos redo log online de un grupo. Oracle Server necesita un mnimo de dos grupos de archivos redo log online para que una base de datos funcione correctamente. Miembros de Archivos Redo Log Online Se denomina miembro a cada archivo redo log online de un grupo. Cada miembro de un grupo tiene nmeros de secuencia de log idnticos y el mismo tamao. El nmero de secuencia de log se asigna cada vez que Oracle Server escribe en un grupo de logs con el fin de identificar cada archivo redo log online de forma nica. El nmero de secuencia de log actual se almacena en el archivo de control y en la cabecera de todos los archivos de datos.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-4

Estructura de los Archivos Redo Log Online (continuacin) Creacin de Archivos Redo Log Online Iniciales El juego inicial de miembros y grupos de archivos redo log online se crea durante la creacin de la base de datos. Los siguientes parmetros limitan el nmero de archivos redo log online: El parmetro MAXLOGFILES en el comando CREATE DATABASE especifica el nmero mximo absoluto de grupos de archivos redo log online. El valor por defecto y el valor mximo de MAXLOGFILES depende del sistema operativo. El parmetro MAXLOGMEMBERS, que se utiliza en el comando CREATE DATABASE, determina el nmero mximo de miembros por grupo. El valor por defecto y el valor mximo de MAXLOGMEMBERS depende del sistema operativo.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-5

Funcionamiento de los Archivos Redo Log Online


Los archivos redo log online se utilizan de manera cclica. Si un archivo redo log online se llena, LGWR pasar al siguiente grupo de log:
Se llama cambio de log Tambin se produce una operacin de punto de control La informacin se escribe en el archivo de control

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Funcionamiento de los Archivos Redo Log Online Oracle Server registra de forma secuencial en el buffer redo log todos los cambios realizados en la base de datos. Los registros de redo se escriben desde el buffer redo log en el grupo de archivos redo log online actual por medio del proceso LGWR. LGWR realiza el proceso de escritura en las siguientes circunstancias: Cuando se valida una transaccin Cuando el buffer redo log se encuentra a un tercio de su capacidad Cuando hay ms de un megabyte de registros cambiados en el buffer redo log Antes de que DBWn escriba los bloques modificados de la cach de buffers de base de datos en los archivos de datos Los archivos redo log online se utilizan de manera cclica. Cada grupo de archivos redo log online se identifica por un nmero de secuencia de log que se sobrescribe cada vez que se vuelve a utilizar el log. Cambios de Log LGWR escribe en los archivos redo log online de forma secuencial. Cuando se ha llenado el grupo de archivos redo log online actual, LGWR empieza a escribir en el siguiente grupo. Esto se denomina un cambio de log. Cuando se llena el ltimo archivo redo log online disponible, LGWR vuelve al primer grupo de archivos redo log online y comienza a escribir de nuevo.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-6

Funcionamiento de los Archivos Redo Log Online (continuacin) Puntos de Control Durante un punto de control: DBWn escribe en los archivos de datos una serie de buffers de base de datos sucios, que estn cubiertos por el log en el que se est realizando el punto de control. El proceso en segundo plano de punto de control CKPT actualiza el archivo de control para reflejar que ha completado un punto de control correctamente. Si un cambio de log ha sido la causa del punto de control, CKPT tambin actualiza las cabeceras de los archivos de datos. Se pueden producir puntos de control para todos los archivos de datos de la base de datos, o bien slo para determinados archivos de datos. Un punto de control se produce, por ejemplo, en las siguientes situaciones: En cada cambio de log Cuando se ha cerrado una instancia con la opcin normal, transaccional o inmediata Cuando el parmetro de inicializacin FAST_START_MTTR_TARGET lo fuerza. Cuando lo solicita manualmente el administrador de la base de datos Cuando el comando ALTER TABLESPACE [OFFLINE NORMAL|READ ONLY|BEGIN BACKUP] produce el punto de control en archivos de datos concretos La informacin acerca de cada punto de control se registra en el archivo alert_SID.log si el parmetro de inicializacin LOG_CHECKPOINTS_TO_ALERT se define como TRUE. El valor por defecto de FALSE de este parmetro no registra puntos de control.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-7

Forzado de Cambios de Log y de Puntos de Control


Forzado de un cambio de log:
ALTER SYSTEM SWITCH LOGFILE;

Los puntos de control se pueden forzar:


Definiendo el parmetro FAST_START_MTTR_TARGET FAST_START_MTTR_TARGET = 600 Con el comando ALTER SYSTEM CHECKPOINT ALTER SYSTEM CHECKPOINT;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Forzado de Cambios de Log y de Puntos de Control Los cambios de log y los puntos de control se realizan automticamente en ciertos puntos del funcionamiento de la base de datos, tal y como se ha explicado anteriormente. No obstante, un DBA puede forzar un cambio de log o un punto de control. Forzado de Puntos de Control El parmetro FAST_START_MTTR_TARGET sustituye a los parmetros anticuados: FAST_START_IO_TARGET LOG_CHECKPOINT_TIMEOUT Estos parmetros anticuados no se deben utilizar si se usa el parmetro FAST_START_MTTR_TARGET. En el ejemplo anterior, el parmetro FAST_START_MTTR_TARGET se ha definido de forma que la recuperacin de la instancia no tarde ms de 600 segundos. La base de datos ajustar los dems parmetros de acuerdo con este objetivo.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-8

Adicin de Grupos de Archivos Redo Log Online

ALTER DATABASE ADD LOGFILE GROUP 3 ('$HOME/ORADATA/u01/log3a.rdo', '$HOME/ORADATA/u02/log3b.rdo') SIZE 1M;

log1a.rdo log1b.rdo Grupo 1

log2a.rdo log2b.rdo Grupo 2

log3a.rdo log3b.rdo Grupo 3

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Adicin de Grupos de Archivos Redo Log Online En algunos casos, quizs sea necesario crear grupos de archivos log adicionales. Por ejemplo, los problemas de disponibilidad se pueden solucionar agregando grupos. Para crear un nuevo grupo de archivos redo log online, utilice el siguiente comando SQL: ALTER DATABASE [base_de_datos] ADD LOGFILE [GROUP entero] especificacin_de_archivo [, [GROUP entero] especificacin_de_archivo]...] Debe especificar el nombre y la ubicacin de los miembros con la especificacin de archivo. Se puede seleccionar el valor del parmetro GROUP para cada grupo de archivos redo log online. Si omite este parmetro, Oracle Server generar su valor automticamente.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-9

Adicin de Miembros de Archivos Redo Log Online


ALTER DATABASE ADD LOGFILE MEMBER '$HOME/ORADATA/u04/log1c.rdo' TO GROUP 1, '$HOME/ORADATA/u04/log2c.rdo' TO GROUP 2, '$HOME/ORADATA/u04/log3c.rdo' TO GROUP 3;

log1a.rdo log1b.rdo log1c.rdo Grupo 1

log2a.rdo log2b.rdo log2c.rdo Grupo 2

log3a.rdo log3b.rdo log3c.rdo Grupo 3

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Adicin de Miembros de Archivos Redo Log Online Se pueden agregar nuevos miembros a grupos de archivos redo log online existentes con el siguiente comando ALTER DATABASE ADD LOGFILE MEMBER: ALTER DATABASE [base_de_datos] ADD LOGFILE MEMBER [ 'nombrearchivo' [REUSE] [, 'nombrearchivo' [REUSE]]... TO {GROUP entero |('nombrearchivo'[, 'nombrearchivo']...) } ]... Utilice el nombre completo especificado de los miembros de archivos log; de lo contrario, los archivos se crearn en un directorio por defecto del servidor de bases de datos. Si el archivo ya existe, debe tener el mismo tamao y deber especificar la opcin REUSE. Se puede identificar el grupo de destino especificando uno o ms miembros del grupo, o bien especificando el nmero de grupo.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-10

Adicin de Miembros de Archivos Redo Log Online (continuacin) Uso de Oracle Enterprise Manager para Agregar Miembros y Grupos de Archivos Redo Log Online Desde la Consola de OEM: 1. Navegue a Storage. 2. Haga clic en la carpeta Redo Log Groups. 3. Seleccione Create en el men derecho del mouse. 4. Seleccione la pgina del separador General. 5. Complete la informacin para crear los miembros y el grupo de archivos redo log online. 6. Haga clic en Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-11

Borrado de Grupos de Archivos Redo Log Online

ALTER DATABASE DROP LOGFILE GROUP 3;

log1a.rdo Grupo 1

log2a.rdo Grupo 2

log3a.rdo Grupo 3

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Borrado de Grupos de Archivos Redo Log Online Para aumentar o disminuir el tamao de los grupos de archivos redo log online, agregue nuevos grupos (con el nuevo tamao) y, a continuacin, borre los antiguos. Con el siguiente comando ALTER DATABASE DROP LOGFILE se puede borrar un grupo redo log online entero: ALTER DATABASE [base_de_datos] DROP LOGFILE {GROUP entero|('nombrearchivo'[, 'nombrearchivo']...)} [,{GROUP entero|('nombrearchivo'[, 'nombrearchivo']...)}]... Restricciones Una instancia necesita, como mnimo, dos grupos de archivos redo log online. No se puede borrar un grupo activo o actual. Cuando se borra un grupo de archivos redo log online, no se suprimen los archivos del sistema operativo.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-12

Borrado de los Miembros de Archivos Redo Log Online

ALTER DATABASE DROP LOGFILE MEMBER '$HOME/ORADATA/u04/log3c.rdo';

log1a.rdo log1b.rdo log1c.rdo Grupo 1

log1a.rdo log1b.rdo log2c.rdo Grupo 2

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Borrado de los Miembros de Archivos Redo Log Online Es posible que desee borrar un archivo redo log online porque no sea vlido. Utilice el siguiente comando ALTER DATABASE DROP LOGFILE MEMBER si desea borrar uno o ms miembros de archivos redo log online determinados: ALTER DATABASE [base_de_datos] DROP LOGFILE MEMBER 'nombrearchivo'[, 'nombrearchivo']... Restricciones Si el miembro que desea borrar es el ltimo miembro vlido del grupo, no podr borrarlo. Si el grupo es el actual, deber forzar un cambio de archivo log antes de poder borrar el miembro. Si la base de datos se ejecuta en modo ARCHIVELOG y no se ha archivado el grupo de archivos log al que pertenece el miembro, no se podr borrar ste. Cuando se borra un miembro de archivos redo log online, no se suprimen los archivos del sistema operativo si no utiliza la funcin OMF.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-13

Borrado de Miembros y Grupos de Archivos Redo Log Online Uso de Oracle Enterprise Manager para Borrar Miembros y Grupos de Archivos Redo Log Online Desde la Consola de OEM: 1. Navegue a Storage. Para eliminar un grupo: 1. Ample la carpeta Redo Log Groups y compruebe el estado del archivo redo log online. Nota: No se puede borrar un grupo activo o actual. Se necesitan dos grupos de archivos redo log online. 2. Seleccione el grupo de archivos redo log online que desee eliminar. 3. Seleccione Remove en el men derecho del mouse. 4. Confirme la eliminacin. Para borrar un miembro: 1. Ample la carpeta Redo Log Groups y navegue hasta el grupo que contiene el miembro que desea borrar. 2. Seleccione la pgina del separador General. 3. Resalte el miembro 4. Seleccione Remove en el men derecho del mouse. 5. Confirme la eliminacin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-14

Reubicacin o Cambio de Nombre de los Archivos Redo Log Online


Los archivos redo log online se pueden reubicar o cambiar de nombre de las dos formas siguientes: Con el comando ALTER DATABASE RENAME FILE
Cierre la base de datos. Copie los archivos redo log online en la nueva ubicacin. Coloque la base de datos en el modo MOUNT. Ejecute el comando. Abra la base de datos para que funcione normalmente. ALTER DATABASE RENAME FILE '$HOME/ORADATA/u01/log2a.rdo' TO '$HOME/ORADATA/u02/log1c.rdo';

Agregue nuevos miembros o borre miembros antiguos.


Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Reubicacin o Cambio de Nombre de los Archivos Redo Log Online Las ubicaciones de los archivos redo log online se pueden modificar cambiando el nombre de dichos archivos. Antes de cambiar el nombre de los archivos redo log online, compruebe que existe el nuevo archivo redo log online. Oracle Server slo cambia los punteros en los archivos de control, pero no cambia el nombre ni crea fsicamente ningn archivo del sistema operativo. Pasos para la Reubicacin o el Cambio de Nombre de los Miembros Redo Log Online 1. Cierre la base de datos. SQL > SHUTDOWN 2. Copie los archivos redo log online en la nueva ubicacin. 3. Inicie la base de datos y mntela, pero no la abra. SQL > CONNECT / as SYSDBA SQL > STARTUP MOUNT 4. Cambie de nombre a los miembros redo log online utilizando el comando ALTER DATABASE RENAME FILE. 5. Abra la base de datos para que funcione normalmente. SQL> ALTER DATABASE OPEN;

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-15

Reubicacin o Cambio de Nombre de los Archivos Redo Log Online (continuacin) Uso de Oracle Enterprise para Reubicar o Cambiar el Nombre a Grupos y Miembros de Archivos Redo Log Online Desde la Consola de OEM: 1. Navegue a Storage. 2. Ample Redo Log Groups. 3. Seleccione un grupo de archivos redo log online. 4. Modifique el valor de File Name o File Directory del miembro de archivos redo log para cambiar el nombre o la ubicacin de los miembros. 5. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-16

Limpieza de Archivos Redo Log Online


Para reinicializar un archivo redo log online, se puede utilizar el comando ALTER DATABASE CLEAR LOGFILE.
ALTER DATABASE CLEAR LOGFILE GROUP 2;

Utilice la palabra clave UNARCHIVED para evitar que el archivo redo log online corrupto se archive.
ALTER DATABASE CLEAR UNARCHIVED LOGFILE GROUP 2;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Limpieza de Archivos Redo Log Online Los archivos redo log online se pueden corromper mientras la base de datos est abierta y, al final, pueden detener la actividad de la base de datos debido a que el proceso de archivado no puede continuar. En esa situacin, se puede utilizar el comando ALTER DATABASE CLEAR LOGFILE para reinicializar el archivo redo log online sin cerrar la base de datos. Este comando puede resolver dos situaciones en las que no es posible realizar una limpieza de los archivos redo log online: Si slo hay dos grupos de logs. El archivo redo log online corrupto pertenece al grupo actual. Si el archivo redo log online corrupto no se ha archivado, utilice la palabra clave UNARCHIVED en el comando para limpiar los archivos redo log online corruptos y evitar que se archiven. Los archivos redo log online limpios estn disponibles para su uso aunque no se hayan archivado. Si limpia un archivo log que es necesario para realizar la recuperacin de una copia de seguridad, ya no podr realizar dicha recuperacin. Oracle escribe un mensaje en el log de alertas que informa de las copias de seguridad que no se pueden recuperar.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-17

Configuracin de los Archivos Redo Log Online

?
Grupo 1 Miembro Grupo 2 Miembro Grupo 3 Miembro Miembro Miembro

Disco 1

Disco 2

Disco 3

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Configuracin de los Archivos Redo Log Online Para determinar el nmero adecuado de archivos redo log online para una instancia de la base de datos, deber probar diferentes configuraciones. En algunas ocasiones, una instancia de la base de datos podra necesitar slo dos grupos. En otras situaciones, puede necesitar grupos adicionales para garantizar que los grupos siempre se encuentren disponibles para LGWR. Por ejemplo, si los mensajes del archivo de rastreo LGWR o del archivo de alertas indican que LGWR debe esperar con frecuencia a un grupo porque no se ha completado un punto de control o no se ha archivado un grupo, debera agregar grupos. Aunque Oracle Server permite que los grupos multiplexados contengan diferentes nmeros de miembros, intente crear una configuracin simtrica. La configuracin asimtrica se debera utilizar slo temporalmente en situaciones poco corrientes, como en el caso de un fallo del disco. Ubicacin de los Archivos Redo Log Online Cuando multiplexe archivos redo log online, coloque los miembros de un grupo en discos diferentes. De esta manera, aunque un miembro no est disponible pero el resto s, la instancia no se cerrar. Separe los archivos de archive log y los archivos redo log online en discos diferentes para reducir la contencin entre los procesos en segundo plano ARCn y LGWR.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-18

Configuracin de los Archivos Redo Log Online (continuacin) Los archivos de datos y los archivos redo log online deberan estar en discos diferentes para reducir la contencin de LGWR y DBWn y el riesgo de prdida de los archivos de datos y los archivos redo log online en caso de que se produzca un fallo del medio fsico. Especificacin del Tamao de los Archivos Redo Log Online El tamao mnimo de un archivo redo log online es de 50 KB y el tamao mximo depende del sistema operativo. Los miembros de grupos diferentes pueden tener tamaos distintos; sin embargo, no hay ninguna ventaja derivada de tener grupos de diferentes tamaos. Los grupos de diferentes tamaos slo deberan ser necesarios de manera temporal si desea cambiar el tamao de los miembros de los grupos de archivos redo log online. En este caso, deber crear nuevos grupos de archivos redo log online de tamaos diferentes y, a continuacin, eliminar los grupos antiguos. Las siguientes situaciones pueden influir en la configuracin de los archivos redo log online: Nmero de cambios de log y puntos de control Nmero y cantidad de registros de redo Cantidad de espacio en el medio de almacenamiento; por ejemplo, en una cinta si est activado el archivado

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-19

Gestin de Archivos Redo Log Online con OMF


Defina el parmetro DB_CREATE_ONLINE_LOG_DEST_n:
DB_CREATE_ONLINE_LOG_DEST_1 DB_CREATE_ONLINE_LOG_DEST_2

Se puede agregar un grupo sin especificacin de archivo:


ALTER DATABASE ADD LOGFILE;

Borrado de un grupo:
ALTER DATABASE DROP LOGFILE GROUP 3;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de Archivos Redo Log Online con OMF Defina el parmetro DB_CREATE_ONLINE_LOG_DEST_n: Para crear los archivos redo log online que va a gestionar OMF, debe definir el parmetro DB_CREATE_ONLINE_LOG_DEST_n. Defina este parmetro para cada copia multiplexada identificada por el valor n. En el ejemplo anterior, se han creado dos grupos con dos miembros cada uno. Los nombres se generan automticamente (por ejemplo, ora_1_wo94n2xi.log) y se muestran en el log alertSID.log. El tamao por defecto es 100 MB. Para crear un nuevo grupo de archivos redo log online, el DBA utiliza el comando ALTER DATABASE ADD LOGFILE. Este comando se ha modificado de modo que la especificacin del archivo no sea necesaria. En el ejemplo de la transparencia, se agrega un archivo log con dos miembros: uno en la ubicacin que define DB_CREATE_ONLINE_LOG_DEST_1 y otro en la que define DB_CREATE_ONLINE_LOG_DEST_2. Los nombres de archivo nicos de los miembros de archivos log se generan automticamente y se muestran en alertSID.log. El tamao por defecto es 100 MB. Borrado de un Grupo En el ejemplo anterior se borra el Grupo 3 de archivos log y sus archivos de sistema operativo asociados a cada miembro de archivos log OMF del Grupo 3. Archivos Redo Log Archivados y OMF Los archivos redo log archivados no pueden ser OMF.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-20

Obtencin de Informacin de Miembros y Grupos


Se puede obtener informacin acerca de un grupo y sus miembros consultando las siguientes vistas: V$LOG V$LOGFILE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Obtencin de Informacin de Miembros y Grupos La Vista V$LOG La siguiente consulta devuelve informacin acerca del archivo redo log online del archivo de control: SQL> SELECT group#, sequence#, bytes, members, status 2 FROM v$log; GROUP# SEQUENCE# BYTES MEMBERS STATUS --------- ----------------- --------- --------1 688 1048576 1 CURRENT 2 689 1048576 1 INACTIVE 2 rows selected. Los siguientes elementos son los valores ms habituales de la columna STATUS: UNUSED: Indica que nunca se ha escrito en el grupo de archivos redo log online. ste es el estado de un archivo redo log online que se acaba de agregar. CURRENT: Indica el grupo de archivos redo log online actual. Implica que el grupo de archivos redo log online est activo.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-21

Obtencin de Informacin de Miembros y Grupos (continuacin) ACTIVE: Indica que el grupo de archivos redo log online est activo pero no es el actual. Es necesario para la recuperacin en caso de fallo. Se puede utilizar para recuperar bloques. Puede que est o no archivado. CLEARING: Indica que el log se vuelve a crear como un log vaco despus de un comando ALTER DATABASE CLEAR LOGFILE. Una vez limpiado el log, el estado cambia a UNUSED. CLEARING_CURRENT: Indica que se est limpiando un thread cerrado del archivo log actual. El log puede permanecer en este estado en caso de que se produzca un fallo en el cambio como, por ejemplo, un error de E/S al escribir la nueva cabecera del log. INACTIVE: Indica que ya no es necesario el grupo de archivos redo log online para la recuperacin de la instancia. Puede que est o no archivado. La Vista V$LOGFILE Para obtener los nombres de todos los miembros de un grupo, consulte la vista V$LOGFILE. SQL> SELECT member FROM V$LOGFILE; MEMBER ------------------------------------/u01/home/db03/ORADATA/u03/log02a.rdo /u01/home/db03/ORADATA/u03/log01a.rdo El valor de la columna STATUS puede ser uno de los siguientes: INVALID: Indica que el archivo es inaccesible. STALE: Indica que el contenido del archivo no est completo. DELETED: Indica que el archivo ya no se utiliza. BLANK: Indica que el archivo se est utilizando.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-22

Archivos Redo Log Archivados


Los archivos redo log online llenos se pueden archivar. La ejecucin de la base de datos en modo ARCHIVELOG y el proceso de archivado de archivos redo log online tiene dos ventajas:
Recuperacin: La copia de seguridad de la base de datos y los archivos redo log archivados y online garantizan la recuperacin de todas las transacciones validadas. Copia de seguridad: Se puede realizar mientras la base de datos est abierta.

Por defecto, la base de datos se crea en modo NOARCHIVELOG.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Archivos Redo Log Archivados Una de las decisiones ms importantes que deber tomar un administrador de la base de datos es si configura la base de datos para que funcione en modo ARCHIVELOG o en modo NOARCHIVELOG. Modo NOARCHIVELOG En el modo NOARCHIVELOG, los archivos redo log online se sobrescriben cada vez que un archivo redo log online se llena y se producen cambios de log. LGWR no sobrescribe un grupo de archivos redo log online hasta que se ha terminado el punto de control para ese grupo. Modo ARCHIVELOG Si la base de datos se configura para que se ejecute en modo ARCHIVELOG, hay que archivar los grupos inactivos de archivos redo log online llenos. Dado que todos los cambios que se realicen en la base de datos se registran en los archivos redo log online, el administrador de la base de datos puede utilizar la copia de seguridad fsica y los archivos redo log online archivados para recuperar la base de datos sin perder ninguno de los datos validados. Existen dos formas de archivar los archivos redo log online: Manualmente Automticamente (mtodo recomendado)
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-23

Archivos Redo Log Archivados (continuacin) Modo ARCHIVELOG (continuacin) El parmetro de inicializacin LOG_ARCHIVE_START indica si el proceso de archivado debera ser automtico o manual cuando se inicia la instancia. TRUE: TRUE indica que el proceso de archivado es automtico. ARCn inicia el proceso de archivado del grupo de log lleno en cada cambio de log. FALSE: El valor por defecto, FALSE, indica que el DBA archiva los archivos redo log online llenos manualmente. El DBA deber ejecutar manualmente un comando cada vez que quiera archivar un archivo redo log online. Todos o algunos de los archivos redo log online especficos se pueden archivar manualmente.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-24

Archivos Redo Log Archivados


El proceso ARCn realiza el archivado automticamente El archivado se realiza manualmente mediante sentencias SQL Si el archivado se realiza correctamente:
Se registra una entrada en el archivo de control Registros: Nombre de archive log, nmero de secuencia de log y SCN (Nmero de Cambio del Sistema) inferior y superior

Los archivos redo log online llenos no se pueden reutilizar hasta que:
Haya tenido lugar un punto de control ARCn ha archivado el archivo

Se puede multiplexar Lo mantiene el DBA


Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Archivos Redo Log Archivados Se puede obtener informacin acerca de los logs archivados con la vista V$INSTANCE. SQL> SELECT archiver 2 FROM v$instance; ARCHIVE --------STOPPED 1 row selected. Nota: Los procesos de archivado se explican ms detenidamente en el curso Administracin de la Base de Datos Oracle9i: Conceptos Bsicos II.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-25

Archivos Redo Log Archivados (continuacin) Uso de Oracle Enterprise Manager para Obtener Informacin de Archivado Desde la Consola de OEM: 1. Navegue a Instance > Configuration. 2. La pgina del separador General identifica: Database and Instance InformationArchive Log Mode: Identifica el modo de funcionamiento de la base de datos All Initialization Parameters: Identifica los parmetros definidos para los procesos de archivado 3. La pgina del separador Recovery le permite definir e identificar los detalles del proceso de archivado: modo, formato del nombre de archivo y destinos de log.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-26

Resumen
En esta leccin, ha aprendido a: Explicar el uso de archivos redo log online Obtener informacin acerca de los archivos redo log online Controlar los cambios de log y los puntos de control Multiplexar y mantener archivos redo log online Gestionar archivos redo log online con OMF

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-27

Prctica 7: Visin General


Esta prctica abarca los siguientes temas: Creacin de grupos y miembros de archivos redo log online Mantenimiento de grupos y miembros de archivos redo log online Gestin de archivos redo log online con OMF

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Prctica 7: Visin General Nota: Esta prctica se puede realizar con SQL*Plus o con Oracle Enterprise Manager y SQL*Plus Worksheet.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-28

Prctica 7: Mantenimiento de Archivos Redo Log Online 1 a Indique el nmero y la ubicacin de los archivos log existentes. Indicacin: Consulte la vista dinmica de rendimiento V$LOGFILE. b Muestre el nmero de grupos y miembros de archivos redo log online que tiene la base de datos. Indicacin: Consulte la vista dinmica de rendimiento V$LOGFILE. 2 Con qu modelo de base de datos est configurada su base de datos? Est activado el archivado? Indicaciones - Consulte la vista dinmica de rendimiento V$DATABASE. - Consulte la vista dinmica de rendimiento V$INSTANCE. 3 Agregue un miembro de redo log online a cada grupo de su base de datos ubicado en u04, con las siguientes reglas de nomenclatura:
Agregue un miembro al Grupo 1: log01b.rdo Agregue un miembro al Grupo 2: log02b.rdo

Verifique el resultado. Indicaciones - Ejecute el comando ALTER DATABASE ADD LOGFILE MEMBER para agregar un miembro de archivo redo log online a cada grupo. - Consulte la vista dinmica de rendimiento V$LOGFILE para verificar el resultado. 4 Agregue un grupo de archivos redo log online con dos miembros ubicados en u03 y u04 con las siguientes reglas de nomenclatura y verifique el resultado.
Agregue el Grupo 3: log03a.rdo y log03b.rdo

Indicaciones - Ejecute el comando ALTER DATABASE ADD LOGFILE para crear un nuevo grupo. - Consulte la vista dinmica de rendimiento V$LOGFILE para ver el nombre de los nuevos miembros del nuevo grupo. - Consulte la vista dinmica de rendimiento V$LOG para ver el nmero de grupos y miembros de archivos redo log online.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-29

Prctica 7: Mantenimiento de Archivos Redo Log Online (continuacin) 5 Elimine el grupo de archivos redo log online creado en el paso 4. Indicaciones - Utilice ALTER SYSTEM SWITCH LOGFILE si los archivos log estn activos. El nmero necesario de cambios de log puede variar. Nota: Consulte la base de datos para ver qu archivo log est activo y decida cuntas veces debe ejecutar el comando ALTER SYSTEM SWITCH LOGFILE. - Ejecute el comando ALTER DATABASE DROP LOGFILE GROUP para eliminar el grupo de logs. - Consulte la vista dinmica de rendimiento V$LOG para verificar el resultado. - Elimine los archivos del sistema operativo del grupo. 6 Cambie el tamao de todos los archivos redo log online a 1024 KB. Indicaciones - Puesto que no se puede cambiar el tamao de los archivos log, agregue logs nuevos y borre los antiguos. - Ejecute el comando ALTER DATABASE ADD LOGFILE GROUP para agregar dos nuevos grupos con un tamao de 1024 KB. - Consulte la vista dinmica de rendimiento V$LOG para comprobar el grupo activo. - Ejecute el comando ALTER SYSTEM SWITCH LOGFILE para forzar los cambios de log y cambiar el estado del grupo al modo inactivo. El nmero necesario de cambios de log puede variar. Nota: Consulte la base de datos para ver qu archivo log est activo y decida cuntas veces debe ejecutar el comando ALTER SYSTEM SWITCH LOGFILE. - Ejecute el comando ALTER DATABASE DROP LOGFILE para eliminar los grupos no utilizados. - Consulte la vista dinmica de rendimiento V$LOG para verificar el resultado.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 7-30

Gestin de Tablespaces y Archivos de Datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Definir el objetivo de los tablespaces y los archivos de datos Crear tablespaces Gestionar tablespaces Crear y gestionar tablespaces con OMF (Oracle Managed Files) Obtener informacin acerca de tablespaces

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-2

Tablespaces y Archivos de Datos


Oracle almacena los datos de forma lgica en tablespaces y de forma fsica en archivos de datos. Tablespaces:
Slo pueden pertenecer a una base de datos a la vez Estn formados por uno o ms archivos de datos Se subdividen en unidades lgicas de almacenamiento

Archivos de datos:
Slo pueden pertenecer a un tablespace y a una base de datos Constituyen un repositorio para los datos de objetos de esquema
Base de datos Tablespace Archivos de datos
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tablespaces y Archivos de Datos Las bases de datos, los tablespaces y los archivos de datos estn estrechamente relacionados, aunque tienen diferencias importantes: Una base de datos Oracle est formada por una o ms unidades de almacenamiento lgicas denominadas tablespaces, que almacenan de forma conjunta todos los datos de la base de datos. Cada tablespace de una base de datos Oracle est formado por uno o ms archivos llamados archivos de datos, que son estructuras fsicas que se ajustan al sistema operativo en el que se ejecuta Oracle. Los datos de una base de datos se almacenan de forma conjunta en archivos de datos que constituyen cada tablespace de la base de datos. Por ejemplo, la base de datos Oracle ms sencilla tendra un tablespace y un archivo de datos. Otra base de datos puede tener tres tablespaces, cada uno formado por dos archivos de datos (lo que supone un total de seis archivos de datos).

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-3

Tipos de Tablespaces
Tablespace SYSTEM
Se crea con la base de datos Contiene el diccionario de datos Contiene el segmento de deshacer SYSTEM

Tablespace que no es SYSTEM


Segmentos separados Facilita la administracin de espacio Controla la cantidad de espacio asignada a un usuario

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tipos de Tablespaces El DBA crea tablespaces para un conseguir un control mayor y facilitar el mantenimiento. Oracle Server reconoce dos tipos de tablespaces: SYSTEM y todos los dems. Tablespace SYSTEM Se crea con la base de datos Es necesario en todas las bases de datos Contiene el diccionario de datos, incluyendo las unidades de programa almacenadas Contiene el segmento de deshacer SYSTEM No debe contener datos de usuario, aunque est permitido Tablespaces que No Son SYSTEM Permiten ms flexibilidad en la administracin de la base de datos Separan los segmentos de deshacer, temporales, de datos de aplicacin y de ndice de aplicacin Separan los datos por requisitos de copia de seguridad Separan los datos estticos y los dinmicos Controlan la cantidad de espacio asignada a los objetos de usuario

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-4

Creacin de Tablespaces
Los tablespaces se crean con el comando: CREATE TABLESPACE
CREATE TABLESPACE userdata DATAFILE '/u01/oradata/userdata01.dbf' SIZE 5M;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de Tablespaces Para crear un tablespace, hay que utilizar el comando CREATE TABLESPACE: CREATE TABLESPACE tablespace [DATAFILE clusula] [MINIMUM EXTENT entero[K|M]] [BLOCKSIZE entero [K]] [LOGGING|NOLOGGING] [DEFAULT clusula_almacenamiento ] [ONLINE|OFFLINE] [PERMANENT|TEMPORARY] [clusula_gestin_extensiones] [clusula_gestin_segmentos]

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-5

Creacin de Tablespaces (continuacin) Donde: Tablespace: Es el nombre del tablespace que se va a crear. DATAFILE: Especifica el archivo o archivos de datos que conforman el tablespace. MINIMUM EXTENT: Garantiza que cada tamao de extensin utilizado en el tablespace sea un mltiplo del entero. Utilice K o M para especificar este tamao en kilobytes o megabytes. BLOCKSIZE: BLOCKSIZE especifica un tamao de bloque no estndar para el tablespace. Para especificar esta clusula, debe definir el parmetro DB_CACHE_SIZE y como mnimo un juego de parmetros DB_nK_CACHE_SIZE y, adems, el entero que especifique en esta clusula se debe corresponder con la definicin de un parmetro DB_nK_CACHE_SIZE. LOGGING: Determina que, por defecto, todas las tablas, ndices y particiones dentro del tablespace escriban todos los cambios en archivos redo log online. LOGGING es el valor por defecto. NOLOGGING: Determina que, por defecto, todas las tablas, ndices y particiones dentro del tablespace NO escriban ningn cambio en archivos redo log online. NOLOGGING slo afecta a algunos comandos DML y DDL como, por ejemplo, las cargas directas. DEFAULT: DEFAULT determina los parmetros de almacenamiento por defecto de todos los objetos creados durante la creacin del tablespace. OFFLINE: Hace que el tablespace no est disponible inmediatamente despus de crearlo. PERMANENT: Especifica que el tablespace se utilice para retener objetos permanentes. TEMPORARY: Especifica que el tablespace slo se utilizar para retener objetos temporales; por ejemplo, segmentos utilizados por ordenaciones implcitas producidas por una clusula ORDER BY. No puede especificar las clusulas EXTENT MANAGEMENT LOCAL o BLOCKSIZE. clusula_gestin_extensiones: Esta clusula especifica cmo se gestionan las extensiones del tablespace. Se analiza en una seccin posterior de esta leccin. clusula_gestin_segmentos: Esta clusula slo afecta a los tablespaces permanentes gestionados localmente. Le permite especificar si Oracle debe realizar un seguimiento del espacio utilizado y el espacio libre en los segmentos del tablespace utilizando bitmaps o listas libres. clusula_archivo_de_datos:== nombre_de_archivo [SIZE entero[K|M] [REUSE] [ clusula_extensin_automtica ] nombrearchivo: Es el nombre de un archivo de datos del tablespace SIZE: Especifica el tamao del archivo. Utilice K o M para especificar este tamao en kilobytes o megabytes. REUSE: Permite que Oracle Server vuelva a utilizar un archivo existente. clusula_extensin_automtica: Activa o desactiva la extensin automtica del archivo de datos. NEXT: Especifica el tamao en bytes del siguiente incremento de espacio de disco que se asignar automticamente cuando se requieran ms extensiones.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-6

Creacin de Tablespaces (continuacin) Donde: MAXSIZE: Especifica el espacio de disco mximo permitido para la extensin automtica de un archivo de datos. UNLIMITED: Especifica el espacio de disco que se puede asignar al archivo de datos o que el archivo temporal no es limitado. Consulte tambin: Oracle9i SQL Reference y Oracle9i Concepts para obtener ms informacin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-7

Creacin de Tablespaces (continuacin) Uso de Oracle Enterprise Manager para la Creacin de un Tablespace Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Seleccione Create en el men derecho del mouse. 3. Complete la informacin de las pginas de los separadores General y Storage que sea necesaria para el tablespace. 4. Haga clic en Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-8

Gestin del Espacio de Tablespaces


Tablespaces gestionados localmente:
Las extensiones libres se gestionan en el tablespace. Se utiliza un bitmap para registrar las extensiones libres. Cada bit se corresponde con un bloque o un grupo de bloques. El valor del bit indica si est libre o en uso.

Tablespaces gestionados por un diccionario:


El diccionario de datos gestiona las extensiones libres. Se actualizan las tablas correspondientes al asignar o liberar las asignaciones de las extensiones.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin del Espacio de Tablespaces Los tablespaces asignan el espacio en extensiones. Se pueden crear tablespaces con el fin de utilizar uno de los dos mtodos siguientes de seguimiento de espacio libre y espacio utilizado: Tablespaces gestionados localmente: Las extensiones se gestionan desde el tablespace mediante bitmaps. Cada bit del bitmap se corresponde con un bloque o un grupo de bloques. Cuando una extensin se asigna o se libera para un nuevo uso, Oracle Server cambia los valores del bitmap para mostrar el nuevo estado de los bloques. La opcin inicial por defecto de Oracle9i es sta. Tablespaces gestionados por un diccionario: El diccionario de datos se encarga de gestionar las extensiones. Oracle Server actualiza las tablas correspondientes en el diccionario de datos cada vez que se asigna o se libera una extensin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-9

Tablespaces Gestionados Localmente


Reducen la contencin de las tablas del diccionario de datos No se genera informacin de deshacer cuando se produce la asignacin o la liberacin de espacio No se necesita fusin alguna
CREATE TABLESPACE userdata DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 128K;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tablespaces Gestionados Localmente La opcin LOCAL de la clusula EXTENT MANAGEMENT especifica que un tablespace se debe gestionar localmente. Por defecto, los tablespaces se gestionan localmente. clusula_gestin_extensiones: [ EXTENT MANAGEMENT [ DICTIONARY | LOCAL [ AUTOALLOCATE | UNIFORM [SIZE entero[K|M]] ] ] ] donde: DICTIONARY: Especifica que el tablespace se gestiona con tablas del diccionario. LOCAL: Especifica que el tablespace se gestiona localmente mediante bitmaps. Si especifica LOCAL, no podr especificar DEFAULT clusula_almacenamiento, MINIMUM EXTENT o TEMPORARY. AUTOALLOCATE: Especifica que el tablespace est gestionado por el sistema. Los usuarios no pueden especificar el tamao de una extensin. sta es la opcin por defecto. UNIFORM: Especifica que el tablespace se gestione con extensiones uniformes de un tamao en bytes que determina SIZE. Utilice K o M para especificar este tamao en kilobytes o megabytes. El tamao por defecto es 1 MB.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-10

Tablespaces Gestionados Localmente (continuacin) La clusula EXTENT MANAGEMENT se puede utilizar en varios comandos CREATE: En el caso de un tablespace permanente, puede especificar EXTENT MANAGEMENT LOCAL en el comando CREATE TABLESPACE. Nota: Antes de la base de datos Oracle9i Versin 2, el tablespace SYSTEM no estaba gestionado localmente. En el caso de un tablespace temporal, puede especificar EXTENT MANAGEMENT LOCAL en el comando CREATE TEMPORARY TABLESPACE. Ventajas de los Tablespaces Gestionados Localmente Los tablespaces gestionados localmente tienen las siguientes ventajas sobre los tablespaces gestionados por el diccionario: La gestin local evita operaciones de gestin de espacio recursivas. Estas operaciones se pueden producir en los tablespaces gestionados por un diccionario si el consumo o la liberacin del espacio de una extensin da como resultado otra operacin que consume o libera espacio en un segmento de deshacer o en una tabla del diccionario de datos. Dado que los tablespaces gestionados localmente no registran el espacio libre en las tablas del diccionario de datos, reducen la contencin en estas tablas. La gestin local de las extensiones realiza un seguimiento de forma automtica del espacio libre adyacente, eliminando la necesidad de fusionar las extensiones libres. El sistema puede determinar automticamente el tamao de las extensiones que se gestionan localmente. Los cambios en los bitmaps de extensin no generan informacin de deshacer, ya que no actualizan las tablas del diccionario de datos (excepto en ocasiones especiales como, por ejemplo, la informacin de cuota de tablespace).

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-11

Tablespaces Gestionados por el Diccionario


Las extensiones se gestionan en el diccionario de datos. Cada segmento almacenado en el tablespace puede tener una clusula de almacenamiento distinta. La fusin es necesaria.
CREATE TABLESPACE userdata DATAFILE '/u01/oradata/userdata01.dbf' SIZE 500M EXTENT MANAGEMENT DICTIONARY DEFAULT STORAGE (initial 1M NEXT 1M PCTINCREASE 0);

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tablespaces Gestionados por el Diccionario Los segmentos de tablespaces gestionados por un diccionario pueden tener un almacenamiento personalizado. Este almacenamiento es ms flexible que los tablespaces gestionados localmente, aunque mucho menos eficiente.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-12

Migracin de un Tablespace SYSTEM Gestionado por un Diccionario


Migre un tablespace SYSTEM gestionado por un diccionario a un tablespace gestionado localmente: DBMS_SPACE_ADMIN. TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM');

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Migracin de un Tablespace SYSTEM Gestionado por un Diccionario Utilice los siguientes pasos para convertir un tablespace SYSTEM gestionado por un diccionario en un tablespace SYSTEM gestionado localmente: 1. Realice una copia completa de su base de datos. 2. Asegrese de que la base de datos tiene un tablespace temporal por defecto que no sea SYSTEM. El tablespace temporal se crea con el comando CREATE TEMPORARY TABLESPACE. 3. Elimine cualquier segmento de deshacer (rollback) de los tablespaces gestionados por un diccionario. 4. Debera haber al menos un segmento de deshacer online en un tablespace gestionado localmente, o bien debera haber un tablespace de deshacer online. 5. Todos los tablespaces que no sean el que contiene el espacio de deshacer y el tablespace temporal por defecto se deberan colocar en el modo READ ONLY. 6. Inicie la instancia en modo restringido.
7. Migre el tablespace SYSTEM utilizando: DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL('SYSTEM');

Nota: Ningn tablespace gestionado por un diccionario que no sea SYSTEM que no se haya migrado a un tablespace gestionado localmente antes de migrar el tablespace SYSTEM se podr cambiar al modo READ WRITE. Ese tablespace deber continuar en el modo READ ONLY. Slo se pueden cambiar al modo READ WRITE los tablespaces gestionados localmente despus de realizar la migracin del tablespace SYSTEM.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-13

Tablespace de Deshacer
Se utiliza para almacenar segmentos de deshacer No puede contener ningn otro objeto Las extensiones se gestionan de forma local Slo puede utilizar las clusulas DATAFILE y EXTENT MANAGEMENT
CREATE UNDO TABLESPACE undo1 DATAFILE '/u01/oradata/undo01.dbf' SIZE 40M;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tablespace de Deshacer Los tablespaces de deshacer se utilizan con el modo de gestin de SMU automtico. Consulte la leccin Gestin de Datos de Deshacer para obtener ms informacin acerca del modo de gestin SMU automtico. CREATE UNDO TABLESPACE tablespace [DATAFILE clusula]

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-14

Tablespaces Temporales
Se utilizan para operaciones de ordenacin Pueden compartirlos mltiples usuarios No pueden contener ningn objeto permanente Se recomiendan las extensiones gestionadas localmente
CREATE TEMPORARY TABLESPACE temp TEMPFILE '/u01/oradata/temp01.dbf' SIZE 20M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 4M;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tablespaces Temporales Para gestionar el espacio para las operaciones de ordenacin de forma ms eficaz, disee tablespaces temporales exclusivamente para los segmentos de ordenacin. En un tablespace temporal no puede residir ningn objeto de esquema permanente. Los segmentos de ordenacin, o temporales, se utilizan cuando mltiples operaciones de ordenacin comparten un segmento. Los tablespace temporales mejoran el rendimiento cuando hay mltiples ordenaciones que son demasiado grandes para caber en la memoria. El segmento de ordenacin de un tablespace temporal determinado se crea en la primera operacin de ordenacin de la instancia. El segmento de ordenacin se ampla asignando extensiones hasta que su tamao sea igual, o mayor, que la demanda total de almacenamiento de todas las ordenaciones activas que se ejecutan en esa instancia. Nota: No se pueden especificar tamaos de bloques no estndar al crear tablespaces temporales.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-15

Tablespaces Temporales (continuacin) Los tablespaces temporales gestionados localmente tienen archivos de datos temporales (archivos temporales), muy parecidos a los archivos de datos normales, excepto en que: Los archivos temporales siempre se definen en el modo NOLOGGING. No se puede hacer que un archivo temporal sea de slo lectura. No se puede cambiar el nombre de un archivo temporal. No se puede crear un archivo temporal con el comando ALTER DATABASE. Se requieren archivos temporales para bases de datos de slo lectura. Con la recuperacin del medio fsico no se recuperan los archivos temporales. Para optimizar el rendimiento de una ordenacin en un tablespace temporal, defina un valor de UNIFORM SIZE que sea mltiplo del parmetro SORT_AREA_SIZE.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-16

Tablespaces Temporales (continuacin) Uso de Oracle Enterprise Manager para la Creacin de un Tablespace Temporal Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Seleccione Create en el men derecho del mouse. 3. Introduzca los detalles en la pgina del separador General. 4. Seleccione la opcin Temporary en la regin Type de la pgina del separador General. 5. Haga clic en la pgina del separador Storage e introduzca la informacin de almacenamiento. 6. Haga clic en Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-17

Tablespace Temporal por Defecto


Especifica un tablespace temporal por defecto para toda la base de datos Elimina la necesidad de utilizar el tablespace SYSTEM para almacenar datos temporales Se puede crear con los comandos:
CREATE DATABASE ALTER DATABASE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tablespace Temporal por Defecto Puede crear y definir un tablespace temporal por defecto de dos formas: Utilizando el comando CREATE TABLESPACE para crear un tablespace temporal. Utilizando el comando ALTER DATABASE Si se crea una base de datos sin un tablespace temporal por defecto, se asigna el tablespace por defecto SYSTEM a cualquier usuario creado sin una clusula TEMPORARY TABLESPACE. Asimismo, se incluye una advertencia en el archivo alert_sid.log que establece que el tablespace SYSTEM es el tablespace temporal por defecto. Al crear un tablespace temporal por defecto durante la creacin de una base de datos, se evita que se utilice el tablespace SYSTEM para el espacio temporal. Tras la creacin de la base de datos, se puede definir un tablespace temporal por defecto creando un tablespace temporal y modificando la base de datos. SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp; Una vez definido, los usuarios que no se han asignado de forma explcita a un tablespace temporal se asignan al tablespace temporal por defecto. El tablespace temporal por defecto se puede modificar en cualquier momento con el comando ALTER DATABASE DEFAULT TEMPORARY TABLESPACE. Cuando se modifica el tablespace temporal por defecto, todos los usuarios asignados a ste se vuelven a asignar al nuevo.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-18

Creacin de un Tablespace Temporal por Defecto


Durante la creacin de la base de datos:
CREATE DATABASE DBA01 LOGFILE GROUP 1 ('/$HOME/ORADATA/u01/redo01.log') SIZE 100M, GROUP 2 ('/$HOME/ORADATA/u02/redo02.log') SIZE 100M, MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXLOGHISTORY 1 MAXDATAFILES 100 MAXINSTANCES 1 DATAFILE '/$HOME/ORADATA/u01/system01.dbf' SIZE 325M UNDO TABLESPACE undotbs DATAFILE '/$HOME/ORADATA/u02/undotbs01.dbf' SIZE 200 DEFAULT TEMPORARY TABLESPACE temp TEMPFILE '/$HOME/ORADATA/u03/temp01.dbf' SIZE 4M CHARACTER SET US7ASCII

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-19

Creacin de un Tablespace Temporal por Defecto


Tras la creacin de la base de datos:
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE default_temp2;

Para buscar el tablespace temporal por defecto para la base de datos, consulte DATABASE_PROPERTIES
SELECT * FROM DATABASE_PROPERTIES;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-20

Creacin de un Tablespace Temporal por Defecto (continuacin) Uso de Oracle Enterprise Manager para la Creacin de un Tablespace Temporal por Defecto Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Seleccione Create en el men derecho del mouse. 3. Seleccione Temporary y Set as Default Temporary Tablespace en la pgina del separador General. 4. Rellene la informacin necesaria en la pgina del separador Storage. 5. Haga clic en Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-21

Restricciones del Tablespace Temporal por Defecto


Los tablespaces temporales por defecto no se pueden: Borrar hasta que est disponible el nuevo tablespace por defecto Poner offline Modificar para convertirlos en tablespaces permanentes

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Restricciones del Tablespace Temporal por Defecto Borrado de un Tablespace Temporal por Defecto El tablespace temporal por defecto no se puede borrar hasta que no haya disponible uno nuevo. Debe utilizar el comando ALTER DATABASE para cambiar el tablespace temporal por defecto por uno nuevo. A continuacin, y slo despus de que el nuevo tablespace temporal por defecto est disponible, se borrar el antiguo. Los usuarios asignados al tablespace antiguo, se vuelven a asignar automticamente al nuevo tablespace temporal por defecto. Cambio del Tipo de un Tablespace Temporal por Defecto Puesto que un tablespace temporal por defecto deber ser el tablespace SYSTEM o un tablespace temporal, no puede cambiar el tablespace temporal por defecto por un tipo permanente. Puesta en Offline de un Tablespace Temporal por Defecto Los tablespaces se ponen offline para que dicha parte de la base de datos no est disponible para otros usuarios (por ejemplo, para hacer una copia de seguridad offline, para las labores de mantenimiento o para realizar cambios en una aplicacin que utiliza el tablespace). Puesto que ninguna de estas situaciones se aplica a un tablespace temporal, no puede poner un tablespace temporal por defecto offline.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-22

Tablespaces de Slo Lectura


Utilice el siguiente comando para colocar un tablespace en modo de slo lectura:
ALTER TABLESPACE userdata READ ONLY; Genera un punto de control Los datos slo estn disponibles para operaciones de lectura Se pueden borrar objetos del tablespace

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tablespaces de Slo Lectura El comando ALTER TABLESPACE [tablespace] READ ONLY coloca el tablespace en un modo de slo lectura de transicin. En este estado de transicin, no se pueden producir operaciones de escritura adicionales en el tablespace excepto para hacer rollback en las transacciones existentes que anteriormente han modificado bloques en el tablespace. Una vez que se han validado o se ha hecho rollback en todas las transacciones existentes, se completa el comando de slo lectura y el tablespace se coloca en modo de slo lectura. Puede borrar elementos como, por ejemplo, tablas e ndices, de un tablespace de slo lectura, ya que estos comandos slo afectan al diccionario de datos. Esto es posible gracias a que el comando DROP slo actualiza el diccionario de datos, no los archivos fsicos que componen el tablespace. En el caso de los tablespaces gestionados localmente, el segmento borrado se cambia por un segmento temporal para evitar que el bitmap se actualice. Para poder escribir en un tablespace de slo lectura, todos los archivos de datos del tablespace deben estar online. Al hacer que los tablespaces sean de slo lectura, se produce un punto de control en los archivos de datos del tablespace.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-23

Tablespaces de Slo Lectura (continuacin) Al hacer que los tablespaces sean de slo lectura, se evitan operaciones de escritura adicionales en el tablespace. Por tanto, los archivos de datos pueden residir en medios de slo lectura, como CD-ROM o dispositivos de nica escritura (WORM). Los tablespaces de slo lectura eliminan la necesidad de realizar copias de seguridad de grandes partes estticas de una base de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-24

Tablespaces de Slo Lectura (continuacin) Uso de Oracle Enterprise Manager para Cambiar un Tablespace al Modo de Slo Lectura Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Seleccione el tablespace. 3. Seleccione la casilla de control Read Only en la regin Status de la pgina del separador General. 4. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-25

Puesta de un Tablespace Offline


No est disponible para el acceso a datos Tablespaces que no se pueden poner offline:
Tablespace SYSTEM Tablespaces con segmentos de deshacer activos Tablespace temporal por defecto

Para poner un tablespace offline:


ALTER TABLESPACE userdata OFFLINE;

Para poner un tablespace online:


ALTER TABLESPACE userdata ONLINE;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Puesta de un Tablespace Offline Normalmente, un tablespace est online para que los datos que contiene estn disponibles para los usuarios de la base de datos. Sin embargo, el administrador de la base de datos puede desconectar un tablespace para: Que una parte de la base de datos no est disponible, mientras permite el acceso normal al resto de la base de datos Realizar una copia de seguridad de un tablespace offline (aunque se puede hacer una copia de seguridad de un tablespace online y en uso) Recuperar un tablespace o un archivo de datos mientras la base de datos est abierta Mover un archivo de datos mientras la base de datos est abierta Estado Offline de un Tablespace Cuando se pone un tablespace offline, Oracle no permite que ninguna sentencia SQL posterior haga referencia a los objetos contenidos en ese tablespace. Los usuarios que intenten acceder a los objetos de un tablespace que est offline recibirn un error. Cuando un tablespace se pone offline, o se vuelve a poner online, el evento se registra en el diccionario de datos y en el archivo de control. Si un tablespace est offline en el momento de cerrar una base de datos, ese tablespace permanece offline y no se comprueba cuando la base de datos se monte y se vuelva a abrir posteriormente.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-26

Puesta de un Tablespace Offline (continuacin) La instancia Oracle cambia automticamente un tablespace de online a offline cuando se encuentran ciertos errores (por ejemplo, cuando el proceso de escritura en la base de datos, DBWn, falla varias veces al intentar escribir en un archivo de datos del tablespace). Las diferentes situaciones de error se explican con ms detalle en el curso Administracin de la Base de Datos Oracle9i: Conceptos Bsicos II. Puesta de Tablespaces Offline Siempre que la base de datos est abierta, un administrador de la base de datos puede poner offline cualquier tablespace, excepto el tablespace SYSTEM o cualquier tablespace con segmentos de deshacer activos o segmentos temporales. Cuando un tablespace se pone offline, Oracle Server tambin pone offline todos los archivos de datos asociados. ALTER TABLESPACE tablespace {ONLINE |OFFLINE [NORMAL|TEMPORARY|IMMEDIATE|FOR RECOVER]} Donde: NORMAL: Vaca del SGA todos los bloques de todos los archivos de datos del tablespace. sta es la opcin por defecto. No tiene que realizar la recuperacin del medio fsico en este tablespace antes de ponerlo de nuevo online. Utilice la clusula NORMAL siempre que pueda. TEMPORARY: Realiza un punto de control para todos los archivos de datos online del tablespace, incluso si no se han podido escribir algunos archivos. Cualquier archivo offline puede requerir la recuperacin del medio fsico. IMMEDIATE: No garantiza que estn disponibles los archivos de tablespace y no realiza un punto de control. Debe realizar la recuperacin del medio fsico de este tablespace antes de ponerlo de nuevo online. FOR RECOVER: Pone los tablespaces offline para llevar a cabo la recuperacin de tablespace hasta un punto en el tiempo.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-27

Puesta de un Tablespace Offline (continuacin) Uso de Oracle Enterprise Manager para la Puesta de Tablespaces Offline Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Seleccione el tablespace. 3. Seleccione la casilla de control Offline en la regin Status de la pgina del separador General. 4. En el men desplegable, seleccione Mode. 5. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-28

Cambio de los Valores de Almacenamiento


Uso del comando ALTER TABLESPACE para cambiar los valores de almacenamiento:
ALTER TABLESPACE userdata MINIMUM EXTENT 2M; ALTER TABLESPACE userdata DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 999);

No se pueden modificar los valores de almacenamiento de los tablespaces gestionados localmente.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Cambio de los Valores de Almacenamiento Utilice el comando ALTER TABLESPACE para modificar la definicin de almacenamiento por defecto de un tablespace: ALTER TABLESPACE tablespace [MINIMUM EXTENT entero[K|M] |DEFAULT clusula_almacenamiento ]

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-29

Cambio de los Valores de Almacenamiento por Defecto (continuacin) Uso de Oracle Enterprise Manager para Cambiar los Valores de Almacenamiento Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Haga clic con el botn derecho en el tablespace 3. Seleccione View/Edit Details en el men. 4. Haga clic en la pgina del separador Storage y realice los cambios que sean necesarios. 5. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-30

Cambio de Tamao de un Tablespace


Se puede modificar el tamao de un tablespace de las siguientes formas: Cambiando el tamao de un archivo de datos:
De forma automtica con AUTOEXTEND De forma manual con ALTER TABLESPACE

Agregando un archivo de datos con el comando ALTER TABLESPACE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Cambio de Tamao de un Tablespace Para hacer que un tablespace sea ms grande, puede: Cambiar el tamao de un archivo de datos: - Automticamente durante la creacin del tablespace SQL> CREATE TABLESPACE userdata02 2 DATAFILE '/u01/oradata/userdata02.dbf' SIZE 5M 3 AUTOEXTEND ON NEXT 2M MAXSIZE 200M; - Especificando AUTOEXTEND despus de la creacin del tablespace SQL> ALTER DATABASE 2 DATAFILE '/u01/oradata/userdata02.dbf' 3 AUTOEXTEND ON NEXT 2M; - Manualmente SQL> ALTER DATABASE 2 DATAFILE '/u01/oradata/userdata02.dbf' RESIZE 5M;

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-31

Cambio de Tamao de un Tablespace (continuacin) Agregando un archivo de datos a un tablespace SQL> ALTER TABLESPACE userdata02 2 3 ADD DATAFILE '/u01/oradata/userdata03.dbf' SIZE 5M;

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-32

Activacin de la Extensin Automtica de Archivos de Datos


Se pueden cambiar de tamao automticamente con los siguientes comandos:
CREATE DATABASE CREATE TABLESPACE ALTER TABLESPACE ADD DATAFILE

Ejemplo:
CREATE TABLESPACE user_data DATAFILE '/u01/oradata/userdata01.dbf' SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;

Consulte la vista DBA_DATA_FILES para determinar si AUTOEXTEND est activado.


Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Activacin de la Extensin Automtica de Archivos de Datos Especificacin de AUTOEXTEND para un Nuevo Archivo de Datos La clusula AUTOEXTEND activa o desactiva la extensin automtica de archivos de datos. Los archivos aumentan en incrementos determinados hasta un mximo definido. Ventajas de utilizar la clusula AUTOEXTEND: Se reduce la necesidad de intervenir inmediatamente si un tablespace se queda sin espacio Garantiza que las aplicaciones no se paren debido a fallos en la asignacin de extensiones Cuando se crea un archivo de datos, stos son los comandos SQL que se pueden utilizar para activar la extensin automtica del archivo de datos: CREATE DATABASE CREATE TABLESPACE ... DATAFILE ALTER TABLESPACE ... ADD DATAFILE

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-33

Activacin de la Extensin Automtica de Archivos de Datos (continuacin) Especificacin de AUTOEXTEND para un Nuevo Archivo de Datos (continuacin) Utilice el comando ALTER DATABASE para modificar un archivo de datos y activar la extensin automtica: ALTER DATABASE DATAFILE especificacin_archivo [clusula_extensin_automtica] clusula_extensin_automtica:== [ AUTOEXTEND { OFF|ON[NEXT entero[K|M]] [MAXSIZE UNLIMITED | entero[K|M]] } ] donde: AUTOEXTEND OFF: Desactiva la extensin automtica del archivo de datos AUTOEXTEND ON: Activa la extensin automtica del archivo de datos NEXT: Especifica el espacio de disco que se debe asignar al archivo de datos cuando se necesitan ms extensiones MAXSIZE: Especifica el espacio de disco mximo que se permite asignar al archivo de datos UNLIMITED: No define ningn lmite para asignar espacio de disco al archivo de datos Especificacin de AUTOEXTEND para un Archivo de Datos Existente Utilice el comando SQL ALTER DATABASE para activar o desactivar la extensin de archivo automtica de los archivos de datos existentes: ALTER DATABASE [base_de_datos] DATAFILE 'nombrearchivo'[, 'nombrearchivo']... clsula_extensin_automtica Determinacin del Estado Activo o Inactivo de la Clusula AUTOEXTEND Consulte la vista DBA_DATA_FILES para determinar si AUTOEXTEND est activado y examine la columna AUTOEXTENSIBLE. SQL> SELECT tablespace_name, file_name, autoextensible 2 FROM dba_data_files; TABLESPACE_NAME FILE_NAME AUTOEXTENSIBLE --------------- ------------------------------------SYSTEM /home/dba01/ORADATA/u01/system01.dbf YES DATA01 /home/dba01/ORADATA/u04/data01.dbf NO USERS /home/dba01/ORADATA/u03/users01.dbf NO INDX /home/dba01/ORADATA/u06/indx01.dbf NO SAMPLE /home/dba01/ORADATA/u02/sample01.dbf YES DATA02 /home/dba01/ORADATA/u03/data02.dbf NO INDEX01 /home/dba01/ORADATA/u06/index01.dbf YES UNDO2 /home/dba01/ORADATA/u01/UNDO2.dbf NO 8 rows selected.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-34

Activacin de la Extensin Automtica de Archivos de Datos (continuacin) Uso de Oracle Enterprise Manager para Activar el Cambio de Tamao Automtico Desde la Consola de OEM: 1. Navegue a Storage > Datafiles. 2. Seleccione el archivo de datos. 3. Seleccione la casilla de control Automatically extend datafile when full de la pgina del separador Storage. 4. Defina los valores de los campos Increment y Maximum Size. 5. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-35

Cambio de Tamao Manual de un Archivo de Datos


Aumente o disminuya el tamao de un archivo de datos manualmente con ALTER DATABASE Al cambiar de tamao un archivo de datos, se agrega ms espacio sin agregar ms archivos de datos. El cambio de tamao manual de un archivo de datos reclama el espacio no utilizado de la base de datos. Ejemplo:
ALTER DATABASE DATAFILE '/u03/oradata/userdata02.dbf' RESIZE 200M;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Cambio de Tamao Manual de un Archivo de Datos En lugar de agregar espacio a la base de datos agregando archivos de datos, el administrador de la base de datos puede cambiar el tamao de un archivo de datos. Para aumentar o disminuir manualmente el tamao de un archivo de datos, utilice el comando ALTER DATABASE. ALTER DATABASE [base_de_datos] DATAFILE nombrearchivo[, nombrearchivo]... RESIZE entero[K|M] donde: Entero: Es el tamao absoluto, expresado en bytes, del archivo de datos resultante Si los objetos de base de datos almacenados superan el tamao especificado, el tamao del archivo de datos slo disminuir en el ltimo bloque de los ltimos objetos del archivo de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-36

Adicin de Archivos de Datos a un Tablespace


Aumenta el espacio asignado a un tablespace agregando archivos de datos adicionales La clusula ADD DATAFILE se utiliza para agregar un archivo de datos Ejemplo:
ALTER TABLESPACE user_data ADD DATAFILE '/u01/oradata/userdata03.dbf' SIZE 200M;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Adicin de Archivos de Datos a un Tablespace Se pueden agregar archivos de datos a un tablespace para aumentar la cantidad total de espacio de disco asignado al tablespace con el comando ALTER TABLESPACE ADD DATAFILE. ALTER TABLESPACE tablespace ADD DATAFILE especificacin_archivo [clusula_extensin_automtica]

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-37

Adicin de Archivos de Datos a un Tablespace (continuacin) Uso de Oracle Enterprise Manager para Agregar un Archivo de Datos Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Seleccione el tablespace. 3. Seleccione Add Datafile en el men derecho del mouse. 4. Introduzca la informacin del archivo en la pgina del separador General. 5. Haga clic en Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-38

Mtodos para Mover Archivos de Datos


ALTER TABLESPACE
El tablespace debe estar offline. Deben existir archivos de datos de destino. ALTER TABLESPACE userdata RENAME DATAFILE '/u01/oradata/userdata01.dbf' TO '/u02/oradata/userdata01.dbf';

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Mtodos para Mover Archivos de Datos Dependiendo del tipo de tablespace, el administrador de la base de datos podr mover los archivos de datos utilizando uno de estos dos mtodos: El comando ALTER TABLESPACE El siguiente comando ALTER TABLESPACE slo se aplica a los archivos de datos de un tablespace no SYSTEM que no contengan segmentos temporales o segmentos de deshacer activos: ALTER TABLESPACE tablespace RENAME DATAFILE 'nombrearchivo'[, 'nombrearchivo']... TO 'nombrearchivo'[, 'nombrearchivo']... Los nombres de archivo de origen deben coincidir con los nombres almacenados en el archivo de control. Pasos para cambiar el nombre de un archivo de datos: 1. Ponga el tablespace offline. 2. Utilice un comando del sistema operativo para mover o copiar los archivos. 3. Ejecute el comando ALTER TABLESPACE RENAME DATAFILE. 4. Ponga el tablespace online. 5. Utilice un comando del sistema operativo para suprimir el archivo si fuera necesario.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-39

Mtodos para Mover Archivos de Datos


ALTER DATABASE
Se debe montar la base de datos. Debe existir un archivo de datos de destino. ALTER DATABASE RENAME FILE '/u01/oradata/system01.dbf' TO '/u03/oradata/system01.dbf';

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Mtodos para Mover Archivos de Datos (continuacin) El Comando ALTER DATABASE El comando ALTER DATABASE se puede utilizar para mover cualquier tipo de archivo de datos: ALTER DATABASE [base_de_datos] RENAME FILE 'nombrearchivo'[, 'nombrearchivo']... TO 'nombrearchivo'[, 'nombrearchivo']... Dado que el tablespace SYSTEM no se puede poner offline, deber utilizar este mtodo para mover los archivos de datos en el tablespace SYSTEM. Utilice el siguiente proceso para cambiar el nombre de los archivos de los tablespaces que no se puedan poner offline: 1. Cierre la base de datos. 2. Utilice un comando del sistema operativo para mover los archivos. 3. Monte la base de datos. 4. Ejecute el comando ALTER DATABASE RENAME FILE. 5. Abra la base de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-40

Mtodos para Mover Archivos de Datos (continuacin) Uso de Oracle Enterprise Manager para Mover un Archivo de Datos Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Seleccione el tablespace en el que reside el archivo de datos que se va a mover. 3. Seleccione Offline en la pgina del separador General. 4. Haga clic en Apply. 5. Una vez que el tablespace est offline, actualice la informacin de File Directory en la pgina del separador General. 6. Haga clic en Apply. Nota Estos comandos comprueban la existencia del archivo en la nueva ubicacin; no crean ni mueven archivos. Proporcione siempre los nombres de archivos completos (incluyendo sus rutas de acceso) para identificar los archivos de datos nuevos y antiguos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-41

Borrado de Tablespaces
Un tablespace no se puede borrar si:
Es el tablespace SYSTEM Tiene segmentos activos

INCLUDING CONTENTS borra los segmentos. INCLUDING CONTENTS AND DATAFILES suprime los archivos de datos. CASCADE CONSTRAINTS borra todas las restricciones de integridad referencial.
DROP TABLESPACE userdata INCLUDING CONTENTS AND DATAFILES;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Borrado de Tablespaces Utilice el siguiente comando SQL DROP TABLESPACE para eliminar un tablespace de una base de datos cuando dicho tablespace y su contenido ya no sean necesarios: DROP TABLESPACE tablespace [INCLUDING CONTENTS [AND DATAFILES] [CASCADE CONSTRAINTS]] donde: tablespace: Especifica el nombre del tablespace que se va a borrar INCLUDING CONTENTS: Elimina todos los segmentos del tablespace AND DATAFILES: Suprime los archivos asociados del sistema operativo CASCADE CONSTRAINTS: Borra las restricciones de integridad referencial de las tablas que se encuentran fuera del tablespace que hacen referencia a las claves principal y exclusiva de las tablas del tablespace borrado

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-42

Borrado de Tablespaces (continuacin) Instrucciones No se puede borrar un tablespace que todava contenga datos sin la opcin INCLUDING CONTENTS. Esta opcin puede generar muchas acciones de deshacer si el tablespace contiene muchos objetos. Una vez se haya borrado un tablespace, sus datos ya no estarn en la base de datos. Cuando se borra un tablespace, slo se borran los punteros de archivo del archivo de control de la base de datos asociada. Los archivos del sistema operativo siguen existiendo y se deben borrar de forma explcita con el correspondiente comando del sistema operativo, a menos que se utilice la clusula AND DATAFILES o que los archivos de datos sean OMF. Los tablespaces se pueden borrar aunque se cambien a modo de slo lectura, al igual que los segmentos que contienen. Se recomienda que ponga el tablespace offline antes de borrarlo para garantizar que ninguna transaccin tenga acceso a ninguno de los segmentos del tablespace.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-43

Borrado de Tablespaces (continuacin) Uso de Oracle Enterprise Manager para Borrar un Tablespace Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Seleccione el tablespace. 3. Seleccione Remove en el men derecho del mouse. 4. Seleccione la casilla de control Delete associated datafiles from the OS si desea suprimir los archivos de datos. Nota: Esta opcin slo se encuentra en la base de datos Oracle9i Versin 2. 5. Haga clic en Yes para confirmar la accin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-44

Gestin de Tablespaces con OMF


Defina el parmetro DB_CREATE_FILE_DEST de una de las siguientes formas:
Archivo de parmetros de inicializacin Definido dinmicamente con el comando ALTER SYSTEM ALTER SYSTEM SET db_create_file_dest = '/u01/oradata/dba01';

Al crear el tablespace:
Se crea automticamente el archivo de datos y se coloca en DB_CREATE_FILE_DEST El tamao por defecto es 100 MB AUTOEXTEND est definido en UNLIMITED

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de Tablespaces con OMF Cuando se configura OMF para crear tablespaces, slo se especifica un parmetro de inicializacin, DB_CREATE_FILE_DEST. No es necesaria la clusula DATAFILE. Todos los archivos de datos se crean automticamente y el parmetro DB_CREATE_FILE_DEST define su ubicacin. Oracle Server genera automticamente el nombre del archivo de datos (ora_tbs1_2ixfh90q.dbf).

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-45

Gestin de Tablespaces con OMF


Creacin de un tablespace con OMF:
CREATE TABLESPACE text_data DATAFILE SIZE 20M;

Adicin de un archivo de datos OMF a un tablespace existente:


ALTER TABLESPACE text_data ADD DATAFILE;

Cambio dinmico de la ubicacin de archivo por defecto:


ALTER SYSTEM SET db_create_file_dest = '/u01/oradata/dba01';

El borrado de un tablespace incluye la supresin de los archivos del sistema operativo:


Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de Tablespaces con OMF Creacin de Tablespaces con OMF La creacin de tablespaces con OMF no requiere una clusula DATAFILE. Los tablespaces que omiten la clusula DATAFILE utilizan los valores por defecto de un archivo de datos de 100 MB definido en AUTOEXTEND con un valor MAXSIZE ilimitado. Opcionalmente, se puede especificar un tamao de archivo. CREATE TABLESPACE tablespace [ DATAFILE [ nombrearchivo ] [ SIZE entero [K|M] ] ]; Adicin de Archivos de Datos a un Tablespace OMF Se puede agregar un archivo de datos a un tablespace existente. El comando ADD DATAFILE ya no requiere especificacin de archivo. Cambio Dinmico de Ubicaciones de Archivos por Defecto Se debe definir el parmetro DB_CREATE_ONLINE_LOG_DEST_n para evitar que se coloquen los archivos de log y de control con los archivos de datos. El destino se puede modificar dinmicamente con el comando ALTER SYSTEM SET. Borrado de Tablespaces con OMF Los archivos de datos de tablespaces creados con OMF se suprimen en el nivel del sistema operativo cuando se borra el tablespace asociado.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-46

Obtencin de Informacin acerca de Tablespaces


Se puede obtener informacin acerca de tablespaces y archivos de datos consultando lo siguiente: Informacin acerca del tablespace:
DBA_TABLESPACES V$TABLESPACE

Informacin acerca del archivo de datos:


DBA_DATA_FILES V$DATAFILE

Informacin acerca del archivo temporal:


DBA_TEMP_FILES V$TEMPFILE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-47

Resumen
En esta leccin, ha aprendido a: Utilizar tablespaces para separar datos Crear diferentes tipos de tablespaces Gestionar tablespaces Gestionar tablespaces con OMF Obtener informacin acerca de tablespaces

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-48

Prctica 8: Visin General


Esta prctica abarca los siguientes temas: Creacin de tablespaces Modificacin de tablespaces Configuracin y creacin de un tablespace con OMF

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Prctica 8: Visin General Nota: Esta prctica se puede realizar con SQL*Plus o con Oracle Enterprise Manager y SQL*Plus Worksheet.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-49

Prctica 8: Gestin de Tablespaces y Archivos de Datos 1 Cree tablespaces permanentes con los siguientes nombres y tamaos de almacenamiento: a Tablespace name: DATA01 Data file name: data01.dbf Size: 2M Extent Management: Location: u04 dictionary

b Tablespace name: DATA02 Data file name: data02.dbf Size: 1M Extent management: local uniform size 100K Location: u03 c Tablespace name: INDEX01 Data file name: index01.dbf Size: 1M Extent management: local uniform size 4K Location: u02 Permita una extensin automtica de 500 KB cuando se necesiten ms extensiones con un tamao mximo de 2 MB. d Tablespace name: RONLY Data file name: ronly01.dbf Size: 1M Location: u01 Almacenamiento por defecto. Esta vez NO haga que el tablespace sea de slo lectura. e Muestre la informacin del diccionario de datos. Indicacin: Se puede ver la informacin acerca de los tablespaces con cualquiera de las siguientes consultas.
- DBA_TABLESPACES - V$TABLESPACE - V$DATAFILE

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-50

Prctica 8: Soluciones (continuacin) 2 Asigne 500 KB ms de espacio en disco al tablespace DATA02. Verifique el resultado. 3 Cambie la ubicacin del tablespace INDEX01 al subdirectorio u06. Verifique la reubicacin y el estado de INDEX01. Indicaciones - Ponga offline el tablespace INDEX01. - Utilice V$DATAFILE para verificar el estado. - Utilice el comando mover del sistema operativo para mover el tablespace a u06. - Utilice el comando ALTER TABLESPACE para cambiar la ubicacin del tablespace. - Ponga online el tablespace INDEX01. - Utilice V$DATAFILE para verificar el estado. 4 a Conctese como usuario SYSTEM y cree una tabla en el tablespace RONLY. Haga que el tablespace sea de slo lectura. Ejecute una consulta para verificarlo. b Intente crear una tabla adicional llamada TABLE2. Borre la primera tabla creada, TABLE1. Qu sucede? 5 Borre el tablespace RONLY y el archivo de datos correspondiente. Verifquelo. Indicaciones - Utilice la clusula INCLUDING CONTENTS AND DATAFILES - Observe V$TABLESPACE para verificar que el tablespace se haya borrado. - Utilice el signo ! del prompt SQL para ver una lista de los archivos de datos de u01. 6 Defina DB_CREATE_FILE_DEST en $HOME/ORADATA/u05 slo en la memoria. Cree el tablespace DATA03 con un tamao de 5 MB. No especifique una ubicacin de archivo. Verifique la creacin del archivo de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-51

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 8-52

Relaciones y Estructura de Almacenamiento

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Describir la estructura lgica de la base de datos Enumerar los tipos de segmentos y sus usos Enumerar las palabras clave que controlan el uso del espacio de bloques Obtener informacin acerca de la estructura de almacenamiento

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-2

Relaciones y Estructura de Almacenamiento


Base de datos PROD
TABLESPACES SYSTEM ARCHIVOS DE DATOS DISK1/SYS1.dbf SEGMENTOS Tabla D.D. ndice D.D. USER_DATA DISK2/ USER1.dbf S_DEPT S_EMP Seg. Datos DISK3/ USER2.dbf
S_DEPT (Continu acin)
S_EMP FIRST_N AME ndice

RBS DISK1/ UNDO1.dbf


RBS1 RBS2 RBS1 RBS2 (Continua (Continu cin) acin) Seg. RB Seg. RB

TEMP DISK1/ TEMP.dbf Temp Seg. Temp.

Seg.Seg. Seg. Seg. RB Datos Datos ndice EXTENSIONES 1 2 1 2 1 2 1

Seg. Datos

Seg. ndice

Seg. RB

Seg. RB

LIBRE

Oracle DATA BLOCKS

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-3

Tipos de Segmentos

Tabla

Particin de tabla

Agrupamiento

ndice

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tipos de Segmentos Los segmentos son objetos que ocupan espacio en una base de datos. Utilizan el espacio de los archivos de datos de una base de datos. Esta seccin describe los distintos tipos de segmentos. Tabla Las tablas son el medio ms frecuente de almacenar datos en una base de datos. Los segmentos de tabla almacenan datos de tablas que no estn agrupadas ni particionadas. Los datos de un segmento de tabla se almacenan sin ningn orden en particular y el DBA (administrador de la base de datos) no tiene mucho control sobre la ubicacin de las filas situadas dentro los bloques de una tabla. Todos los datos de un segmento de tabla se deben almacenar en un tablespace. Particin de tabla Cuando hay una tabla de una base de datos que tiene un nivel elevado de uso simultneo, las principales preocupaciones son la escalabilidad y la disponibilidad. En estos casos, los datos de una tabla se pueden almacenar en varias particiones, cada una de las cuales reside en un tablespace diferente. Oracle Server soporta actualmente el particionamiento mediante un rango de valores clave, un algoritmo de comprobacin aleatoria y una lista de valores. Si se particiona una tabla, cada particin es un segmento y se pueden especificar parmetros de almacenamiento para controlarlos de forma independiente. Para utilizar este tipo de segmento, se necesita la opcin de particin de Oracle9i Enterprise Edition.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 9-4

Tipos de Segmentos (continuacin) Agrupamiento Un agrupamiento, al igual que una tabla, es un tipo de segmento de datos. Las filas de un agrupamiento se almacenan en funcin de los valores de columnas clave. Un agrupamiento puede contener una o ms tablas. Las tablas de un agrupamiento pertenecen al mismo segmento y comparten las mismas caractersticas de almacenamiento. Para acceder a las filas de una tabla agrupada, se puede utilizar un ndice o un algoritmo de comprobacin aleatoria. ndice Todas las entradas de un ndice determinado se almacenan en un segmento de ndice. Si una base de datos tiene tres ndices, se utilizan tres segmentos de ndices. El objetivo de este tipo de segmento es buscar la ubicacin de las filas en una tabla en funcin de una clave determinada.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-5

Tipos de Segmentos

Tabla organizada por ndice

Particin de ndices

Segmento de deshacer

Segmento temporal

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tipos de Segmentos (continuacin) Tabla Organizada por ndice En una tabla organizada por ndices, los datos se almacenan en el ndice en funcin del valor clave. Las tablas organizadas por ndices no necesitan consultas de tabla, porque todos los datos se pueden recuperar directamente del rbol de ndice. Particin de ndices Un ndice se puede particionar y distribuir entre varios tablespaces. En este caso, cada particin de ndice se corresponde con un segmento y no puede abarcar mltiples tablespaces. Los ndices particionados sirven principalmente para minimizar la contencin al distribuir las operaciones E/S (entrada y salida) de ndices. Para utilizar este tipo de segmento, se necesita la opcin de particin de Oracle9i Enterprise Edition. Segmento de Deshacer Los segmentos de deshacer los utilizan las transacciones que efectan cambios en una base de datos. Antes de cambiar los bloques de datos o de ndices, el valor antiguo se almacena en el segmento de deshacer. Esto permite a los usuarios deshacer los cambios efectuados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-6

Tipos de Segmentos (continuacin) Segmento Temporal Cuando un usuario ejecuta comandos, como CREATE INDEX, SELECT DISTINCT y SELECT GROUP BY, Oracle Server intenta realizar ordenaciones en la memoria. Cuando una ordenacin necesita ms espacio del que hay disponible en la memoria, los resultados intermedios se escriben en el disco. Los segmentos temporales se utilizan para almacenar estos resultados intermedios.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-7

Tipos de Segmentos

Segmen to LOB

Tabla anidada

Segmento de arranque
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tipos de Segmentos (continuacin) Segmento LOB Se pueden utilizar una o ms columnas de una tabla para almacenar LOB (objetos de gran tamao) como, por ejemplo, documentos de texto, imgenes o vdeos. Si la columna es grande, Oracle Server almacena estos valores en segmentos independientes, denominados segmentos LOB. La tabla slo contiene un localizador o un puntero a la ubicacin de los datos LOB correspondientes. Tabla Anidada La columna de una tabla puede estar compuesta por una tabla definida por el usuario, como es el caso de los elementos que hay en un pedido. En esos casos, la tabla interna, que se conoce como tabla anidada, se almacena como un segmento independiente. Segmento de Arranque Un segmento de arranque, tambin conocido como segmento de cach, se crea por medio del archivo de comandos sql.bsq en el momento de crear la base de datos. Este segmento ayuda a inicializar la cach de diccionario de datos cuando una instancia abre la base de datos. El segmento de arranque no se puede consultar ni actualizar y no requiere mantenimiento por parte del DBA.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 9-8

Prioridad de Clusulas de Almacenamiento


Valor por defecto de Oracle Tablespace Segmento

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Parmetros de las Clusulas de Almacenamiento Se puede especificar una clusula de almacenamiento a nivel del segmento para controlar cmo se asignan las extensiones a un segmento. Cualquier parmetro de almacenamiento que se especifique a nivel del segmento sustituye a la opcin correspondiente definida a nivel del tablespace, excepto en el caso del parmetro de tablespace MINIMUM EXTENT o UNIFORM SIZE. Cuando los parmetros de almacenamiento no se definen de forma explcita a nivel del segmento, utilizan los valores por defecto del nivel de tablespace. Cuando los parmetros de almacenamiento no se definen de forma explcita a nivel del tablespace, se utilizan los parmetros por defecto del sistema de Oracle Server. Otras Consideraciones Si se modifican los parmetros de almacenamiento, las nuevas opciones slo se aplican a las extensiones que no se han asignado todava. Hay algunos parmetros que no se pueden especificar a nivel del tablespace. Dichos parmetros slo se deben especificar a nivel del segmento. Si se ha especificado un tamao de extensin mnimo para el tablespace, dicho tamao se aplica a todas las extensiones que se asignen en un futuro a los segmentos del tablespace.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 9-9

Asignacin y Desasignacin de Extensiones


Una extensin es un fragmento de espacio utilizado por un segmento en un tablespace. Se asigna una extensin cuando el segmento:
Se crea Se ampla Se modifica

Se desasigna una extensin cuando el segmento:


Se borra Se modifica Se trunca

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-10

Extensiones Utilizadas y Libres


Archivo de datos

Cabecera de archivo

Extensin utilizada

Extensin libre

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Extensiones Utilizadas y Libres Cuando se crea un tablespace, los archivos de datos de dicho tablespace contienen una cabecera, que es el primer bloque o bloques del archivo. A medida que se crean los segmentos, se les asigna espacio de las extensiones libres de un tablespace. El espacio contiguo que utiliza un segmento se conoce como extensin utilizada. Cuando los segmentos liberan espacio, las extensiones que se liberan se agregan al conjunto de extensiones libres disponibles en el tablespace.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-11

Bloque de Base de Datos

Unidad mnima de E/S Formado por uno o ms bloques del sistema operativo Definido cuando se crea el tablespace DB_BLOCK_SIZE es el tamao de bloque por defecto

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-12

Soporte para Mltiples Tamaos de Bloque


Una base de datos se puede crear con un tamao de bloque estndar y un mximo de cuatro tamaos de bloque no estndar. Los tamaos de bloque pueden tener cualquier valor multiplicado por dos entre 2 y 32 KB.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Soporte para Mltiples Tamaos de Bloque Oracle9i soporta la creacin de bases de datos con mltiples tamaos de bloques. Esta caracterstica resulta til en las siguientes situaciones: Al traspasar un tablespace desde una base de datos OLTP (procesamiento de transacciones en lnea) a un almacn de datos de empresa. Oracle9i facilita el transporte entre bases de datos que tienen distintos tamaos de bloque Si necesita localizar objetos en tablespaces que tengan el tamao de bloque apropiado para maximizar el rendimiento de E/S El tamao de bloque del tablespace SYSTEM se denomina tamao de bloque estndar y se define al crear la base de datos. Con Oracle9i, puede especificar un mximo de cuatro tamaos de bloque no estndar, adems de un tamao de bloque estndar. En el archivo de inicializacin puede configurar subcachs dentro de la cach de buffers para cada uno de estos tamaos de bloque. Las subcachs tambin se pueden configurar mientras se ejecuta una instancia. Puede crear tablespaces que tengan cualquiera de estos tamaos de bloque. El tamao de bloque estndar se utiliza para el tablespace SYSTEM y la mayora de los tablespaces restantes.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-13

Tamao de Bloque Estndar


Se define al crear la base de datos con el parmetro DB_BLOCK_SIZE y no se puede modificar sin volver a crear la base de datos Se utiliza para los tablespaces SYSTEM y TEMPORARY DB_CACHE_SIZE especifica el tamao de la cach de buffers DEFAULT para el tamao de bloque estndar:
Tamao mnimo = un grnulo (4 o 16 MB) Valor por defecto = 48 MB

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tamao de Bloque Estndar El parmetro de inicializacin DB_BLOCK_SIZE especifica el tamao de bloque estndar de la base de datos. Este tamao de bloque se utiliza para el tablespace SYSTEM y cualquier otro tablespace temporal. A menos que se especifique lo contrario, el tamao de bloque estndar tambin se utiliza como tamao de bloque por defecto para un tablespace. Oracle soporta un mximo de cuatro tamaos de bloque no estndar adicionales. Debe elegir el tamao de bloque estndar que se utilice con ms frecuencia. En muchos casos, ste ser el nico tamao de bloque que debe especificar. Generalmente, DB_BLOCK_SIZE se define en 4 u 8 KB. Si no se especifica, el tamao de bloque de datos por defecto ser el especfico del sistema operativo, que suele ser adecuado. El tamao de bloque no se puede cambiar una vez creada la base de datos, a menos que se vuelva a crear. El parmetro de inicializacin DB_CACHE_SIZE sustituye al parmetro de inicializacin DB_BLOCK_BUFFERS de versiones anteriores. El parmetro DB_CACHE_SIZE especifica el tamao de cach de los buffers de tamao de bloque estndar, mientras que DB_BLOCK_SIZE especifica el tamao de bloque estndar.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-14

Tamao de Bloque Estndar (continuacin) Por razones de compatibilidad con versiones anteriores, el parmetro DB_BLOCK_BUFFERS todava funciona, aunque sigue siendo un parmetro esttico que no se puede combinar con ningn parmetro de especificacin de tamao dinmico. Nota: Un grnulo es una unidad de asignacin de memoria virtual contigua. El tamao de un grnulo depende del tamao total estimado del SGA, cuyo clculo se basa en el valor del parmetro SGA_MAX_SIZE: 4 MB si el tamao del SGA estimado es < 128 MB, o 16 MB en caso contrario.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-15

Tamao de Bloque no Estndar


Configure cachs adicionales con los siguientes parmetros dinmicos:
DB_2K_CACHE_SIZE para bloques de 2 KB DB_4K_CACHE_SIZE para bloques de 4 KB DB_8K_CACHE_SIZE para bloques de 8 KB DB_16K_CACHE_SIZE para bloques de 16 KB DB_32K_CACHE_SIZE para bloques de 32 KB

DB_nK_CACHE_SIZE no est permitido si nK es el tamao de bloque estndar. El tamao mnimo para cada cach es un grnulo.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tamao de Bloque no Estndar Los parmetros de inicializacin de la cach de buffers de base de datos determinan el tamao del componente de cach de buffers de base de datos del SGA. Se utilizan para especificar los tamaos de cach de los diversos tamaos de bloque que utiliza la base de datos. Si pretende utilizar mltiples tamaos de bloques en la base de datos, debe definir el parmetro DB_CACHE_SIZE y al menos un parmetro DB_nK_CACHE_SIZE. Cada parmetro especifica el tamao de la cach de buffers del bloque correspondiente. El valor por defecto del parmetro DB_nK_CACHE_SIZE es cero. No defina este parmetro como cero si hay algn tablespace online con un tamao de bloque de n KB. Aqu se aplican restricciones de tamao de bloque que son especficas de la plataforma. Por ejemplo, no se puede definir el parmetro DB_32K_CACHE_SIZE si el tamao de bloque mximo de la plataforma es inferior a 32 KB. Asimismo, no se puede definir el parmetro DB_2K_CACHE_SIZE si el tamao de bloque mnimo es superior a 2 KB. Nota: No puede utilizar estos parmetros para especificar el tamao de cach del bloque estndar. Por ejemplo, si el valor de DB_BLOCK_SIZE es 2 KB, no es vlido definir DB_2K_CACHE_SIZE. El tamao de cach del bloque estndar siempre se determina a partir del valor de DB_CACHE_SIZE.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-16

Tamao de Bloque no Estndar (continuacin) Uso de Oracle Enterprise Manager para Configurar Cachs Adicionales Desde la Consola de OEM: 1. Navegue a Configuration. 2. Seleccione All Initialization Parameters. 3. Realice los cambios correspondientes a los siguientes parmetros: - DB_2K_CACHE_SIZE - DB_4K_CACHE_SIZE - DB_8K_CACHE_SIZE - DB_16K_CACHE_SIZE - DB_32K_CACHE_SIZE 4. Haga clic en OK.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-17

Creacin de Tablespaces con un Tamao de Bloque no Estndar

CREATE TABLESPACE tbs_1 DATAFILE 'tbs_1.dbf' SIZE 10M BLOCKSIZE 4K; DESCRIBE dba_tablespaces Name Null? Type ------------------ -------- -----------TABLESPACE_NAME NOT NULL VARCHAR2(30) BLOCK_SIZE NOT NULL NUMBER ...

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de Tablespaces con un Tamao de Bloque no Estndar Utilice la clusula BLOCKSIZE para especificar el tamao de bloque no estndar del tablespace. Puede especificar el tamao en bytes o en kilobytes con el sufijo K. Para especificar esta clusula, debe definir el parmetro DB_CACHE_SIZE y como mnimo un parmetro DB_nK_CACHE_SIZE y, adems, el entero que especifique en ella se debe corresponder con un valor del parmetro DB_nK_CACHE_SIZE. Restriccin: No puede especificar tamaos de bloque no estndar para un tablespace temporal (es decir, si tambin especifica TEMPORARY) o si pretende asignar este tablespace como temporal a cualquier usuario. La primera sentencia anterior crea un tablespace nuevo denominado tbs_1, en donde el archivo tbs_1.dbf tiene un tamao de bloque de 4 KB. Para que esta sentencia se ejecute correctamente, los buffers de 4 KB deben estar configurados actualmente en la cach de buffers. Nota: Se ha agregado una columna nueva a las vistas del diccionario *_TABLESPACES para reflejar el tamao de bloque correspondiente que se utiliza en un tablespace concreto.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-18

Creacin de Tablespaces con un Tamao de Bloque no Estndar (continuacin) Uso de Oracle Enterprise Manager para la Creacin de Tablespaces con un Tamao de Bloque no Estndar Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Seleccione Create en el men derecho del mouse. 3. Introduzca la informacin para crear el tablespace. 4. Seleccione la pgina Storage e indique el valor de Block Size. 5. Haga clic en Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-19

Reglas de Especificacin de Tamao de Mltiples Bloques


Todas las particiones de un objeto particionado deben residir en tablespaces del mismo tamao de bloque. Todos los tablespaces temporales, incluidos los permanentes que se utilizan como tablespaces temporales por defecto, deben tener el tamao de bloque estndar. Los segmentos LOB fuera de lnea y los desbordamientos de tablas organizadas por ndices se pueden almacenar en un tablespace que tenga un tamao de bloque distinto al de la tabla base.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-20

Contenido del Bloque de la Base de Datos

Cabecera

Espacio libre

Datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Contenido del Bloque de la Base de Datos Los bloques de datos de Oracle contienen: Cabecera de bloque: Contiene las ranuras de la direccin del bloque de datos, del directorio de tablas, del directorio de filas y de la transaccin que se utilizan cuando las transacciones realizan cambios en las filas del bloque. Las cabeceras del bloque aumentan de arriba hacia abajo. Espacio de datos: Los datos de fila se insertan en el bloque de abajo hacia arriba. Espacio libre: El espacio libre de un bloque est en medio del bloque. De este modo, la cabecera y el espacio de datos de filas pueden aumentar como sea conveniente. Inicialmente, el espacio libre de un bloque est contiguo. Sin embargo, las supresiones y actualizaciones pueden fragmentar este espacio. Oracle Server fusiona el espacio libre del bloque cuando es necesario.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-21

Parmetros de Utilizacin del Espacio de Bloques

INITRANS

MAXTRANS

PCTFREE

PCTUSED

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Parmetros de Utilizacin del Espacio de Bloques Los parmetros de utilizacin del espacio de bloques se pueden utilizar para controlar el uso del espacio en los segmentos de datos y de ndices. Parmetros que Controlan la Simultaneidad INITRANS y MAXTRANS: Especifican el nmero mximo e inicial de ranuras de transaccin que se crean en un ndice o un bloque de datos. Las ranuras de transaccin se utilizan para almacenar informacin acerca de las transacciones que realizan cambios en el bloque en un momento determinado. Una transaccin slo utiliza una ranura de transaccin, aunque est cambiando ms de una entrada de fila o de ndice. INITRANS: Garantiza un nivel mnimo de simultaneidad. Su valor por defecto es 1 en el caso de un segmento de datos y 2 en el caso de un segmento de ndice, lo que garantiza un nivel mnimo de simultaneidad. Por ejemplo, si se define como 3, INITRANS asegura que, como mnimo, puede haber tres transacciones que efecten cambios en el bloque simultneamente. Si fuera necesario, se pueden asignar ranuras de transaccin adicionales de espacio libre en el bloque para permitir que haya ms transacciones simultneas que modifiquen las filas del bloque.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-22

Parmetros de Utilizacin del Espacio de Bloques (continuacin) MAXTRANS: Su valor por defecto es 255 y define el lmite del nmero de transacciones simultneas que pueden realizar cambios en un bloque de datos o de ndice. Una vez definido, este valor restringe el uso del espacio de las ranuras de transaccin y, por tanto, garantiza que hay espacio suficiente en el bloque para que lo utilicen los datos de fila o los datos de ndice. Parmetros que Controlan el Uso del Espacio de Datos PCTFREE: Este parmetro especifica, para un segmento de datos, el porcentaje de espacio de cada bloque de datos que est reservado para el crecimiento resultante de las actualizaciones de las filas del bloque. El valor por defecto de PCTFREE es el 10%. PCTUSED: Para un segmento de datos, este parmetro representa el porcentaje mnimo de espacio utilizado que Oracle Server intenta mantener para cada bloque de datos de la tabla. Un bloque se vuelve a colocar en la lista de bloques libres cuando su espacio utilizado se encuentra por debajo del valor de PCTUSED. La lista de bloques libres de un segmento es una lista de bloques que pueden albergar futuras inserciones. Por defecto, un segmento se crea con una lista de bloques libres. Para crear los segmentos con un nmero mayor de listas de bloques libres, defina el parmetro FREELISTS de la clusula de almacenamiento. El valor por defecto de PCTUSED es el 40%. Tanto PCTFREE como PCTUSED se calculan como porcentajes del espacio de datos disponible; es decir, el espacio del bloque que queda despus de restar el espacio de cabecera del tamao total del bloque. Nota: El uso de estos parmetros para los ndices se describe de forma ms detallada en la leccin Gestin de ndices. La especificacin de FREELISTS se describe con ms detalle en el curso Oracle9i: Performance Tuning.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-23

Gestin de Bloques de Datos


Existen dos mtodos para gestionar los bloques de datos: Gestin automtica del espacio de segmento Gestin manual

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-24

Gestin Automtica del Espacio de Segmento


Es un mtodo de gestin del espacio libre de los segmentos de la base de datos. El seguimiento del espacio libre y el utilizado dentro de un segmento se realiza con bitmaps en lugar de con listas de bloques libres. Este mtodo ofrece:
Facilidad de gestin Mejor uso del espacio Mejor rendimiento para operaciones INSERT simultneas

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin Automtica del Espacio de Segmento Facilidad de Uso PCTUSED, FREELISTS, FREELIST GROUPS se gestionan automticamente. Mejor Uso del Espacio Todos los objetos, y especialmente aqullos con tamaos de fila que cambian bastante, utilizan el espacio de forma ms eficaz. Mejor Gestin de la Simultaneidad Se mejoran los ajustes en tiempo de ejecucin de las variaciones en el acceso simultneo. Nota: Antes de la base de datos Oracle9i Versin 2, el espacio de segmento de los LOB no se gestionaba automticamente.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-25

Gestin Automtica del Espacio de Segmento


Los segmentos de bitmap contienen un bitmap que describe el estado de cada bloque del segmento con respecto a su espacio disponible. El mapa est ubicado en un juego independiente de bloques llamados BMB (bloques de bitmaps). Al insertar una fila nueva, el servidor busca en el mapa un bloque con espacio suficiente. Cuando se modifica la cantidad de espacio disponible de un bloque, su nuevo estado se refleja en el bitmap.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-26

Configuracin de la Gestin Automtica del Espacio de Segmento


La gestin automtica del espacio de segmento slo se puede activar a nivel del tablespace y para tablespaces gestionados localmente.
CREATE TABLESPACE data02 DATAFILE /u01/oradata/data02.dbf SIZE 5M EXTENT MANAGEMENT LOCAL UNIFORM SIZE 64K SEGMENT SPACE MANAGEMENT AUTO;

Tras crear un tablespace, las especificaciones se aplican a todos los segmentos creados en dicho tablespace.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Configuracin de la Gestin Automtica del Espacio de Segmento Los segmentos con bitmaps se especifican mediante la clusula SEGMENT SPACE MANGEMENT AUTO del comando CREATE TABLESPACE, que no se puede modificar posteriormente. Si se definen especificaciones de PCTUSED, FREELIST y FREELIST GROUPS, stas se omiten. Los segmentos que se pueden gestionar con bitmaps son tablas normales, ndices, IOT (tablas organizadas por ndices) y LOB. Nota: Antes de la base de datos Oracle9i Versin 2, el espacio de segmento de los LOB no se gestionaba automticamente.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-27

Gestin Manual de Bloques de Datos


Permite configurar bloques de datos manualmente con parmetros como:
PCTFREE PCTUSED FREELIST

Este mtodo era el nico disponible en las versiones anteriores de Oracle

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin Manual de Bloques de Datos Con la gestin manual de bloques de la base de datos, se puede configurar el uso del espacio de bloques y la disponibilidad de un bloque. En la gestin manual se utilizan parmetros como PCTFREE, PCTUSED y FREELIST. En versiones anteriores, ste era el nico mtodo disponible para la gestin de bloques de datos. El mtodo manual es el modo por defecto.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-28

Uso del Espacio de Bloques


PCTFREE=20 PCTUSED=40

Inserciones

80%

Inserciones

(fuera de lista de bloques libres)

Inserciones

80% 40%
Insercin (en lista de bloques libres)

3
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Uso del Espacio de Bloques Los siguientes pasos explican cmo se gestiona el espacio en un bloque para un segmento de datos con PCTFREE=20 y PCTUSED=40: 1. Las filas se insertan en el bloque hasta que su espacio libre es igual o menor que el 20%. El bloque no est disponible para realizar inserciones cuando las filas ocupan el 80% (100 PCTFREE) o ms del espacio de datos disponible en el bloque. 2. El 20% restante se puede utilizar cuando el tamao de una fila aumente. Por ejemplo, cuando se actualiza una columna que era originalmente NULL para asignarle un valor. Por tanto, el uso del bloque puede exceder el 80% como resultado de las actualizaciones. 3. Si se suprimen filas de un bloque, o si el tamao de stas disminuye como resultado de las actualizaciones, el uso del bloque puede descender por debajo del 80%. Sin embargo, no se utiliza un bloque para realizar inserciones hasta que su uso desciende por debajo del valor de PCTUSED que, en este ejemplo, es del 40%. 4. Cuando el uso desciende por debajo del valor de PCTUSED, el bloque est disponible para realizar inserciones. A medida que se insertan filas en el bloque, aumenta el uso del mismo y se repite el ciclo desde el paso 1. Nota: Las instrucciones para definir PCTFREE y PCTUSED se analizan en las lecciones dedicadas a las tablas y los ndices, Gestin de Tablas y Gestin de ndices, respectivamente.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 9-29

Obtencin de Informacin acerca del Almacenamiento


Para obtener informacin acerca del almacenamiento, se pueden consultar las siguientes vistas: DBA_EXTENTS DBA_SEGMENTS DBA_TABLESPACES DBA_DATA_FILES DBA_FREE_SPACE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Consultas al Diccionario de Datos Puede ver las relaciones entre los tablespaces, los archivos de datos, los segmentos y las extensiones libres y utilizadas consultando el diccionario de datos. Cuando se crea un tablespace con uno o ms archivos, se agrega una fila a DBA_TABLESPACES. Se agrega tambin una fila a DBA_DATA_FILES por cada archivo de la base de datos. En este momento, el espacio de cada archivo de datos, sin incluir la cabecera de archivo, aparece como una extensin libre en DBA_FREE_SPACE. Cuando se crea un segmento, en DBA_SEGMENTS hay una fila visible . El espacio que est asignado a las extensiones de este segmento se puede ver en DBA_EXTENTS. Hay que ajustar DBA_FREE_SPACE para indicar que hay poco espacio libre en los archivos en los que se han creado las extensiones para el segmento. Es preciso tener en cuenta todo el espacio de un archivo (sin incluir el bloque de cabecera), tanto en DBA_FREE_SPACE como en DBA_EXTENTS.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-30

Consulta del Diccionario de Datos (continuacin) Vista DBA_SEGMENTS Consulte la vista DBA_SEGMENTS para obtener el nmero de extensiones y bloques asignados a un segmento. SQL> SELECT segment_name, tablespace_name, extents, blocks 2 FROM dba_segments 3 WHERE owner = 'HR'; SEGMENT_NAME TABLESPACE EXTENTS BLOCKS --------------- ---------- ---------- ---------REGIONS SAMPLE 1 8 LOCATIONS SAMPLE 1 8 DEPARTMENTS SAMPLE 1 8 JOBS SAMPLE 1 8 EMPLOYEES SAMPLE 1 8 JOB_HISTORY SAMPLE 1 8 5 rows selected. Vista DBA_EXTENTS Utilice la vista DBA_EXTENTS para comprobar las extensiones de un segmento determinado. SQL> SELECT extent_id, file_id, block_id, blocks 2 FROM dba_extents 3 WHERE owner='HR' 4 AND segment_name='EMPLOYEES'; EXTENT_ID FILE_ID BLOCK_ID BLOCKS --------- ------- -------- -----0 4 2 5 1 4 27 5 2 4 32 10 3 4 42 15 4 4 57 20 5 rows selected.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-31

Consulta del Diccionario de Datos (continuacin) Vista DBA_FREE_SPACE Utilice la vista DBA_FREE_SPACE para comprobar las extensiones de un segmento determinado. SQL> SELECT tablespace_name, count(*), 2> max(blocks), sum(blocks) 3> FROM dba_free_space 4> GROUP BY tablespace_name; TABLESPACE_NAME COUNT(*) MAX(BLOCKS ---------------DATA01 RBS SORT SYSTEM TEMP 5 rows selected. -------2 3 1 1 1 ---------1284 2329 1023 5626 2431

SUM(BLOCKS ---------1533 2419 1023 5626 2431

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-32

Resumen
En esta leccin, ha aprendido a: Utilizar tablespaces para:
Separar segmentos con el fin de facilitar la administracin Controlar la asignacin de espacio del usuario

Clasificar los segmentos por el tipo de informacin que se almacena en ellos Determinar los tamaos de las extensiones mediante la clusula de almacenamiento Controlar el uso del espacio de bloques Obtener informacin acerca de la estructura de almacenamiento

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-33

Prctica 9: Visin General


Esta prctica abarca la identificacin y obtencin de informacin acerca de los diversos tipos de estructuras de almacenamiento de la base de datos.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Prctica 9: Visin General Nota: Esta prctica se puede realizar con SQL*Plus o con Oracle Enterprise Manager y SQL*Plus Worksheet.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-34

Prctica 9: Relaciones y Estructura de Almacenamiento 1 Como usuario SYSTEM, ejecute el archivo de comandos lab09_01.sql para crear tablas e ndices. 2 Identifique los distintos tipos de segmentos de la base de datos. 3 Escriba una consulta para comprobar qu segmentos estn dentro de cinco extensiones menores que las extensiones mximas. Ignore el segmento de arranque. Esta consulta es til para identificar cualquier segmento que pueda generar errores durante futuras cargas de datos. Indicaciones - Realice una seleccin en DBA_EXTENTS. - Utilice las palabras clave segment_name, segment_type, max_extents, extents. 4 Qu archivos tienen espacio asignado para la tabla EMP? 5 Ejecute el archivo de comandos lab09_05.sql. 6 Enumere el espacio libre disponible por tablespace. La consulta debera mostrar el nmero de fragmentos, el espacio libre total y la mayor extensin libre de cada tablespace. 7 Enumere los segmentos que generarn errores debido a la falta de espacio cuando intenten asignar una extensin adicional.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-35

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I

9-36

Gestin de Datos de Deshacer

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Describir el objetivo de los datos de deshacer Implementar la gestin de SMU automtico Crear y configurar segmentos de deshacer Obtener informacin acerca de los segmentos de deshacer

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-2

Gestin de Datos de Deshacer


Existen dos mtodos para gestionar los datos de deshacer:
Gestin de SMU Automtico Gestin de SMU Manual

El trmino deshacer es equivalente al trmino rollback utilizado en versiones anteriores.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de Datos de Deshacer Gestin de SMU Automtico Oracle Server gestiona automticamente la creacin, la asignacin y el ajuste de los segmentos de deshacer. Gestin de SMU Manual El usuario gestiona manualmente la creacin, la asignacin y el ajuste de los segmentos de deshacer. Este mtodo era el nico disponible en versiones anteriores a Oracle9i. Puede encontrar ms informacin acerca de la gestin de SMU manual en el Apndice B: Gestin Manual de Datos de Deshacer.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-3

Segmento de Deshacer

Imagen antigua Tabla

Imagen nueva Segmento de deshacer

Actualizar la transaccin

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Segmento de Deshacer Los segmentos de deshacer se utilizan para guardar el valor antiguo (datos de deshacer) cuando un proceso cambia los datos de una base de datos. Almacena la ubicacin de los datos y los datos tal y como se encontraban antes de modificarlos. La cabecera de un segmento de deshacer contiene una tabla de transacciones donde se almacena la informacin acerca de las transacciones actuales que utilizan el segmento de deshacer. Una transaccin en serie slo utiliza un segmento de deshacer para almacenar todos sus datos de deshacer. En un segmento de deshacer pueden escribir muchas transacciones simultneas.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-4

Segmentos de Deshacer: Objetivo

Rollback de transacciones

Recuperacin de transacciones

Segmento de deshacer

Consistencia de lectura

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Segmentos de Deshacer: Objetivo Rollback de Transacciones Si una transaccin cambia una fila de una tabla, la imagen antigua de las columnas modificadas (datos de deshacer) se guarda en el segmento de deshacer. Si se hace rollback en la transaccin, Oracle Server restaura los valores originales escribindolos de nuevo en la fila del segmento de deshacer. Recuperacin de Transacciones Si la instancia falla mientras las transacciones estn en curso, Oracle Server debe deshacer los cambios no validados cuando se vuelve a abrir la base de datos. Este rollback forma parte de la recuperacin de transacciones. La recuperacin slo es posible porque los cambios realizados en el segmento de deshacer tambin estn protegidos por los archivos redo log online. Consistencia de Lectura Mientras las transacciones estn en curso, el resto de los usuarios de la base de datos no debe ver ninguno de los cambios no validados efectuados por estas transacciones. Adems, una sentencia no debe ver ninguno de los cambios que se han validado una vez comenzada la ejecucin de la sentencia. Tambin se utilizan los valores antiguos (datos de deshacer) de los segmentos de deshacer para proporcionar a los usuarios una imagen consistente de una sentencia determinada.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-5

Consistencia de Lectura
SELECT * FROM tabla

Tabla

Imagen nueva Imagen al inicio de la sentencia


Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Consistencia de Lectura Oracle Server garantiza que una sentencia ve los datos de un punto del tiempo consistente, aunque esos datos hayan sido modificados por otras transacciones. Cuando Oracle Server comienza a ejecutar una sentencia SELECT, determina el SCN (nmero de cambio del sistema) actual y se asegura de que la sentencia no procese ninguno de los cambios que no se hayan validado antes de este SCN. Suponga que ejecuta una consulta antigua cuando se estn realizando varios cambios. Si una fila tiene cambios que no se han validado al comienzo de la consulta, Oracle Server crear una imagen de lectura consistente de la fila recuperando la imagen previa a los cambios en el segmento de deshacer y aplicndolos a una copia de la fila en la memoria. Consistencia de Lectura de Transacciones Siempre se proporciona consistencia de lectura para una sentencia SQL. Sin embargo, puede solicitar consistencia de lectura para una transaccin de slo lectura emitiendo el siguiente comando al comienzo de la transaccin: SQL> SET TRANSACTION READ ONLY;

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-6

Consistencia de Lectura (continuacin) O bien, puede solicitar consistencia de lectura para una transaccin que realice sentencias DML emitiendo el siguiente comando al comienzo de la transaccin: SQL> SET TRANSACTION ISOLATION LEVEL SERIALIZABLE; En cualquier caso, Oracle Server proporciona datos con consistencia de lectura desde el comienzo de la transaccin. El uso de SERIALIZABLE puede afectar negativamente al rendimiento.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-7

Tipos de Segmentos de Deshacer


SYSTEM: Utilizado para los objetos del tablespace SYSTEM No SYSTEM: Se utiliza para los objetos de otros tablespaces:
Modo automtico: Requiere un tablespace UNDO Modo manual: Privado: Lo adquiere una nica instancia Pblico: Lo adquiere cualquier instancia

Diferido: Se utiliza cuando los tablespaces se ponen offline de forma inmediata, temporal o con fines de recuperacin

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tipos de Segmentos de Deshacer Segmento de Deshacer SYSTEM El segmento de deshacer SYSTEM se crea en el tablespace SYSTEM en el momento de crear una base de datos. Este segmento de deshacer slo se puede utilizar para aquellos cambios efectuados en los objetos del tablespace SYSTEM. El segmento de deshacer SYSTEM existe y funciona de la misma forma en modo manual y automtico. Segmentos de Deshacer No SYSTEM Una base de datos que contiene varios tablespaces necesita como mnimo un segmento de deshacer no SYSTEM para el modo manual o un tablespace UNDO para el modo automtico. Modo Manual En el modo manual, se puede utilizar un segmento de deshacer no SYSTEM creado por el administrador de la base de datos en aquellos cambios que se efecten en los objetos de cualquier tablespace no SYSTEM. Hay dos tipos de segmentos de deshacer no SYSTEM. Privados Los segmentos de deshacer privados son segmentos que una instancia pone online, ya que aparecen en el archivo de parmetros. No obstante, se pueden poner online de forma explcita emitiendo un comando ALTER ROLLBACK SEGMENT.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-8

Tipos de Segmentos de Deshacer (continuacin) Pblicos Los segmentos de deshacer pblicos forman un conjunto de segmentos de deshacer disponibles en una base de datos. Los segmentos de deshacer pblicos se utilizan normalmente con Oracle Real Application Clusters para crear un conjunto de segmentos de deshacer que puede utilizar cualquiera de las instancias de Real Application Clusters. Nota: El uso de los segmentos de deshacer pblicos se explica en el manual Oracle9i Real Application Clusters and Administration. Segmentos de Deshacer Diferidos Los segmentos de deshacer diferidos se pueden crear cuando un tablespace se pone offline. Se utilizan para realizar un rollback en las transacciones cuando el tablespace se vuelve a poner online. Se borran automticamente cuando ya no se necesitan. Puesto que Oracle Server mantiene los segmentos de deshacer diferidos, no es necesario mantenimiento alguno por parte del usuario.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-9

Gestin de SMU Automtico: Conceptos


Los datos de deshacer se gestionan con un tablespace UNDO. Se asigna un tablespace UNDO por instancia con espacio suficiente para la carga de trabajo de la instancia. Oracle Server mantiene automticamente los datos de deshacer en el tablespace UNDO.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de SMU Automtico: Conceptos Los segmentos de deshacer se crean con la regla de nomenclatura: _SYSSMUn$ Por ejemplo: _SYSSMU1$ _SYSSMU2$

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-10

Gestin de SMU Automtico: Configuracin


Configure dos parmetros en el archivo de inicializacin:
UNDO_MANAGEMENT UNDO_TABLESPACE

Cree como mnimo un tablespace UNDO.

undo1db01.dbf Archivo de inicializacin Tablespace UNDO

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de SMU Automtico: Configuracin Si slo existe un tablespace UNDO en la base de datos y UNDO_MANAGEMENT se define en AUTO, el parmetro UNDO_TABLESPACE es opcional. Oracle Server seleccionar automticamente el tablespace UNDO.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-11

Gestin de SMU Automtico: Parmetros de Inicializacin


UNDO_MANAGEMENT: Especifica si el sistema debe utilizar el modo AUTO o MANUAL UNDO_TABLESPACE: Especifica el uso de un tablespace UNDO concreto
UNDO_MANAGEMENT=AUTO UNDO_TABLESPACE=UNDOTBS

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de SMU Automtico: Parmetros de Inicializacin Parmetro UNDO_MANAGEMENT El parmetro UNDO_MANAGEMENT determina el modo de deshacer de la base de datos. Este parmetro se puede definir con el valor AUTO o MANUAL, y se debe definir en el archivo de parmetros de inicializacin. UNDO_MANAGEMENT no se puede modificar de forma dinmica una vez iniciada la base de datos. El modo AUTO define la base de datos en modo SMU automtico y requiere un tablespace UNDO. En el modo MANUAL, que es el valor por defecto, se pueden crear y gestionar segmentos de deshacer dentro de la base de datos cuando sea necesario, al igual que en versiones anteriores de Oracle Server. Parmetro UNDO_TABLESPACE Especifica el tablespace UNDO que se va a utilizar. Este parmetro se puede definir en los archivos de inicializacin o se puede modificar dinmicamente con el comando ALTER SYSTEM. SQL> ALTER SYSTEM SET undo_tablespace = UNDOTBS;

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-12

Gestin de SMU Automtico: Tablespace UNDO


Cree el tablespace UNDO con la base de datos agregando una clusula al comando CREATE DATABASE:
CREATE DATABASE db01 . . . UNDO TABLESPACE undo1 DATAFILE '/u01/oradata/undoldb01.dbf' SIZE 20M AUTOEXTEND ON

Tambin puede crearlo posteriormente con el comando CREATE UNDO TABLESPACE:


CREATE UNDO TABLESPACE undo1 DATAFILE '/u01/oradata/undo1db01.dbf' SIZE 20M;
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de SMU Automtico: Tablespace UNDO La gestin de SMU automtico requiere un tablespace UNDO. Puede existir ms de un tablespace UNDO en la base de datos, aunque slo puede estar activo uno de ellos. Puede crear el tablespace UNDO con la base de datos agregando una clusula a la sentencia CREATE DATABASE. Durante la creacin de la base de datos, si el parmetro UNDO_MANAGEMENT est definido en AUTO y se omite la clusula del tablespace UNDO de la sentencia CREATE DATABASE, Oracle Server crea un tablespace UNDO con el nombre SYS_UNDOTBS. El archivo de datos por defecto para el tablespace de archivo de datos SYS_UNDOTS tendr el nombre 'dbu1<oracle_sid>.dbf y estar ubicado en el directorio $ORACLE_HOME/dbs. Su tamao depende del sistema operativo. AUTOEXTEND se define en ON. Tras la creacin de la base de datos, puede crear un tablespace UNDO con el comando CREATE UNDO TABLESPACE.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-13

Gestin de SMU Automtico: Tablespace UNDO (continuacin) Uso de Oracle Enterprise Manager para Crear un Tablespace UNDO Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Seleccione Create en el men derecho del mouse. 3. Escriba el nombre y el tamao del archivo en la pgina del separador General. 4. Seleccione Undo en la regin Type. 5. Escriba la informacin de almacenamiento en la pgina del separador Storage. 6. Haga clic en Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-14

Gestin de SMU Automtico: Modificacin de un Tablespace UNDO


El comando ALTER TABLESPACE puede realizar cambios en los tablespaces UNDO. En el siguiente ejemplo se agrega otro archivo de datos al tablespace UNDO:
ALTER TABLESPACE undotbs ADD DATAFILE '/u01/oradata/undotbs2.dbf' SIZE 30M AUTOEXTEND ON;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de SMU Automtico: Modificacin de un Tablespace UNDO El servidor proporciona soporte para las siguientes clusulas cuando se modifica un tablespace UNDO. ADD DATAFILE RENAME DATAFILE [ONLINE|OFFLINE] BEGIN BACKUP END BACKUP

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-15

Gestin de SMU Automtico: Modificacin de un Tablespace UNDO (continuacin) Uso de Oracle Enterprise Manager para Modificar un Tablespace UNDO El siguiente ejemplo agrega un archivo de datos al tablespace de deshacer: Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Resalte el nombre del tablespace de deshacer en el que desea agregar un archivo de datos. 3. Seleccione Add a Datafile y complete las pginas del separador General y Storage. 4. Haga clic en Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-16

Gestin de SMU Automtico: Cambio de Tablespaces UNDO


Puede cambiar de un tablespace UNDO a otro. Slo puede asignar un tablespace UNDO a una base de datos al mismo tiempo. Puede existir ms de un tablespace UNDO en una instancia, pero slo uno puede estar activo. Utilice el comando ALTER SYSTEM para cambiar dinmicamente entre tablespaces UNDO.

ALTER SYSTEM SET UNDO_TABLESPACE=UNDOTBS2;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-17

Gestin de SMU Automtico: Cambio de Tablespaces UNDO Uso de Oracle Enterprise Manager para Cambiar un Tablespace UNDO Desde la Consola de OEM: 1. Navegue a Instance > Configuration. 2. Seleccione la pgina del separador Undo. 2. Seleccione el tablespace UNDO que quiere que sea el actual en la lista desplegable de tablespaces Current Undo. 3. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-18

Gestin de un SMU Automtico: Borrado de un Tablespace UNDO


El comando DROP TABLESPACE borra un tablespace UNDO.
DROP TABLESPACE UNDOTBS2;

Un tablespace UNDO slo se puede borrar si no hay ninguna instancia que lo est utilizando actualmente. Para borrar un tablespace UNDO activo:
Cambie a un tablespace UNDO nuevo. Borre el tablespace una vez que se hayan terminado todas las transacciones actuales.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de un SMU Automtico: Borrado de un Tablespace UNDO Cuando se borra un tablespace UNDO, no lo puede estar utilizando ninguna instancia y deben haber finalizado todas las transacciones del mismo. Si el tablespace UNDOTBS es el tablespace UNDO activo actual de la base de datos y se va a borrar, se debe definir un tablespace UNDO nuevo antes de borrarlo. En primer lugar, cree otro tablespace UNDO si no existe ninguno. A continuacin, utilice el comando ALTER SYSTEM para modificar el tablespace UNDO actual. SQL> ALTER SYSTEM SET undo_tablespace = UNDOTBS2; Puede borrar el tablespace UNDOTBS una vez que hayan finalizado todas las transacciones dentro del tablespace. Para determinar si existen transacciones activas, utilice la siguiente consulta: SQL> SELECT a.name,b.status 2 FROM v$rollname a, v$rollstat b 3 WHERE a.name IN ( SELECT segment_name 4 FROM dba_segments 6 AND a.usn = b.usn; NAME STATUS ------------------------- --------------_SYSSMU4$ PENDING OFFLINE
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-19

Creacin de SMU Automtico: Borrado de un Tablespace UNDO (continuacin) Los segmentos de deshacer que tienen el estado PENDING OFFLINE siguen conteniendo transacciones activas. Si la consulta no devuelve ninguna fila, significa que todas las transacciones han finalizado y que se puede borrar el tablespace con el siguiente comando. SQL> DROP TABLESPACE UNDOTBS; Oracle Server puede hacer referencia al tablespace UNDOTBS despus de cambiar a otro tablespace UNDO con el fin de proporcionar una lectura consistente para las consultas. Las consultas que requieran informacin del tablespace UNDOTBS una vez que ya no est disponible para proporcionar una lectura consistente, reciben el error: ORA-1555 snapshot too old.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-20

Creacin de SMU Automtico: Borrado de un Tablespace UNDO (continuacin) Uso de Oracle Enterprise Manager para Borrar un Tablespace UNDO Desde la Consola de OEM: 1. Navegue a Storage > Tablespaces. 2. Resalte el tablespace UNDO que desee eliminar. 3. Seleccione Remove en el men derecho del mouse. 4. Seleccione Delete associated datafiles from the OS. 5. Haga clic en Yes para confirmar la accin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-21

Gestin de SMU Automtico: Otros Parmetros


Parmetro UNDO_SUPPRESS_ERRORS:
Si se define en TRUE, este parmetro suprime errores mientras intenta ejecutar operaciones manuales en el modo AUTO.

Parmetro UNDO_RETENTION:
Este parmetro controla la cantidad de datos de deshacer que se debe retener para que la lectura sea consistente.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de SMU Automtico: Otros Parmetros Parmetro UNDO_SUPPRESS_ERRORS UNDO_SUPPRESS_ERRORS permite a los usuarios suprimir errores mientras se ejecutan operaciones del modo de gestin de SMU manual (por ejemplo, ALTER ROLLBACK SEGMENT ONLINE) en el modo de gestin de SMU automtico. El valor de este parmetro permite a los usuarios utilizar la caracterstica de tablespace de deshacer antes de convertir todos los archivos de comandos y programas de aplicacin al modo de gestin de SMU automtico. Por ejemplo, si tiene una aplicacin que utiliza la sentencia SET TRANSACTION USE ROLLBACK SEGMENT, puede agregar la sentencia ALTER SESSION SET UNDO_SUPPRESS_ERRORS = true a la aplicacin para suprimir el error ORA-30019. ORA-30019: Illegal rollback segment operation in Automatic Undo mode Parmetro UNDO_RETENTION Determina cunto tiempo es necesario retener los datos de deshacer para proporcionar lecturas consistentes. La retencin de los datos de deshacer permite realizar consultas ms largas y tambin requiere archivos de datos de mayor tamao para el tablespace UNDO. El parmetro UNDO_RETENTION, definido en segundos, se puede especificar en el archivo de inicializacin o se puede modificar dinmicamente con el comando ALTER SYSTEM. SQL> ALTER SYSTEM SET UNDO_RETENTION=900; El valor 900 retiene los datos de deshacer durante 15 minutos.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-22

Gestin de SMU Automtico: Otros Parmetros (continuacin) Incluso despus de definir UNDO_RETENTION, si el tamao del tablespace UNDO es demasiado pequeo, los datos de deshacer no se retienen durante el tiempo especificado. Oracle Server utiliza un algoritmo para asignar espacio en un tablespace UNDO y asigna espacio no vencido que no tiene transacciones activas antes de generar un fallo en una nueva transaccin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-23

Estadsticas de Datos de Deshacer

SELECT end_time,begin_time,undoblks FROM v$undostat; END_TIME -----------------22-JAN-01 13:44:18 22-JAN-01 13:43:04 22-JAN-01 13:33:04 22-JAN-01 13:23:04 22-JAN-01 13:13:04 22-JAN-01 13:03:04 22-JAN-01 12:53:04 22-JAN-01 12:43:04 22-JAN-01 12:33:04 BEGIN_TIME UNDO ------------------ ----22-JAN-01 13:43:04 19 22-JAN-01 13:33:04 1474 22-JAN-01 13:23:04 1347 22-JAN-01 13:13:04 1628 22-JAN-01 13:03:04 2249 22-JAN-01 12:53:04 1698 22-JAN-01 12:43:04 1433 22-JAN-01 12:33:04 1532 22-JAN-01 12:23:04 1075

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Estadsticas de Datos de Deshacer Vista V$UNDOSTAT Esta vista muestra un histograma de los datos estadsticos que indican el funcionamiento de la base de datos. Cada fila de la vista mantiene las estadsticas recopiladas en la instancia durante un intervalo de 10 minutos. Puede utilizar esta vista para calcular la cantidad de espacio de deshacer necesaria para la carga de trabajo actual. Oracle Server la utiliza para ajustar el uso de deshacer en el sistema. Esta vista est disponible tanto en el modo automtico como en el manual. Aunque el intervalo de tiempo suele ser de 10 minutos, la fila ms reciente devuelve la hora desde el inicio de su intervalo, que suele ser inferior a 10 minutos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-24

Gestin de SMU Automtico: Especificacin del Tamao de un Tablespace UNDO


Para determinar el tamao de un tablespace UNDO, son necesarios los siguientes tres datos: (UR) UNDO_RETENTION en segundos (UPS) Nmero de bloques de datos de deshacer generados por segundo (DBS) La sobrecarga vara en funcin del tamao de la extensin y del archivo (db_block_size)

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de SMU Automtico: Especificacin del Tamao de un Tablespace UNDO Para establecer el tamao de un tablespace UNDO, se requieren tres datos. Dos de ellos se pueden obtener del archivo de inicializacin: UNDO_RETENTION y DB_BLOCK_SIZE. El tercer elemento de la frmula requiere realizar una consulta en la base de datos. El nmero de bloques de deshacer generados por segundo se puede obtener de V$UNDOSTAT. La siguiente frmula calcula el nmero total de bloques generados y lo divide por la cantidad de tiempo controlado, en segundos: SQL> SELECT (SUM(undoblks) / SUM) 2 ((end_time - begin_time) * 86400) 3 FROM v$undostat; Las columnas END_TIME y BEGIN_TIME son tipos de dato DATE. Si los tipos de dato DATE se restan, el resultado se expresa en das. Para convertir los das en segundos, multiplique por 86.400, el nmero de segundos que tiene un da. El resultado de la consulta devuelve el nmero de bloques de deshacer por segundo. Este valor se debe multiplicar por el tamao de un bloque de deshacer, que es el mismo que el del bloque de base de datos definido en DB_BLOCK_SIZE. La siguiente consulta calcula el nmero de bytes necesario:

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-25

Gestin de SMU Automtico: Especificacin del Tamao de un Tablespace UNDO (continuacin) SQL> SELECT (UR * (UPS * DBS)) + (DBS * 24) AS "Bytes" 2 FROM (SELECT value AS UR 3 FROM v$parameter 4 WHERE name = 'undo_retention'), 5 (SELECT (SUM(undoblks)/SUM 6 (((end_time-begin_time)*86400))) AS UPS 7 FROM v$undostat), 8 (SELECT value AS DBS 9 FROM v$parameter 10 WHERE name = 'db_block_size'); Bytes ---------19106213 Para convertir los bytes en megabytes, divdalos por 1.048.576 bytes. El resultado para esta base de datos es de 18,22 MB. Para obtener los mejores resultados, debe realizar el clculo en el momento del da en el que la base de datos tenga su mayor carga de trabajo.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-26

Gestin de SMU Automtico: Cuota de Deshacer


Las transacciones largas y las que no se escriben correctamente pueden consumir recursos muy valiosos. Con la cuota de deshacer, puede agrupar a los usuarios y asignar un lmite de espacio de deshacer mximo al grupo. UNDO_POOL, una directiva de Resource Manager, define la cantidad de espacio permitida para un grupo de recursos. Si un grupo supera el lmite, no se permiten transacciones nuevas para dicho grupo hasta que las transacciones actuales que se estn finalizando o interrumpiendo liberen el espacio de deshacer.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de SMU Automtico: Cuota de Deshacer Con los planes de recursos, puede agrupar a los usuarios y establecer lmites sobre la cantidad de recursos que puede utilizar el grupo. Para limitar la cantidad de datos de deshacer generada por un grupo, defina un valor para UNDO_POOL. El valor por defecto es ilimitado. Si un grupo supera su lmite, recibir un error y no se podrn realizar nuevas transacciones para el mismo hasta que las transacciones actuales finalicen o se interrumpan. ORA-30027: "Undo quota violation - failed to get %s (bytes)" Causa: Se ha superado la cantidad de acciones de deshacer asignada al grupo de consumidores de esta sesin. Accin: Pida al DBA que aumente la cuota de deshacer o espere a que se validen otras transacciones antes de continuar. Nota: Resource Management se explica en mayor profundidad en la leccin Gestin de la Seguridad de Contraseas y Recursos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-27

Obtencin de Informacin acerca de Segmentos de Deshacer


Para obtener informacin acerca de los segmentos de deshacer, consulte las siguientes vistas:
DBA_ROLLBACK_SEGS

Vistas Dinmicas de Rendimiento


V$ROLLNAME V$ROLLSTAT V$UNDOSTAT V$SESSION V$TRANSACTION

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Obtencin de Informacin acerca de Segmentos de Deshacer Para obtener informacin acerca de todos los segmentos de deshacer de la base de datos, consulte la vista DBA_ROLLBACK_SEGS. SQL> SELECT segment_name,owner,tablespace_name,status 2 FROM dba_rollback_segs; SEGMENT_NA OWNER TABLESPACE STATUS ---------- ------ ---------- -----SYSTEM SYS SYSTEM ONLINE _SYSSMU1$ PUBLIC UNDO1 ONLINE _SYSSMU2$ PUBLIC UNDO1 ONLINE _SYSSMU3$ PUBLIC UNDO1 ONLINE _SYSSMU4$ PUBLIC UNDO1 ONLINE La informacin acerca de los segmentos de deshacer que se encuentran offline slo se puede ver en DBA_ROLLBACK_SEGS. Las vistas dinmicas de rendimiento slo muestran los segmentos de deshacer online. La columna OWNER especifica el tipo de segmento de deshacer: SYS: Hace referencia a un segmento de deshacer privado PUBLIC: Hace referencia a un segmento de deshacer pblico
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-28

Obtencin de Informacin acerca de Segmentos de Deshacer (continuacin) Vistas V$ROLLSTAT y V$ROLLNAME Una la vistas V$ROLLSTAT y V$ROLLNAME para obtener las estadsticas de los segmentos de deshacer que utiliza la instancia actualmente. Ejemplo SQL> SELECT n.name, s.extents, s.rssize,s.hwmsize, 2 s.xacts, s.status 3 FROM v$rollname n, v$rollstat s 4 WHERE n.usn = s.usn; NAME EXTENTS RSSIZE HWMSIZE XACTS STATUS ---------- ------- ---------- ---------- ---------- -----SYSTEM 7 425984 425984 0 ONLINE _SYSSMU1$ 5 2289664 2289664 0 ONLINE _SYSSMU2$ 10 6549504 6549504 0 ONLINE _SYSSMU3$ 7 4386816 4386816 0 ONLINE _SYSSMU4$ 6 4321280 4321280 0 ONLINE Vistas V$TRANSACTION y V$SESSION Para comprobar el uso que hacen las transacciones activas actuales de un segmento de deshacer, una las vistas V$TRANSACTION y V$SESSION. Ejemplo SQL> 2 3 4 SELECT s.username, t.xidusn, t.ubafil, t.ubablk, t.used_ublk FROM v$session s, v$transaction t WHERE s.saddr = t.ses_addr;

USERNAME XIDUSN UBAFIL UBABLK USED_UBLK -------- ---------- ---------- ---------- ---------HR 2 2 5005 1

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-29

Resumen
En esta leccin, ha aprendido a: Configurar la Gestin de SMU Automtico Crear un tablespace UNDO Establecer correctamente el tamao de un tablespace UNDO Obtener informacin acerca de los segmentos de deshacer

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-30

Prctica 10: Visin General


Esta prctica abarca los siguientes temas: Creacin de un tablespace UNDO Cambio entre tablespaces UNDO Borrado de un tablespace UNDO

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Prctica 10: Visin General Nota: Esta prctica se puede realizar con SQL*Plus o con Oracle Enterprise Manager y SQL*Plus Worksheet.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-31

Prctica 10: Gestin de Datos de Deshacer 1 Conctese como usuario SYSTEM/MANAGER y enumere los segmentos de deshacer del tablespace UNDOTBS. 2 Cree el tablespace de deshacer UNDO2, con un tamao de 15 MB, en $HOME/oradata/u03. Enumere los segmentos de deshacer del tablespace UNDO2. 3 En una sesin telnet nueva, inicie SQL*Plus, conctese como usuario HR y ejecute el archivo de comandos lab10_03.sql para insertar una fila en la tabla DEPARTMENTS. No valide, haga rollback ni salga de la sesin. 4 En la sesin en la que est conectado como SYS, con el comando ALTER SYSTEM, cambie el tablespace UNDO de UNDOTBS a UNDO2 utilizando SCOPE=BOTH. 5 Como SYS, borre el tablespace UNDOTBS. Utilice la clusula INCLUDING CONTENTS AND DATAFILES. Qu sucede? 6 Enumere los segmentos de deshacer del tablespace UNDOTBS y su estado. Compare esta lista con la del paso 1. Indicacin: Consulte la vista del diccionario de datos DBA_ROLLBACK_SEGS. 7 En la sesin en la que est conectado como HR, haga rollback en la transaccin y salga de la sesin. 8 En la sesin en la que est conectado como SYS, borre el tablespace UNDOTBS. Qu sucede? 9 Como SYS, emita el siguiente comando:
ALTER SYSTEM SET undo_retention=0 SCOPE=memory;

Ahora, borre el tablespace UNDOTBS. Qu sucede? Nota: Es posible que se produzca un retraso en el borrado del tablespace.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 10-32

Gestin de Tablas

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Identificar los distintos mtodos de almacenamiento de datos Describir los tipos de dato Oracle Distinguir entre un ROWID ampliado y uno restringido Describir la estructura de una fila Crear tablas regulares y temporales Gestionar las estructuras de almacenamiento de una tabla Reorganizar, truncar y borrar una tabla Borrar una columna de una tabla

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-2

Almacenamiento de Datos de Usuario

Tabla regular

Tabla particionada

Tabla organizada por ndice

Agrupamiento

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Almacenamiento de Datos de Usuario Hay varios mtodos para almacenar datos de usuario en una base de datos Oracle: Tablas regulares Tablas particionadas Tablas organizadas por ndices Tablas agrupadas Nota: Las tablas particionadas, las organizadas por ndices y las agrupadas se explican en otros cursos. Tablas Regulares Una tabla regular (denominada normalmente tabla) es la forma ms frecuente de almacenar los datos de usuario. Se trata de la tabla por defecto y es el tema principal de esta leccin. Los DBA tienen un control muy limitado sobre la distribucin de las filas en una tabla. Las filas se pueden almacenar en cualquier orden, dependiendo de la actividad de la tabla.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-3

Almacenamiento de Datos de Usuario (continuacin) Tabla Particionada Una tabla particionada permite crear aplicaciones escalables. Tiene las siguientes caractersticas: Una tabla particionada tiene una o ms particiones, cada una de las cuales almacena filas que se han particionado mediante la particin de por rangos, la particin de comprobacin aleatoria, la particin compuesta o la particin de lista. Cada particin dentro de una tabla particionada es un segmento y se puede ubicar en un tablespace distinto. Las particiones son tiles para tablas de gran tamao que se pueden consultar o manipular mediante varios procesos simultneamente. Existen comandos especiales para gestionar las particiones de una tabla. Tablas Organizadas por ndices Una tabla organizada por ndice es como una tabla de memoria con un ndice de clave primaria en una o ms de sus columnas. Sin embargo, en lugar de mantener dos espacios de almacenamiento distintos para la tabla y un ndice B-Tree, una tabla organizada por ndice mantiene un nico B-Tree que contiene la clave primaria de la tabla y otros valores de columna. Puede existir un segmento de desbordamiento si se define el valor PCTHRESHOLD y cuando las longitudes de fila mayores requieren el rea de desbordamiento. Las tablas organizadas por ndices permiten un rpido acceso basado en clave a los datos de la tabla para realizar las consultas que requieren coincidencias exactas y bsquedas por rango. Adems, se reducen los requisitos de almacenamiento, porque las columnas clave no se duplican en la tabla y en el ndice. Las columnas sin clave restantes se almacenan en el ndice, a menos que la entrada del ndice sea muy grande; en ese caso, Oracle Server proporciona una clusula OVERFLOW para solucionar el problema.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-4

Almacenamiento de Datos de Usuario (continuacin) Tabla Agrupada Las tablas agrupadas son un mtodo opcional para almacenar datos de tabla. Los agrupamientos estn compuestos por una tabla o un grupo de tablas que comparten los mismos bloques de datos, que estn agrupadas porque comparten columnas comunes y se suelen utilizar juntas. Los agrupamientos tienen las siguientes caractersticas: Los agrupamientos tienen una clave de agrupamiento, que se utiliza para identificar las filas que se deben almacenar juntas. La clave de agrupamiento puede estar formada por una o ms columnas. Las tablas de un agrupamiento tienen columnas que se corresponden con la clave de agrupamiento. Los agrupamientos son un mecanismo transparente para las aplicaciones que utilizan las tablas. Los datos de una tabla agrupada se pueden manipular como si estuvieran almacenados en una tabla regular. La actualizacin de una de las columnas de la clave de agrupamiento puede conllevar la migracin de la fila. La clave de agrupamiento es independiente de la clave principal. Las tablas de un agrupamiento pueden tener una clave principal, que puede ser la clave de agrupamiento o un juego de columnas distinto. Los agrupamientos se suelen crear para mejorar el rendimiento. Es posible que el acceso aleatorio a los datos agrupados sea ms rpido, pero las exploraciones completas de la tabla en las tablas agrupadas suelen ser ms lentas. Los agrupamientos vuelven a normalizar el almacenamiento fsico de las tablas sin afectar a la estructura lgica.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-5

Tipos de Dato Incorporados de Oracle


Tipo de dato Definidos por el usuario Escalar CHAR(N), NCHAR(N) VARCHAR2(N), NVARCHAR2(N) NUMBER(P,S) DATE TIMESTAMP RAW(N) BLOB, CLOB, NCLOB, BFILE LONG, LONG RAW ROWID, UROWID Incorporados Recopilacin Relacin

VARRAY TABLE

REF

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tipos de Dato Incorporados de Oracle Oracle Server proporciona varios tipos de dato incorporados para almacenar datos escalares, recopilaciones y relaciones. Tipos de Dato Escalares Datos de caracteres: Los datos de caracteres se pueden almacenar como cadenas de longitud fija o de longitud variable en la base de datos. Los tipos de dato de caracteres de longitud fija, como CHAR y NCHAR, se almacenan con espacios rellenados. NCHAR es un tipo de dato de soporte de globalizacin, que permite almacenar juegos de caracteres tanto de ancho fijo como de ancho variable. El tamao mximo se determina por el nmero de bytes necesario para almacenar un carcter, con un lmite superior de 2.000 bytes por fila. Por defecto, es 1 carcter o 1 byte, dependiendo del juego de caracteres. Los tipos de dato de caracteres de longitud variable slo utilizan el nmero de bytes necesario para almacenar el valor real de la columna y pueden variar de tamao para cada fila, hasta un mximo de 4.000 bytes. VARCHAR2 y NVARCHAR2 son ejemplos de tipos de dato de caracteres de longitud variable.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-6

Tipos de Dato Incorporados de Oracle (continuacin) Tipos de Dato Escalares (continuacin) Tipo de dato numrico: Los nmeros de una base de datos Oracle siempre se almacenan como datos de longitud variable. Pueden almacenar hasta 38 dgitos significativos. Los tipos de dato numricos requieren: Un byte para el exponente Un byte por cada dos dgitos significativos en la mantisa Un byte para nmeros negativos, si el nmero de dgitos significativos es menor de 38 bytes Tipo de dato DATE: Oracle Server almacena fechas en campos de longitud fija de siete bytes. Un tipo de dato DATE de Oracle siempre incluye la hora. Tipo de dato TIMESTAMP: Este tipo de dato almacena la fecha y la hora, incluyendo las fracciones de segundo, hasta un mximo de nueve decimales. TIMESTAMP WITH TIME ZONE y TIMESTAMP WITH LOCAL TIME ZONE pueden utilizar las zonas horarias para determinar datos como el horario de verano. TIMESTAMP y TIMESTAMP WITH LOCAL TIME ZONE se pueden utilizar en claves primarias, mientras que TIMESTAMP WITH TIME ZONE no. Tipo de dato RAW: Este tipo de dato permite almacenar pequeos datos binarios. Oracle Server no realiza conversiones de juegos de caracteres cuando se transmiten datos RAW entre las mquinas de una red o si los datos RAW se mueven desde una base de datos a otra mediante utilidades de Oracle. El nmero de bytes necesario para almacenar el valor real de la columna puede variar de tamao para cada fila, hasta un mximo de 2.000 bytes. Tipos de dato LONG, LONG RAW y LOB (objeto de gran tamao) Oracle proporciona seis tipos de dato para almacenar LOB: CLOB y LONG para datos de caracteres de ancho fijo de gran tamao NCLOB para datos de gran tamao del juego de caracteres nacional de ancho fijo BLOB y LONG RAW para almacenar datos no estructurados BFILE para almacenar datos no estructurados en archivos del sistema operativo Los tipos de dato LONG y LONG RAW se utilizaban anteriormente para datos no estructurados, como imgenes binarias, documentos o informacin geogrfica, y se incluyen fundamentalmente para ofrecer compatibilidad con versiones anteriores. Estos tipos de dato se han sustituido por los tipos de dato LOB. Los tipos de dato LOB son distintos de los tipos LONG y LONG RAW, y no son intercambiables. Los LOB no soportan la API (interfaz de programacin de aplicaciones) de LONG y viceversa.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-7

Tipos de Dato Incorporados de Oracle (continuacin) Tipos de dato LONG, LONG RAW y LOB (objeto de gran tamao) (continuacin) Es til explicar la funcionalidad LOB comparndola con los tipos antiguos (LONG y LONG RAW). En la siguiente tabla, los LONG hacen referencia a LONG y LONG RAW, y los LOB hacen referencia a todos los tipos de dato LOB. LONG, LONG RAW Una nica columna por tabla Hasta 2 GB Datos almacenados en lnea Sin soporte de tipo de objeto Acceso secuencial a fragmentos LOB Mltiples columnas por tabla Hasta 4 GB Datos almacenados en lnea o fuera de lnea Soporta tipos de objetos Acceso aleatorio a fragmentos

Los LOB almacenan un localizador en cualquier lugar de la tabla y de los datos, a menos que el tamao sea menor que el tamao mximo de un tipo de dato VARCHAR2, que es de 4.000 bytes; los LONG guardan todos los datos en lnea. Adems, los LOB permiten guardar datos en un segmento y un tablespace independiente, o en un archivo host. Los LOB soportan atributos de tipo de objeto (a excepcin de los NCLOB) y la replicacin, mientras que los tipos de dato LONG no. Los LONG se almacenan principalmente como partes de filas encadenadas, en donde una parte de una fila de un bloque apunta a la siguiente que est almacenada en otro bloque. Por tanto, es necesario acceder a ellos de forma secuencial. Por el contrario, los LOB soportan el acceso aleatorio por partes a los datos mediante una interfaz de estilo de un archivo. Tipos de Dato ROWID y UROWID ROWID es un tipo de dato que se puede consultar junto con otras columnas de una tabla. Tiene las siguientes caractersticas: ROWID es un identificador nico para cada fila de la base de datos. ROWID no se almacena explcitamente como un valor de columna. Aunque ROWID no muestra directamente la direccin fsica de una fila, se puede utilizar para localizarla. ROWID ofrece la forma ms rpida de acceder a una fila de una tabla. Los ROWID se almacenan en ndices para especificar las filas con un juego determinado de valores clave. Con la versin Oracle8.1, Oracle Server proporciona un nuevo tipo de dato nico conocido como ROWID o UROWID universal. Soporta los ROWID de tablas ajenas (tablas que no son de Oracle) y puede almacenar todo tipo de ROWID. Por ejemplo, el tipo de dato UROWID es necesario para almacenar un ROWID para las filas almacenadas en una tabla IOT (tabla organizada por ndice). Para poder utilizar UROWID, el valor del parmetro COMPATIBLE debe definirse en Oracle8.1 o superior.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-8

Tipos de Dato Incorporados de Oracle (continuacin) Tipos de Dato de Recopilacin Existen dos tipos de dato de recopilacin para almacenar datos que son repetitivos de una fila determinada de una tabla. Antes de Oracle8i, para definir y utilizar recopilaciones era necesaria la opcin Objects. A continuacin, se presenta una breve descripcin de estos tipos. Matrices variables (VARRAY): Las matrices variables son tiles para almacenar listas que contienen un pequeo nmero de elementos, como los nmeros de telfono de un cliente. Las VARRAY tienen las siguientes caractersticas: Una matriz es un juego ordenado de elementos de datos. Todos los elementos de una matriz determinada tienen el mismo tipo de dato. Cada elemento tiene un ndice, que es un nmero que se corresponde con la posicin del elemento en la matriz. El nmero de elementos de una matriz determina el tamao de la misma. Oracle Server permite que las matrices tengan un tamao variable, por eso se llaman VARRAY, pero el tamao mximo se debe especificar cuando se declara el tipo de matriz. Tablas anidadas: Las tablas anidadas son un medio de definir una tabla como una columna situada dentro de una tabla. Se pueden utilizar para almacenar juegos que pueden tener un gran nmero de registros, como el nmero de elementos de un pedido. Las tablas anidadas suelen tener las siguientes caractersticas: Una tabla anidada es un juego desordenado de registros o de filas. Las filas de una tabla anidada tienen la misma estructura. Las filas de una tabla anidada se almacenan de forma independiente a la tabla principal, con un puntero desde la fila correspondiente de la tabla principal. El DBA puede definir las caractersticas de almacenamiento de la tabla anidada. No hay un tamao mximo predeterminado para las tablas anidadas. Tipos de Dato de Relacin (REFs) Los tipos de relacin se utilizan como punteros dentro de la base de datos. Para utilizar estos tipos se requiere la opcin Objects. Por ejemplo, cada elemento que est ordenado podra apuntar o hacer referencia a una fila de la tabla PRODUCTS, sin que sea necesario almacenar el cdigo del producto. Tipos de Dato Definidos por el Usuario Oracle Oracle Server permite que el usuario defina tipos de dato abstractos y que los utilice dentro de la aplicacin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-9

Formato ROWID
Formato ROWID ampliado
OOOOOO Nmero de objeto de datos FFF Nmero de archivo relativo BBBBBB Nmero de bloque RRR Nmero de fila

Formato ROWID restringido


BBBBBBBB Nmero de bloque . RRRR Nmero de fila . FFFF Nmero de archivo

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Formato ROWID Un formato ROWID ampliado necesita 10 bytes de almacenamiento en disco y se muestra mediante 18 caracteres. Consta de los siguientes componentes: Data object number: Se asigna a cada objeto de datos como, por ejemplo, una tabla o un ndice, cuando se crea, y es nico dentro de la base de datos. Relative file number: Es nico para cada archivo de un tablespace. Block number: Representa la posicin del bloque que contiene la fila dentro del archivo. Row number: Identifica la posicin de la ranura del directorio de filas en la cabecera de bloque. Internamente, el nmero de objeto de datos necesita 32 bits, el nmero de archivo relativo necesita 10 bits, el nmero de bloque necesita 22 bits y el nmero de fila necesita 16 bits, lo que supone un total de 80 bits o 10 bytes. Un ROWID ampliado se muestra con un esquema de codificacin en base 64 que utiliza seis posiciones para el nmero de objeto de datos, tres posiciones para el nmero de archivo relativo, seis posiciones para el nmero de bloque y tres posiciones para el nmero de fila. El esquema de codificacin en base 64 utiliza los caracteres A-Z, a-z, 0-9 y /. Esto constituye un total de 64 caracteres, tal y como se muestra en el siguiente ejemplo:
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-10

Formato ROWID (continuacin) SQL> SELECT department_id, rowid 2 FROM hr.departments; DEPARTMENT_ID ROWID -----------------------------10 20 30 40 50 60 AAABQMAAFAAAAA6AAA AAABQMAAFAAAAA6AAB AAABQMAAFAAAAA6AAC AAABQMAAFAAAAA6AAD AAABQMAAFAAAAA6AAE AAABQMAAFAAAAA6AAF

En este ejemplo: AAABQM es el nmero de objeto de datos. AAF es el nmero de archivo relativo. AAAAA6 es el nmero de bloque. AAA es el nmero de fila para el departamento con ID = 10. ROWID Restringido en Oracle7 y Versiones Anteriores Las versiones de bases de datos Oracle anteriores a Oracle8 utilizaban el formato ROWID restringido. Un ROWID restringido slo utilizaba 6 bytes internamente y no contena el nmero de objeto de datos. Este formato era aceptable en Oracle7 o en versiones anteriores porque los nmeros de archivos eran nicos dentro de una base de datos. Por lo tanto, las versiones anteriores no permitan ms de 1.022 archivos de datos. En la actualidad, se es el lmite de un tablespace. A pesar de que Oracle8 elimin esta restriccin utilizando nmeros de archivo relativos de tablespace, el ROWID restringido todava se utiliza en objetos como ndices no particionados en tablas no particionadas, donde todas las entradas del ndice hacen referencia a filas del mismo segmento. Ubicacin de una Fila con ROWID Puesto que un segmento slo puede residir en un tablespace, Oracle Server puede determinar el tablespace que contiene una fila utilizando el nmero de objeto de datos. El nmero de archivo relativo del tablespace sirve para encontrar el archivo, el nmero de bloque sirve para encontrar el bloque que contiene la fila y el nmero de fila sirve para encontrar la entrada de directorio de fila. La entrada de directorio de fila se puede utilizar para encontrar el comienzo de la fila. Por lo tanto, ROWID se puede utilizar para encontrar cualquier fila de una base de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-11

Estructura de una Fila

Cabecera de fila Bloque de base de datos Longitud de columna Valor de columna

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Estructura de una Fila Los datos de las filas se almacenan en bloques de la base de datos en forma de registros de longitud variable. Las columnas de una fila se almacenan normalmente en el orden en el que estn definidas y no se almacena ninguna columna de valor NULL final. Nota: Se necesita una longitud de columna de un slo byte para las columnas de valor NULL no final. Cada fila de una tabla tiene: Cabecera de fila: Se utiliza para almacenar el nmero de columnas de la fila, la informacin de encadenamiento y el estado de bloqueo de la fila. Datos de fila: Oracle Server almacena la longitud y el valor de cada columna (se necesita un byte para almacenar la longitud de la columna si sta requiere ms de 250 bytes de almacenamiento, en cuyo caso se utilizarn tres bytes para la longitud de la columna. El valor de la columna se almacena inmediatamente despus de los bytes de longitud de la columna). Las filas adyacentes no necesitan espacio entre ellas. Cada fila del bloque tiene una ranura en el directorio de filas. La ranura del directorio apunta al principio de la fila.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-12

Creacin de una Tabla


CREATE TABLE hr.employees( employee_id NUMBER(6), first_name VARCHAR2(20), last_name VARCHAR2(25), email VARCHAR2(25), phone_number VARCHAR2(20), hire_date DATE DEFAULT SYSDATE, job_id VARCHAR2(10), salary NUMBER(8,2), commission_pct NUMBER (2,2), manager_id NUMBER(6), department_id NUMBER(4)) TABLESPACE USERS;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de una Tabla El comando CREATE TABLE sirve para crear tablas relacionales o tablas de objetos. Tabla relacional: Es la estructura bsica para almacenar los datos de usuario. Tabla de objetos: Es una tabla que utiliza un tipo de objeto para una definicin de columna. Una tabla de objeto es una tabla que se define explcitamente para almacenar la instancia de objeto de un tipo concreto. Nota: Las tablas de objetos no se cubren en esta leccin. Instrucciones para Crear una Tabla Coloque las tablas en tablespaces independientes. Utilice tablespaces gestionados localmente para evitar la fragmentacin. Nota: Consulte el documento Oracle9i SQL Reference para obtener ms informacin acerca de las distintas clusulas y parmetros que se pueden definir al utilizar el comando CREATE TABLE. Para crear una tabla relacional en su propio esquema, debe tener el privilegio de sistema CREATE TABLE. Para crear una tabla en el esquema de otro usuario, debe tener el privilegio de sistema CREATE ANY TABLE. Nota: Consulte la leccin "Gestin de Privilegios" para obtener ms detalles sobre el otorgamiento de permisos.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-13

Creacin de una Tabla (continuacin) En el siguiente ejemplo se crea la tabla DEPARTMENTS en un tablespace gestionado por el diccionario de datos. SQL> CREATE TABLE hr.departments( 2 department_id NUMBER(4), 3 department_name VARCHAR2(30), 4 manager_id NUMBER(6), 5 location_id NUMBER(4)) 6 STORAGE(INITIAL 200K NEXT 200K 7 PCTINCREASE 0 MINEXTENTS 1 MAXEXTENTS 5) 8 TABLESPACE data; La sintaxis anterior es un subjuego de la clusula CREATE TABLE. Clusula STORAGE La clusula STORAGE especifica las caractersticas de almacenamiento de la tabla. El almacenamiento asignado a la primera extensin es de 200 KB. Si se requiere una segunda extensin, se crear con 200 KB, que tambin est definida por el valor NEXT. Si es necesaria una tercera extensin, se crear con 200 KB, porque PCTINCREASE se ha definido en cero. La cantidad mxima de extensiones que se puede utilizar est definida en cinco y la mnima en uno. MINEXTENTS: Nmero mnimo de extensiones que se va a asignar. MAXEXTENTS: Nmero mximo de extensiones que se va a asignar. Si se especifica que MINEXTENTS tenga un valor mayor que uno y el tablespace contiene ms de un archivo de datos, las extensiones se distribuirn entre los distintos archivos de datos. PCTINCREASE: Porcentaje de aumento del tamao de las extensiones despus de la extensin NEXT y las siguientes.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-14

Creacin de una Tabla (continuacin) Los parmetros de uso de bloques tambin se pueden especificar en la clusula de atributos fsicos de la tabla. PCTFREE: Especifica el porcentaje de espacio de cada bloque de datos de la tabla. El valor de PCTFREE debe oscilar entre 0 y 99. El valor cero significa que el bloque entero se puede rellenar con inserciones de filas nuevas. El valor por defecto es 10. Este valor reserva el 10% de cada bloque para las actualizaciones de filas existentes y permite realizar inserciones de filas nuevas para rellenar el 90% de cada bloque como mximo. PCTUSED: Especifica el porcentaje mnimo de espacio utilizado que se mantiene para cada bloque de datos de la tabla. Un bloque est disponible para realizar inserciones de filas cuando su espacio utilizado se encuentra por debajo de PCTUSED. PCTUSED se especifica como un nmero entero entre 0 y 99, y su valor por defecto es 40. La combinacin de PCTFREE y PCTUSED determina si las filas nuevas se insertan en bloques de datos existentes o en bloques nuevos. La suma de los dos debe ser igual o menor que 100. Estos parmetros sirven para utilizar ms eficazmente el espacio de una tabla. Nota: PCTUSED, FREELISTS y FREELIST GROUPS se han sustituido por la caracterstica de gestin automtica del espacio de segmento de Oracle9i. Consulte la leccin Relaciones y Estructura de Almacenamiento para obtener ms informacin acerca de esta caracterstica. INITRANS: Especifica el nmero inicial de entradas de transacciones asignadas en cada bloque de datos a la tabla. Este valor puede oscilar entre 1 y 255, y tiene como valor por defecto uno. INITRANS garantiza que un nmero mnimo de transacciones simultneas pueda actualizar el bloque. En general, no se debe modificar el valor por defecto. MAXTRANS: Especifica el nmero mximo de transacciones simultneas que puede actualizar un bloque de datos asignado a la tabla. Este lmite no se aplica a las consultas. El valor puede oscilar entre 1 y 255 y el valor por defecto es una funcin del tamao de bloque de datos. Clusula TABLESPACE La clusula TABLESPACE especifica el tablespace donde se crear la tabla. La tabla del ejemplo residir en el tablespace data. Si omite la clusula TABLESPACE, Oracle crea el objeto en el tablespace por defecto del propietario del esquema que contiene la tabla. Nota: Consulte la leccin "Gestin de Tablespaces" para obtener ms informacin acerca de los tablespaces.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-15

Creacin de una Tabla (continuacin) Uso de Oracle Enterprise Manager para Crear una Tabla Desde la Consola de OEM: Nota: OEM ofrece numerosas opciones para crear una tabla. 1. Navegue a Schema > [Nombre del esquema] > Tables. 2. Seleccione Create en el men derecho del mouse. 3. Escriba la informacin de la tabla en las diversas pginas. 4. Haga clic en Create.

Creacin de una tabla con el asistente: 1. Navegue a Schema > [Nombre del esquema] > Tables. 2. Seleccione Create Using Wizard en el men derecho del mouse. 3. Escriba la informacin de la tabla. 4. Haga clic en Finish.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-16

Creacin de una Tabla: Instrucciones


Coloque las tablas en tablespaces independientes. Utilice tablespaces gestionados localmente para evitar la fragmentacin. Utilice pocos tamaos de extensin estndar para las tablas con el fin de reducir la fragmentacin del tablespace.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de una Tabla: Instrucciones Coloque tablas en tablespaces independientes y no en el tablespace que tiene segmentos de deshacer, segmentos temporales e ndices. Coloque tablas en tablespaces gestionados localmente para evitar la fragmentacin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-17

Creacin de Tablas Temporales


Se crean con la clusula GLOBAL TEMPORARY:
CREATE GLOBAL TEMPORARY TABLE hr.employees_temp AS SELECT * FROM hr.employees;

Las tablas slo retienen los datos durante una transaccin o una sesin. Los bloqueos DML no se adquieren en los datos. Se pueden crear ndices, vistas y disparadores en las tablas temporales.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de Tablas Temporales Se pueden crear tablas temporales para almacenar datos privados de sesin que slo existan mientras dure una transaccin o una sesin. El comando CREATE GLOBAL TEMPORARY TABLE crea una tabla temporal que puede ser especfica de la transaccin o de la sesin. En el caso de las tablas temporales especficas de la transaccin, los datos permanecen hasta que acaba la transaccin, mientras que en el caso de las tablas temporales especficas de la sesin, los datos permanecen hasta que acaba la sesin. Los datos de una sesin son privados de dicha sesin. Cada sesin slo puede ver y modificar sus propios datos. Los bloqueos DML no se obtienen en los datos de las tablas temporales. Las clusulas que controlan la duracin de las filas son: ON COMMIT DELETE ROWS: Para especificar que las filas slo son visibles dentro de la transaccin. sta es la opcin por defecto. ON COMMIT PRESERVE ROWS: Para especificar que las filas son visibles para toda la sesin En las tablas temporales se pueden crear ndices, vistas y disparadores, y tambin se pueden utilizar las utilidades Export e Import para exportar e importar la definicin de una tabla temporal. Sin embargo, no se exporta ningn dato, aunque utilice la opcin ROWS. La definicin de una tabla temporal es visible para todas las sesiones.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-18

Definicin de PCTFREE y PCTUSED


Clculo de PCTFREE
(Tamao Medio de la Fila - Tamao Inicial de la Fila) * 100 Tamao Medio de la Fila

Clculo de PCTUSED
Tamao Medio de la Fila * 100 100 - PCTFREE Espacio de Datos Disponible

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Definicin de PCTFREE y PCTUSED Definicin de PCTFREE Un PCTFREE mayor permite tener ms espacio para las actualizaciones dentro de un bloque de base de datos. Defina un valor mayor si la tabla contiene: Columnas que son inicialmente NULL y que, posteriormente, se actualizan con un valor Columnas que es probable que aumenten de tamao como resultado de una actualizacin Un PCTFREE mayor conlleva una densidad de bloque menor y que cada bloque pueda albergar menos filas. La frmula especificada anteriormente asegura que hay espacio libre suficiente en el bloque para que las filas crezcan.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-19

Definicin de PCTFREE y PCTUSED (continuacin) Definicin de PCTUSED Defina PCTUSED para garantizar que el bloque se devuelva a la lista de bloques libres slo cuando hay espacio suficiente para albergar una fila de tamao medio. Si un bloque de la lista de bloques libres no contiene espacio suficiente para insertar una fila, Oracle Server busca el bloque siguiente de la lista de bloques libres. La exploracin lineal contina hasta que se encuentra un bloque con suficiente espacio o se llega al final de la lista. Con esta frmula se reduce el tiempo necesario para explorar la lista de bloques libres al aumentar la probabilidad de encontrar un bloque con el espacio libre necesario. Nota: El valor del tamao de fila medio se puede calcular con el comando ANALYZE TABLE.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-20

Migracin y Encadenamiento de Filas


Antes de la actualizacin Despus de la actualizacin

Puntero

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Migracin y Encadenamiento de Filas Migracin de Filas Si PCTFREE se define con un valor bajo, puede que no haya espacio suficiente en un bloque para albergar una fila que crezca como resultado de una actualizacin. Si ocurre esto, Oracle Server mover toda la fila a un nuevo bloque y dejar un puntero en el bloque original hacia la nueva ubicacin. Este proceso se denomina migracin de filas. Cuando se migra una fila, el rendimiento de E/S (entrada/salida) asociado a esta fila disminuye porque Oracle Server debe explorar dos bloques de datos para recuperar los datos. Encadenamiento de Filas El encadenamiento de filas se produce cuando una fila es demasiado grande para caber dentro de cualquier bloque. Esto puede ocurrir cuando la fila contiene columnas muy largas. En este caso, Oracle Server divide la fila en fragmentos ms pequeos denominados partes de fila. Cada parte de fila se almacena en un bloque junto con los punteros necesarios para recuperar y unir toda la fila. El encadenamiento de filas se puede minimizar seleccionando un tamao de bloque mayor o dividiendo la tabla en mltiples tablas con menos columnas, si es posible. Nota: La migracin y el encadenamiento de filas se cubren con ms detalle en el curso Oracle9i Database Performance Tuning.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-21

Cambio de los Parmetros de Utilizacin de Bloques y Almacenamiento


ALTER TABLE hr.employees PCTFREE 30 PCTUSED 50 STORAGE(NEXT 500K MINEXTENTS 2 MAXEXTENTS 100);

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Cambio de los Parmetros de Utilizacin de Bloques y Almacenamiento Algunos de los parmetros de almacenamiento y todos los parmetros de utilizacin de bloques se pueden modificar con el comando ALTER TABLE. Sintaxis ALTER TABLE [esquema.]tabla {[ clusula-almacenamiento ] [ INITRANS entero ] [ MAXTRANS entero]} Efectos del Cambio de los Parmetros de Almacenamiento Los parmetros que se pueden modificar y las implicaciones de dichas modificaciones son las siguientes: NEXT: Cuando Oracle Server asigne otra extensin a la tabla, se utilizar el nuevo valor. Los tamaos de extensin posteriores se incrementarn por PCTINCREASE.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-22

Cambio de los Parmetros de Utilizacin de Bloques y Almacenamiento (continuacin) Efectos del Cambio de los Parmetros de Almacenamiento (continuacin ) PCTINCREASE: Cualquier cambio en PCTINCREASE se registra en el diccionario de datos. Se utiliza para volver a calcular NEXT cuando Oracle Server asigna la siguiente extensin. Considere un caso en el que una tabla con dos extensiones tiene NEXT=10K y PCTINCREASE=0. Si PCTINCREASE se cambia a 100, la tercera extensin que se asignar ser de 10K, la cuarta ser de 20K, la quinta, de 40 KB, y as sucesivamente. MINEXTENTS: El valor de MINEXTENTS puede cambiar por cualquier valor que sea menor o igual que el nmero actual de extensiones de la tabla. No tendr un efecto inmediato en la tabla, pero se utilizar si la tabla se trunca. MAXEXTENTS: El valor de MAXEXTENTS se puede definir en cualquier valor igual o mayor que el nmero actual de extensiones de la tabla. Este valor tambin se puede definir en UNLIMITED. Restricciones No se puede modificar el valor de INITIAL para una tabla. El valor de NEXT especificado se redondear a un valor que sea mltiplo de un tamao de bloque mayor o igual que el valor especificado.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-23

Cambio de los Parmetros de Utilizacin de Bloques y Almacenamiento (continuacin) Uso de Oracle Enterprise Manager para Cambiar los Parmetros de Almacenamiento Desde la Consola de OEM: 1. Navegue a Schema > [Nombre del esquema] > Tables. 2. Resalte la tabla. 3. Seleccione la pgina del separador Storage. 4. Modifique los valores de la pgina del separador Storage. Tenga en cuenta que las extensiones mnimas y el nmero inicial de transacciones no se pueden modificar con este mtodo. 5. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-24

Asignacin Manual de Extensiones

ALTER TABLE hr.employees ALLOCATE EXTENT (SIZE 500K DATAFILE /DISK3/DATA01.DBF);

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Asignacin Manual de Extensiones Puede ser necesario asignar manualmente las extensiones: Para controlar la distribucin de las extensiones de una tabla en los archivos Antes de cargar datos en bloque para evitar la extensin dinmica de las tablas Sintaxis Utilice el siguiente comando para asignar una extensin a una tabla. ALTER TABLE [esquema.]tabla ALLOCATE EXTENT [ ([SIZE entero [K|M]] [ DATAFILE 'nombrearchivo' ]) ] Si se omite SIZE, Oracle Server utilizar el tamao NEXT_EXTENT de DBA_TABLES para asignar la extensin. El archivo especificado en la clusula DATAFILE debe pertenecer al mismo tablespace que la tabla. En caso contrario, la sentencia generar un error. Si no se utiliza la clusula DATAFILE, Oracle Server asignar la extensin en uno de los archivos del tablespace que contiene la tabla. Nota: El valor de NEXT_EXTENT en DBA_TABLES no se ver afectado por la asignacin manual de la extensin. Oracle Server no volver a calcular el tamao de la siguiente extensin cuando se haya ejecutado este comando.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-25

Reorganizacin de una Tabla no Particionada


ALTER TABLE hr.employees MOVE TABLESPACE data1;

Cuando se reorganiza una tabla no particionada, se mantiene su estructura, pero no su contenido. Se utiliza para mover una tabla a un tablespace diferente o para reorganizar las extensiones.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Reorganizacin de una Tabla no Particionada Una tabla no particionada se puede mover sin necesidad de ejecutar la utilidad Export o Import. Adems, permite la modificacin de los parmetros de almacenamiento. Esto es til cuando hay que: Mover una tabla desde un tablespace a otro Reorganizar la tabla para eliminar la migracin de filas Despus de mover una tabla, ser necesario reconstruir los ndices para evitar el siguiente error: SQL> SELECT * FROM employees WHERE id=23; select * from employees where id=23 * ERROR at line 1: ORA-01502: index HR.EMPLOYEES_ID_PK' or partition of such index is in unusable state

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-26

Truncamiento de una Tabla

TRUNCATE TABLE hr.employees;

Al truncar una tabla se borran todas sus filas y se libera espacio utilizado. Tambin se truncan los ndices correspondientes.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Truncamiento de una Tabla Sintaxis TRUNCATE TABLE [esquema.] tabla [{DROP | REUSE} STORAGE] Los efectos de este comando son los siguientes: Se suprimen todas las filas de la tabla. No se generan datos de deshacer y el comando se valida implcitamente porque TRUNCATE TABLE es un comando DDL. Tambin se truncan los ndices correspondientes. No se puede truncar una tabla a la que hace referencia una clave ajena. Los disparadores de borrado no arrancan cuando se utiliza este comando.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-27

Borrado de una Tabla

DROP TABLE hr.departments CASCADE CONSTRAINTS;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Borrado de una Tabla Una tabla se puede borrar si ya no es necesaria o se debe reorganizar. Sintaxis Utilice el siguiente comando para borrar una tabla: DROP TABLE [esquema.] tabla [CASCADE CONSTRAINTS] Cuando se borra una tabla, las extensiones que utiliza dicha tabla se liberan. Si son contiguas, se pueden fusionar, ya sea automtica o manualmente, en una etapa posterior. La opcin CASCADE CONSTRAINTS es necesaria si la tabla es la principal de una relacin de clave ajena. Nota: Consulte la leccin "Mantenimiento de la Integridad de Datos" para obtener ms informacin acerca de CASCADE CONSTRAINTS.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-28

Borrado de una Tabla (continuacin) Uso de Oracle Enterprise Manager para Borrar una Tabla Desde la Consola de OEM: 1. Navegue a Schema > [Nombre del esquema] > Tables. 2. Resalte la tabla. 3. Seleccione Remove en el men derecho del mouse. 4. Haga clic en Yes para confirmar la accin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-29

Borrado de una Columna


Al eliminar una columna de una tabla:
ALTER TABLE hr.employees DROP COLUMN comments CASCADE CONSTRAINTS CHECKPOINT 1000;

Se elimina la longitud y los datos de columna de cada fila y se libera espacio en el bloque de datos. Se tarda bastante tiempo en borrar una columna de una tabla de gran tamao.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Borrado de una Columna Oracle Server permite borrar columnas de las filas de una tabla. Al borrar columnas, se limpian las columnas no utilizadas y las que pueden demandar espacio sin tener que exportar o importar datos ni volver a crear ndices y restricciones. Es posible que se tarde mucho tiempo en borrar una columna, ya que hay que suprimir todos los datos de la columna de la tabla. Antes de Oracle8i, no era posible borrar una columna de una tabla. Uso de un Punto de Control al Borrar una Columna El borrado de una columna puede requerir mucho tiempo y necesita una gran cantidad de espacio de deshacer. Mientras se borran columnas de tablas de gran tamao, se pueden especificar puntos de control para minimizar el uso del espacio de deshacer. En el ejemplo de la transparencia, hay un punto de control cada 1.000 filas. La tabla esta marcada como INVALID hasta que se completa la operacin. Consulte la columna STATUS de la vista DBA_OBJECTS. Si falla la instancia durante la operacin, la tabla sigue siendo INVALID al inicio y tendr que completarse la operacin. Utilice la siguiente sentencia para reanudar una operacin de borrado interrumpida: SQL> ALTER TABLE hr.employees DROP COLUMNS CONTINUE; Al utilizar esta clusula, se generar un error si la tabla se encuentra en estado VALID.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-30

Borrado de una Columna (continuacin) Uso de Oracle Enterprise Manager para Borrar una Columna Desde la Consola de OEM: 1. Navegue a Schema > [Nombre del esquema] > Tables. 2. Resalte la tabla. 3. Seleccione Edit/View Details en el men derecho del mouse. 4. Seleccione la columna que va a borrar. 5. Seleccione Drop Column en el men derecho del mouse.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-31

Cambio de Nombre de una Columna


Cambio de nombre de una columna de una tabla:
ALTER TABLE hr.employees RENAME COLUMN hire_date TO start_date;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Cambio de Nombre de una Columna La base de datos Oracle9i Versin 2 incluye una funcionalidad para cambiar el nombre de las columnas que pertenecen a una tabla relacional. No se puede cambiar el nombre de las columnas de las tablas que tienen ndices de uniones. Para ello, primero hay que borrar los ndices. Despus de cambiar el nombre de una columna, los ndices funcionales y las restricciones de control siguen siendo vlidas, pero las vistas, los disparadores, los ndices de dominio, las funciones, los procedimientos y los paquetes quedarn invalidados. Si la revalidacin de todo lo anterior falla porque se ha cambiado el nombre de una columna, deber resolver el problema del nuevo nombre. El cambio de nombre est permitido en las tablas que tienen vistas materializadas y en las tablas implicadas en una replicacin. Si, posteriormente, se producen errores en las vistas materializadas, debe modificar dichas vistas para solucionar el problema. La sintaxis es: SQL> ALTER TABLE [esquema.]nombre_tabla 2 RENAME COLUMN nombre_columna_antiguo 3 TO nombre_columna_nuevo;

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-32

Cambio de Nombre de una Columna (continuacin) Uso de Oracle Enterprise Manager para Cambiar el Nombre de una Columna Desde la Consola de OEM: 1. Navegue a Schema > [Nombre del esquema] > Tables. 2. Resalte la tabla que contiene la columna cuyo nombre desea cambiar. 3. Seleccione la columna que quiere cambiar. 4. Escriba el nombre nuevo de la columna sobre el antiguo. 5. Haga clic en Apply. 6. Seleccione Show Dependents para comprobar las dependencias que estn basadas en el nombre de la columna. 7. Seleccione Yes si el cambio de nombre no afecta a las dependencias.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-33

Uso de la Opcin UNUSED

Marque una columna como no utilizada:


ALTER TABLE hr.employees SET UNUSED COLUMN comments CASCADE CONSTRAINTS;

Borre las columnas no utilizadas:


ALTER TABLE hr.employees DROP UNUSED COLUMNS CHECKPOINT 1000;

Contine la operacin de borrado de columnas:


ALTER TABLE hr.employees DROP COLUMNS CONTINUE CHECKPOINT 1000;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Uso de la Opcin UNUSED En lugar de eliminar una columna de una tabla, dicha columna se puede marcar como no utilizada y eliminarla posteriormente. Esto tiene la ventaja de que el proceso es relativamente rpido, ya que no se reclama el espacio de disco porque los datos no se eliminan. Las columnas marcadas como no utilizadas se pueden eliminar de la tabla posteriormente cuando haya menos actividad en el sistema. Las columnas no utilizadas actan como si no formaran parte de la tabla. Las consultas no pueden ver los datos de las columnas no utilizadas. Adems, los nombres y los tipos de dato de esas columnas no se muestran cuando se ejecuta un comando DESCRIBE. Un usuario puede agregar una nueva columna con el mismo nombre que una columna no utilizada. Un ejemplo de la definicin de una columna como no utilizada antes de borrarla sera cuando se desean borrar dos columnas de la misma tabla. Si se borran dos columnas, todas las filas de la tabla se actualizan dos veces. Sin embargo, si se definen las columnas como no utilizadas y, a continuacin, se borran, las filas slo se actualizan una vez.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-34

Uso de la Opcin UNUSED (continuacin) Identificacin de Tablas con Columnas no Utilizadas Para identificar tablas con columnas no utilizadas, se puede consultar la vista DBA_UNUSED_COL_TABS. Con ella se obtienen los nombres de las tablas que tienen columnas no utilizadas y el nmero de columnas marcadas como no utilizadas. La siguiente consulta muestra que la tabla EMPLOYEES, propiedad de HR, tiene una columna no utilizada. SQL > SELECT * FROM dba_unused_col_tabs; OWNER TABLE_NAME COUNT ----- ---------- -----HR EMPLOYEES 1

Para identificar las tablas que tienen operaciones DROP COLUMN parcialmente finalizadas, se puede consultar la vista DBA_PARTIAL_DROP_TABS. SQL > SELECT * FROM dba_partial_drop_tabs; OWNER TABLE_NAME ----- -------------no rows selected Restricciones al Borrar una Columna No se puede hacer lo siguiente: Borrar una columna de una tabla de tipo de objeto Borrar columnas de tablas anidadas Borrar todas las columnas de una tabla Borrar una columna de clave de particionamiento. Suprimir una columna de tablas propiedad de SYS Borrar una columna de una tabla organizada por ndice si la columna es una clave primaria Si se define una columna LONG o LONG RAW como no utilizada, pero no se borra, se evita que se agregue una columna LONG o LONG RAW a la tabla. (Esto ocurre incluso cuando al realizar una operacin DESCRIBE en la tabla, no se ve ninguna columna LONG o LONG RAW.)

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-35

Obtencin de Informacin acerca de las Tablas


Para obtener informacin acerca de las tablas, consulte las siguientes vistas: DBA_TABLES DBA_OBJECTS

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Obtencin de Informacin acerca de las Tablas La informacin acerca de las tablas se puede obtener en el diccionario de datos. Para obtener el nmero de objeto de datos y la ubicacin de la cabecera de tabla de todas las tablas que posee HR, utilice la siguiente consulta: SQL> SELECT table_name 2 FROM dba_tables WHERE owner = 'HR'; TABLE_NAME ------------------COUNTRIES DEPARTMENTS DEPARTMENTS_HIST EMPLOYEES EMPLOYEES_HIST JOBS JOB_HISTORY LOCATIONS REGIONS
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-36

Obtencin de Informacin acerca de las Tablas (continuacin) SQL> SELECT object_name, created 2 FROM DBA_OBJECTS 3 WHERE object_name like 'EMPLOYEES' 4 AND owner = 'HR'; OBJECT_NAME CREATED ----------- --------EMPLOYEES 16-APR-01

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-37

Resumen
En esta leccin, ha aprendido a: Distinguir entre un ROWID ampliado y uno restringido Describir la estructura de una fila Crear tablas regulares y temporales Gestionar las estructuras de almacenamiento de una tabla Reorganizar, truncar y borrar una tabla Borrar una columna de una tabla Obtener informacin acerca de las tablas

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-38

Prctica 11: Visin General


Esta prctica abarca los siguientes temas: Creacin de una tabla Cmo ver, marcar como no utilizadas y borrar columnas de una tabla Asignacin manual de extensiones Truncamiento de una tabla Obtencin de informacin acerca de las tablas

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Prctica 11: Visin General Nota: Esta prctica se puede realizar con SQL*Plus o con Oracle Enterprise Manager y SQL*Plus Worksheet.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-39

Prctica 11: Gestin de Tablas 1 Cree las siguientes tablas como usuario SYSTEM para un sistema de entrada de pedidos que est implementando. Las tablas y las columnas se muestran a continuacin. Nota: Si utiliza OEM, no olvide definir DATE_OF_DELY en NULL. Adems, se le ha informado de que en la tabla ORDERS se van a insertar filas sin un valor para DATE_OF_DELY, y que se actualizar una vez finalizado el pedido. Utilice el tablespace USERS. Puede utilizar los valores de almacenamiento por defecto. Tabla CUSTOMERS Columna CUST_CODE NAME REGION ORDERS ORD_ID ORD_DATE CUST_CODE DATE_OF_DELY Tamao y Tipo de Dato VARCHAR2(3) VARCHAR2(50) VARCHAR2(5) NUMBER(3) DATE VARCHAR2(3) DATE

2 Ejecute el archivo de comandos lab11_02.sql para insertar filas en las tablas. 3 Busque los archivos y bloques que contienen las filas de la tabla ORDERS. Indicacin: Consulte la vista del diccionario de datos DBA_EXTENTS. 4 Compruebe el nmero de extensiones utilizadas por la tabla ORDERS. 5 Asigne una extensin manualmente, con el tamao por defecto, para la tabla ORDERS y confirme que la extensin se ha agregado segn lo especificado. 6 Cree otra tabla, ORDERS2, como copia de la tabla ORDERS en el tablespace USERS, donde MINEXTENTS sea igual a 10. Verifique que la tabla se ha creado con el nmero de extensiones especificado. 7 Trunque la tabla ORDERS sin liberar espacio y compruebe el nmero de extensiones para verificar que no se han desasignado. 8 Trunque la tabla ORDERS2 liberando espacio. Cuntas extensiones tiene ahora la tabla? 9 Ejecute el archivo de comandos lab11_09.sql para insertar algunas filas en la tabla ORDERS2. 10 Consulte las columnas de la tabla ORDERS2. A continuacin, marque la columna DATE_OF_DELY como UNUSED. Consulte las columnas de la tabla ORDERS2 de nuevo. Qu sucede? 11 Borre la columna no utilizada DATE_OF_DELY. 12 Borre la tabla ORDERS2.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 11-40

Gestin de ndices

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Enumerar los diversos tipos de ndices y sus usos Crear diferentes tipos de ndices Reorganizar ndices Mantener ndices Controlar el uso de un ndice Obtener informacin acerca de los ndices

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-2

Clasificacin de ndices
Lgico:
De columna nica o concatenado nico o no nico Basado en funcin De dominio

Fsico:
Particionado o no particionado B-Tree: Clave normal o hacia atrs Bitmap

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Clasificacin de ndices Un ndice es una estructura de rbol que permite el acceso directo a una fila de una tabla. Los ndices se pueden clasificar en funcin de su diseo lgico o de su implementacin fsica. En la clasificacin lgica, los ndices se agrupan desde el punto de vista de la aplicacin, mientras que en la clasificacin fsica, por el modo en que se almacenan. ndices concatenados y de columna nica Un ndice de columna nica tiene una nica columna en la clave de ndice; por ejemplo, un ndice en la columna de nmeros employees de la tabla employees. Un ndice concatenado, tambin conocido como ndice compuesto, se crea en mltiples columnas de una tabla. Las columnas de un ndice concatenado no tienen que estar en el mismo orden que las columnas de la tabla ni tampoco ser adyacentes; por ejemplo, un ndice basado en las columnas de los departamentos y los puestos de trabajo de una tabla de empleados. El nmero mximo de columnas de un ndice de clave compuesta es 32. Sin embargo, el tamao combinado de todas las columnas no puede exceder, aproximadamente, la mitad (menos algo de sobrecarga) del espacio de datos disponible de un bloque de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-3

Clasificacin de ndices (continuacin) ndices nicos y no nicos Los ndices pueden ser nicos o no nicos. Los ndices nicos garantizan que no haya dos filas de una tabla con valores duplicados en la columna (o columnas) clave. Los ndices no nicos no imponen esta restriccin sobre los valores de columna. ndices basados en funciones Un ndice basado en funcin se crea cuando se utilizan funciones o expresiones que implican a una o ms columnas de la tabla que se est indexando. Un ndice basado en funcin calcula previamente el valor de la funcin o la expresin y lo almacena en el ndice. Los ndices basados en funciones se pueden crear como un ndice B-Tree o como un ndice de bitmaps. ndices de dominios Un ndice de dominio es un ndice especfico de una aplicacin (Text, Spatial) que se crea, gestiona y accede mediante rutinas proporcionadas por un tipo de ndice. Se denomina ndice de dominio porque indexa los datos de dominios especficos de la aplicacin. Slo se soportan ndices de dominio de una columna. Se pueden generar ndices de dominio de columna nica en columnas con tipos de dato escalares, de objeto o LOB. ndices particionados y no particionados Los ndices particionados se utilizan para que las tablas de gran tamao almacenen entradas de ndice correspondientes a un ndice en varios segmentos. El particionamiento permite distribuir un ndice entre muchos tablespaces, lo que disminuye la contencin para bsquedas de ndice y aumenta la capacidad de gestin. Los ndices particionados se suelen utilizar con tablas particionadas para mejorar la escalabilidad y la capacidad de gestin. Se puede crear una particin de ndice para cada particin de tabla. En esta leccin se explica la creacin y el mantenimiento de los ndices no particionados BTree y de bitmap.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-4

ndice B-Tree
Entrada de ndice Raz

Derivacin

Cabecera de entrada de ndice Hoja Longitud de columna clave Valor de columna clave ROWID

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

ndice B-Tree Aunque todos los ndices utilizan una estructura B-Tree, el trmino ndice B-Tree se suele asociar a un ndice que almacena una lista de ROWID para cada clave. Estructura de un ndice B-Tree En la parte superior del ndice est la raz, que contiene entradas que apuntan al siguiente nivel del ndice. En el siguiente nivel estn los bloques de derivacin, que a su vez apuntan a los bloques del siguiente nivel del ndice. En el nivel inferior se encuentran los nodos hoja, que contienen las entradas de ndice que apuntan a las filas de la tabla. Los bloques hoja estn doblemente enlazados para facilitar la exploracin del ndice en orden ascendente y descendente de valores clave. Formato de las entradas de hoja de ndice Una entrada de ndice incluye los siguientes componentes: Una cabecera de entrada, que almacena el nmero de columnas y la informacin de bloqueo Los pares valor-longitud de la columna clave, que definen el tamao de una columna en la clave seguida del valor de la columna (el nmero de dichos pares es el nmero mximo de columnas del ndice) ROWID de una fila, que contiene los valores clave
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-5

ndice B-Tree (continuacin) Caractersticas de entradas de hoja de ndice En un ndice B-Tree de una tabla no particionada: Los valores clave se repiten si hay mltiples filas que tienen el mismo valor clave, a menos que el ndice est comprimido. No hay ninguna entrada de ndice correspondiente a una fila que tenga todas las columnas clave NULL. Por lo tanto, una clusula WHERE que especifique NULL siempre dar lugar a una exploracin completa de la tabla. El ROWID restringido se utiliza para apuntar a las filas de la tabla, ya que todas las filas pertenecen al mismo segmento. Efecto de las operaciones DML en un ndice Oracle Server mantiene todos los ndices cuando se realizan operaciones DML en la tabla. He aqu una explicacin del efecto de un comando DML en un ndice: Las operaciones de insercin dan como resultado la insercin de una entrada de ndice en el bloque apropiado. La supresin de una fila slo provoca la supresin lgica de la entrada de ndice. El espacio que utiliza la fila suprimida no esta disponible para las nuevas entradas hasta que se suprimen todas las entradas del bloque. Las actualizaciones de las columnas clave conducen a una supresin lgica y a una insercin en el ndice. La definicin de PCTFREE no tiene ningn efecto en el ndice excepto en el momento de la creacin. Se puede agregar una nueva entrada a un bloque de ndices incluso si ste tiene menos espacio que el especificado por PCTFREE.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-6

ndices de Bitmap
Tabla Archivo 3 Bloque 10 Bloque 11 ndice Bloque 12

ROWID ROWID clave inicial final

bitmap

<Blue, 10.0.3, 12.8.3, 1000100100010010100> <Green, 10.0.3, 12.8.3, 0001010000100100000> <Red, 10.0.3, 12.8.3, 0100000011000001001> <Yellow, 10.0.3, 12.8.3, 0010001000001000010>
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

ndices de Bitmap Los ndices de bitmap tienen ms ventajas que los ndices B-Tree en determinadas situaciones: Si una tabla tiene millones de filas y las columnas clave tienen una cardinalidad baja; es decir, hay muy pocos valores distintos para la columna. Por ejemplo, los ndices de bitmap son preferibles a los ndices B-Tree para las columnas de sexo y estado civil de una tabla que contiene registros de pasaportes. Cuando las consultas suelen utilizar una combinacin de mltiples condiciones WHERE con relacin al operador OR. Si hay poca actividad de actualizacin o de slo lectura en las columnas clave Estructura de un ndice de bitmap Un ndice de bitmap tambin se organiza como un ndice B-Tree, pero el nodo hoja almacena un bitmap por cada valor clave en lugar de una lista de ROWID. Cada bit del bitmap se corresponde con un posible ROWID y, si est definido el bit, significa que la fila con el ROWID correspondiente contiene el valor clave. Como se observa el diagrama, el nodo hoja de un ndice de bitmap contiene lo siguiente: Una cabecera de entrada que contiene el nmero de columnas y la informacin de bloqueo. Valores clave que se componen de pares de longitud y valor por cada columna clave. En el ejemplo, la clave slo contiene una columna y la primera entrada tiene el valor clave Blue.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-7
8

ndices de Bitmap (continuacin) Estructura de un ndice de bitmap (continuacin) El ROWID inicial, que en el ejemplo contiene el nmero de archivo tres, el nmero de bloque diez y el nmero de fila cero El ROWID final, que en el ejemplo incluye el nmero de bloque doce y el nmero de fila ocho Un segmento de bitmap que consta de una cadena de bits. (El bit se define cuando la fila correspondiente contiene el valor clave y no se define cuando la fila no contiene el valor clave. Oracle Server utiliza una tcnica de compresin patentada para almacenar segmentos de bitmap.) El ROWID inicial es el ROWID de la primera fila al que apunta el segmento de bitmap del bitmap; es decir, el primer bit del bitmap se corresponde con ese ROWID, el segundo bit del bitmap se corresponde con la siguiente fila del bloque y el ROWID final es un puntero hacia la ltima fila de la tabla cubierta por el segmento de bitmap. Los ndices de bitmap utilizan ROWID restringidos. Uso de un ndice de bitmap El ndice B-Tree se utiliza para localizar los nodos hoja que contienen segmentos de bitmap para un valor de la clave determinado. El ROWID inicial y los segmentos de bitmap se utilizan para encontrar las filas que contienen el valor clave. Cuando se realizan cambios en la columna clave de la tabla, se deben modificar los bitmaps. Esto provoca un bloqueo de los segmentos de bitmap importantes. Dado que los bloqueos se adquieren en todo el segmento de bitmap, una fila que est cubierta por el bitmap no puede ser actualizada por otras transacciones hasta que termine la primera transaccin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-8

Comparacin entre ndices B-Tree y de Bitmap


B-Tree Idneo para columnas de elevada cardinalidad Actualiza las claves a un costo relativamente bajo Ineficaz para las consultas que utilizan predicados OR til para OLTP Bitmap Idneo para columnas de baja cardinalidad Las actualizaciones de las columnas clave son muy costosas Eficaces para las consultas que utilizan predicados OR til para los almacenes de datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Comparacin entre los ndices B-Tree y Bitmap Los ndices de bitmap son ms compactos que los ndices B-Tree cuando se utilizan con columnas de baja cardinalidad. Las actualizaciones de columnas clave de un ndice de bitmap son ms costosas porque los bitmaps utilizan bloqueos a nivel del segmento de bitmap, mientras que en un ndice BTree los bloqueos se realizan en entradas correspondientes a filas individuales de la tabla. Los ndices de bitmap se pueden utilizar para realizar operaciones como, por ejemplo, una operacin booleana con bitmaps. Oracle Server puede utilizar dos segmentos de bitmap para realizar una operacin booleana en bits y obtener un bitmap resultante. Esto permite utilizar eficazmente los bitmaps en las consultas que usan el predicado booleano. En resumen, los ndices B-Tree pueden ser ms adecuados para indexar tablas dinmicas en un entorno OLTP, mientras que los ndices de bitmap pueden ser tiles en entornos de almacenamiento de datos en los que se realizan consultas complejas en tablas de gran tamao y estticas.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-9

Creacin de ndices B-Tree

CREATE INDEX hr.employees_last_name_idx ON hr.employees(last_name) PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE indx;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de ndices B-Tree Un ndice se puede crear en la cuenta del usuario que posee la tabla o en una cuenta distinta, aunque se suele crear en la misma cuenta que la tabla. La sentencia anterior crea un ndice en la tabla EMPLOYEES utilizando la columna LAST_NAME.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-10

Creacin de ndices B-Tree (continuacin) Opciones de Sintaxis UNIQUE: Se utiliza para especificar un ndice nico (por defecto es no nico). Schema: Propietario del ndice o la tabla Index: Nombre del ndice Table: Nombre de la tabla Column: Nombre de la columna ASC/DESC: Indica si el ndice se debe crear en orden ascendente o descendente. TABLESPACE: Identifica el tablespace en el que se va a crear el ndice. PCTFREE: Cantidad de espacio reservado en cada bloque (un porcentaje del espacio total menos la cabecera de bloque) en el momento de la creacin para albergar nuevas entradas de ndice. IINITRANS: Especifica el nmero de entradas de transaccin preasignadas en cada bloque (el valor mnimo y por defecto es dos). MAXTRANS: Limita el nmero de entradas de transaccin que se pueden asignar a cada bloque (por defecto es 255). Clusula STORAGE: Identifica la clusula de almacenamiento que determina cmo se asignarn las extensiones al ndice. LOGGING: Especifica que la creacin del ndice y las operaciones posteriores que se realicen en el ndice se registren en el archivo redo log online (ste es el valor por defecto). NOLOGGING: Especifica que la creacin y ciertos tipos de cargas de datos no se registren en el archivo redo log online. NOSORT: Especifica que las filas se ordenen en orden ascendente en la base de datos. Por lo tanto, Oracle Server no tiene que ordenar las filas al crear el ndice. Nota Si se ha definido MINIMUM EXTENT para el tablespace, los tamaos de extensin del ndice se redondean hacia arriba hasta el siguiente mltiplo ms alto del valor MINIMUM EXTENT. Si se omite la clusula [NO]LOGGING, el atributo de registro del ndice toma el valor por defecto del atributo de registro del tablespace en el que reside. PCTUSED no se puede especificar para un ndice. Dado que las entradas de ndice se deben almacenar en el orden correcto, el usuario no puede controlar cundo se utiliza un bloque de ndice para realizar inserciones. Si se utiliza la palabra clave NOSORT cuando los datos no estn ordenados por la clave, la sentencia termina con un error. Es probable que esta opcin falle si la tabla ha tenido varias operaciones DML. Si es posible, Oracle Server utiliza ndices existentes para crear un ndice nuevo. Esto sucede si la clave del nuevo ndice se corresponde con la parte inicial de la clave de un ndice ya existente.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-11

Creacin de ndices B-Tree (continuacin) Uso de Oracle Enterprise Manager para la Creacin de un ndice Desde la Consola de OEM: 1. Navegue a Schema > [Nombre del esquema] > Indexes. 2. Seleccione Create en el men derecho del mouse. 3. Rellene la informacin adecuada en las pginas de los separadores General, Partitions, Storage y Options. 4. Haga clic en el botn Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-12

Creacin de ndices: Instrucciones


Equilibre las necesidades de la consulta y de DML. Coloque los ndices en tablespaces independientes. Utilice tamaos de extensin uniformes: Mltiplos de cinco bloques o el tamao MINIMUM EXTENT para los tablespaces. Piense en la posibilidad de utilizar NOLOGGING para los ndices de gran tamao. INITRANS normalmente debera ser mayor en los ndices que en las tablas correspondientes.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de ndices: Instrucciones Tenga en cuenta lo siguiente al crear un ndice: Los ndices aceleran el rendimiento de las consultas y ralentizan las operaciones DML. Minimice siempre el nmero de ndices necesarios en tablas voltiles. Coloque ndices en un tablespace independiente, no en uno que tenga segmentos de deshacer, segmentos temporales o tablas. Se podra conseguir un importante aumento del rendimiento en los ndices de gran tamao si se impide la generacin de redo. Piense en la posibilidad de utilizar la clusula NOLOGGING para crear ndices de gran tamao. Dado que las entradas de ndice son menores en comparacin con las filas que indexan, los bloques de ndice suelen tener ms entradas por bloque. Por este motivo, normalmente INITRANS debera ser mayor en los ndices que en las tablas correspondientes. ndices y PCTFREE El parmetro PCTFREE de un ndice funciona de forma distinta que el de una tabla. Este parmetro slo se utiliza durante la creacin del ndice para reservar espacio para las entradas de ndice que pueda ser necesario insertar en el mismo bloque de ndice. Las entradas de ndice no se actualizan. Cuando se actualiza una columna clave, esto implica una supresin lgica de una entrada de ndice y una insercin.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-13

Creacin de ndices: Instrucciones (continuacin) ndices y PCTFREE (continuacin) Utilice un PCTFREE con un valor bajo para ndices de columnas que aumentan como, por ejemplo, los nmeros de factura generados por el sistema. En estos casos, siempre se agregan nuevas entradas de ndices a las entradas existentes y no es necesario insertar una nueva entrada entre dos entradas de ndice existentes. Si el valor de una columna indexada de una fila insertada puede aceptar cualquier valor, es decir, si el nuevo valor puede estar comprendido en el rango actual de valores, se debe proporcionar un valor PCTFREE mayor. Como ejemplo de ndice que requiere un valor de PCTFREE mayor se encuentra el ndice de una columna de cdigos de cliente de una tabla de facturas. En este caso, resulta conveniente especificar el valor de PCTFREE que indica la ecuacin siguiente: (Nmero mximo de filas Nmero inicial de filas x 100) Nmero mximo de filas El valor mximo puede hacer referencia a un perodo especfico de tiempo como, por ejemplo, un ao.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-14

Creacin de ndices de Bitmap

CREATE BITMAP INDEX orders_region_id_idx ON orders(region_id) PCTFREE 30 STORAGE(INITIAL 200K NEXT 200K PCTINCREASE 0 MAXEXTENTS 50) TABLESPACE indx;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de ndices de Bitmap Sintaxis Utilice el siguiente comando para crear un ndice de bitmap CREATE BITMAP INDEX [esquema.] ndice ON [esquema.] tabla (columna [ ASC | DESC ] [ , columna [ASC | DESC ] ] ...) [TABLESPACE tablespace] [ PCTFREE entero ] [ INITRANS entero ] [ MAXTRANS entero ] [ clusula-almacenamiento ] [ LOGGING| NOLOGGING ] [ NOSORT ] Tenga en cuanta que un ndice de bitmap no puede ser nico.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-15

Creacin de ndices de Bitmap (continuacin) Parmetro CREATE_BITMAP_AREA_SIZE El parmetro de inicializacin CREATE_BITMAP_AREA_SIZE determina la cantidad de espacio que se utilizar para almacenar en memoria segmentos de bitmap. El valor por defecto es 8 MB. Un valor mayor puede hacer que la creacin de ndices sea ms rpida. Si la cardinalidad es muy pequea, este valor puede ser bajo. Por ejemplo, si la cardinalidad es slo dos, el valor se puede definir en kilobytes en lugar de megabytes. Por regla general, para una cardinalidad mayor, se necesita ms memoria con el fin conseguir un rendimiento ptimo.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-16

Creacin de ndices de Bitmap (continuacin) Uso de Oracle Enterprise Manager para la Creacin de un ndice de Bitmap Desde la Consola de OEM: 1. Navegue a Schema > [Nombre del esquema] > Indexes. 2. Seleccione Create en el men derecho del mouse. 3. Rellene la informacin adecuada en las pginas de los separadores General, Partitions, Storage y Options. 4. Seleccione la casilla de control Bitmap en la pgina del separador General. 5. Haga clic en el botn Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-17

Cambio de Parmetros de Almacenamiento para ndices


ALTER INDEX employees_last_name_idx STORAGE(NEXT 400K MAXEXTENTS 100);

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Cambio de Parmetros de Almacenamiento para ndices Algunos parmetros de almacenamiento y de utilizacin de bloques se pueden modificar con el comando ALTER INDEX. Sintaxis ALTER INDEX [esquema.]ndice [ clusula-almacenamiento ] [ INITRANS entero ] [ MAXTRANS entero ] Las implicaciones del cambio de los parmetros de almacenamiento para un ndice son las mismas que las del cambio de dichos parmetros para una tabla. Este cambio se suele realizar para incrementar MAXEXTENTS para un ndice. Se pueden cambiar los parmetros de utilizacin de bloques para garantizar niveles de simultaneidad mayores en un bloque de ndice.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-18

Cambio de Parmetros de Almacenamiento para ndices (continuacin) Uso de Oracle Enterprise Manager para Cambiar los Parmetros de Almacenamiento de un ndice Desde la Consola de OEM: 1. Navegue a Schema > [Nombre del esquema] > Indexes. 2. Resalte el ndice. 3. Modifique los valores de la pgina del separador Storage. 4. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-19

Asignacin y Desasignacin del Espacio del ndice


ALTER INDEX orders_region_id_idx ALLOCATE EXTENT (SIZE 200K DATAFILE /DISK6/indx01.dbf);

ALTER INDEX orders_id_idx DEALLOCATE UNUSED;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Asignacin y Desasignacin del Espacio del ndice Asignacin manual de espacio a un ndice Puede ser necesario agregar extensiones a un ndice antes de un perodo de muchas inserciones en una tabla. Al agregar extensiones, se evita la extensin dinmica de los ndices y la consiguiente degradacin del rendimiento. Desasignacin manual de espacio de un ndice Utilice la clusula DEALLOCATE del comando ALTER INDEX para liberar el espacio no utilizado que est por encima del lmite superior de un ndice. Sintaxis Utilice el siguiente comando para asignar o desasignar espacio del ndice: ALTER INDEX [esquema.]ndice {ALLOCATE EXTENT ([SIZE entero [K|M]] [ DATAFILE 'nombrearchivo' ]) | DEALLOCATE UNUSED [KEEP entero [ K|M ] ] } La asignacin o desasignacin manual de espacio en un ndice sigue las mismas reglas que se utilizan cuando estos comandos se aplican a una tabla. Nota: El espacio del ndice se desasigna cuando se trunca la tabla. El truncamiento de una tabla provoca el truncamiento de los ndices asociados.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-20

Reconstruccin de ndices
Utilice el comando ALTER INDEX para: Mover un ndice a un tablespace diferente Mejorar el uso del espacio al eliminar las entradas suprimidas
ALTER INDEX orders_region_id_idx REBUILD TABLESPACE indx02;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Reconstruccin de ndices La reconstruccin de ndices tiene las siguientes caractersticas: Se crea un nuevo ndice a partir de un ndice ya existente como origen de datos. No es necesario realizar ordenaciones cuando se crea un ndice utilizando un ndice ya existente, lo que produce un rendimiento mayor. El ndice antiguo se suprime una vez creado el nuevo. Durante la reconstruccin, debe haber espacio suficiente para albergar tanto el ndice antiguo como el nuevo en sus respectivos tablespaces. El ndice resultante no contiene ninguna entrada suprimida. Por tanto, este ndice utiliza el espacio de forma ms eficaz. Las consultas pueden seguir utilizando el ndice existente mientras se est creando el nuevo. Posibles situaciones de reconstruccin Reconstruya un ndice en las siguientes situaciones: El ndice existente debe moverse a un tablespace distinto. Esto puede ser necesario si el ndice est en el mismo tablespace que la tabla o si los objetos se deben redistribuir en varios discos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-21

Reconstruccin de ndices (continuacin) Posibles situaciones de reconstruccin (continuacin): Un ndice contiene muchas entradas suprimidas. Se trata de un problema habitual de los ndices de desplazamiento como, por ejemplo, un ndice basado en el nmero de pedido de una tabla de pedidos, donde se han suprimido los pedidos finalizados y se han agregado a la tabla nuevos pedidos con nmeros ms altos. Si quedan algunos pedidos antiguos, es posible que haya varios bloques hoja de ndice en los que queda por suprimir algunas entradas. Un ndice normal ya existente debe convertirse en un ndice de clave hacia atrs. ste puede ser el caso cuando se migran aplicaciones desde una versin anterior de Oracle Server. La tabla del ndice se ha movido a otro tablespace utilizando el comando ALTER TABLE ... MOVE TABLESPACE. Sintaxis Utilice el siguiente comando para reconstruir un ndice: ALTER INDEX [esquema.] ndice REBUILD [TABLESPACE tablespace] [ PCTFREE entero ] [ INITRANS entero ] [ MAXTRANS entero ] [ clusula-almacenamiento ] [ LOGGING| NOLOGGING ] [ REVERSE | NOREVERSE ] No se puede utilizar el comando ALTER INDEX ... REBUILD para cambiar un ndice de bitmap a un ndice B-Tree y viceversa. Las palabras clave REVERSE o NOREVERSE slo se pueden especificar para ndices B-Tree.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-22

Reconstruccin de ndices Online


Los ndices se pueden reconstruir con los bloqueos de tabla mnimos.
ALTER INDEX orders_id_idx REBUILD ONLINE;

Existen algunas restricciones.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Reconstruccin de ndices Online La construccin o reconstruccin de un ndice puede ser una tarea que requiera mucho tiempo, sobre todo si la tabla es muy grande. Antes de Oracle8i, la construccin o reconstruccin de ndices requera un bloqueo en la tabla para evitar operaciones DML simultneas. Oracle9i ofrece un mtodo para construir o reconstruir un ndice mientras se realizan operaciones simultneas en la tabla base, aunque no se recomienda realizar operaciones DML de gran tamao durante este procedimiento. Nota: Todava existen bloqueos DML, lo que significa que no se pueden realizar otras operaciones DDL durante la construccin de un ndice online. Restricciones No se puede reconstruir un ndice en una tabla temporal. No se puede reconstruir un ndice particionado completo. Es necesario reconstruir cada particin o subparticin. No se puede cambiar el valor del parmetro PCTFREE para todo el ndice.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-23

Fusin de ndices

Antes de la fusin

Despus de la fusin

ALTER INDEX orders_id_idx COALESCE;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Fusin de ndices Si se produce una fragmentacin del ndice, ste se puede reconstruir o fusionar. Antes de realizar cualquiera de estas tareas, es necesario valorar las ventajas y el costo de cada opcin y seleccionar la que mejor se adapte a su situacin. La fusin de un ndice es la reconstruccin de un bloque realizada online. Si tiene bloques hoja de ndice B-Tree que se pueden liberar para volver a utilizarlos, puede fusionar estos bloques hoja mediante la siguiente sentencia SQL: SQL> ALTER INDEX hr.employees_idx COALESCE; La figura anterior muestra el efecto de ALTER INDEX COALESCE en el ndice hr.employees_idx. Antes de realizar la operacin COALESCE, los dos primeros bloques hoja estn llenos al 50%. Esto significa que el ndice est fragmentado y se puede fusionar para rellenar por completo el primer bloque y reducir la fragmentacin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-24

Comprobacin de la Validez de los ndices

ANALYZE INDEX orders_region_id_idx VALIDATE STRUCTURE;

INDEX_STATS
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Comprobacin de la Validez de los ndices Analice el ndice para realizar las siguientes acciones: Comprobar en todos los bloques de ndice la corrupcin de bloques. Tenga en cuenta que este comando no verifica si las entradas de ndice se corresponden con los datos de la tabla. Rellenar la vista INDEX_STATS con informacin acerca del ndice. Sintaxis ANALYZE INDEX [ esquema.]ndice VALIDATE STRUCTURE Una vez ejecutado el comando, consulte INDEX_STATS para obtener informacin acerca del ndice, tal y como se muestra en el siguiente ejemplo:

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-25

Comprobacin de la Validez de los ndices (continuacin) SQL> SELECT blocks, pct_used, distinct_keys 2 3 lf_rows, del_lf_rows FROM index_stats; BLOCKS PCT_USED LF_ROWS ------ --------- -------25 11 1 row selected. 14

DEL_LF_ROWS -----------0

Reorganice el ndice si hay una proporcin elevada de filas suprimidas como, por ejemplo, cuando la proporcin de DEL_LF_ROWS con respecto a LF_ROWS supera el 30%.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-26

Borrado de ndices
Borre y vuelva a crear un ndice antes de realizar cargas en bloque. Borre los ndices que no se necesiten con frecuencia y crelos cuando sea necesario. Borre y vuelva a crear los ndices no vlidos.
DROP INDEX hr.departments_name_idx;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Borrado de ndices Puede ser necesario suprimir ndices en los siguientes supuestos: Se puede eliminar un ndice que ya no necesiten las aplicaciones. Se puede suprimir un ndice antes de realizar cargas en bloque. Si se borra un ndice antes de realizar grandes cargas de datos y se vuelve a crear despus de la carga: - Mejora el rendimiento de la carga - Se utiliza el espacio de ndice de forma ms eficaz Los ndices que slo se utilizan peridicamente no requieren un mantenimiento innecesario, especialmente si estn basados en tablas voltiles. ste suele ser el caso en un sistema OLTP, donde las consultas ad hoc se generan al final del ao o del trimestre para recopilar la informacin necesaria para las reuniones de revisin. Se puede marcar un ndice como INVALID cuando se produce un fallo de la instancia durante ciertos tipos de operaciones como, por ejemplo, la carga. En este caso, es necesario suprimir y volver a crear el ndice. El ndice est corrupto. Los ndices necesarios para las restricciones no se pueden borrar, por lo tanto, la restriccin dependiente se debe desactivar o borrar antes.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-27

Borrado de ndices (continuacin) Uso de Oracle Enterprise Manager para el Borrado de un ndice Desde la Consola de OEM: 1. Navegue a Schema > [Nombre del esquema] > Indexes. 2. Resalte el ndice. 3. Seleccione Remove en el men derecho del mouse. 4. Haga clic en Yes para confirmar la accin. Nota: No se puede borrar un ndice si se utiliza para implementar una restriccin de integridad que est activada. Las restricciones se analizan en la leccin Mantenimiento de la Integridad de Datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-28

Identificacin de ndices no Utilizados


Para comenzar el control del uso de un ndice:
ALTER INDEX hr.dept_id_idx MONITORING USAGE

Para interrumpir el control del uso de un ndice:


ALTER INDEX hr.dept_id_idx NOMONITORING USAGE

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Identificacin de ndices no Utilizados A partir de Oracle9i, se pueden recopilar estadsticas acerca del uso de un ndice y se pueden mostrar en V$OBJECT_USAGE. Si la informacin recopilada indica que un ndice no se utiliza nunca, ese ndice se puede borrar. Asimismo, al eliminar los ndices no utilizados se reduce la sobrecarga que requiere Oracle Server para las operaciones DML, lo que mejora el rendimiento. Cada vez que se especifica la clusula MONITORING USAGE, se restablece V$OBJECT_USAGE para el ndice especificado. La informacin anterior se limpia o se restablece, y se registra la nueva hora de inicio. Columnas de V$OBJECT_USAGE INDEX_NAME: Nombre del ndice TABLE_NAME: La tabla correspondiente MONITORING: Indica si el control est definido en ON u OFF USED: Indica YES o NO, si se ha utilizado el ndice durante el tiempo de control START_MONITORING: Hora de inicio del control del ndice END_MONITORING: Hora de parada del control del ndice

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-29

Obtencin de Informacin acerca de los ndices


Para obtener informacin acerca de los ndices, consulte las siguientes vistas: DBA_INDEXES: Proporciona informacin acerca de los ndices DBA_IND_COLUMNS: Proporciona informacin acerca de las columnas indexadas V$OBJECT_USAGE: Proporciona informacin acerca del uso de un ndice

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-30

Resumen
En esta leccin, ha aprendido a: Crear diferentes tipos de ndices Reorganizar ndices Borrar ndices Obtener informacin acerca de los ndices en el diccionario de datos Iniciar y finalizar el control del uso de los ndices Obtener informacin acerca de los ndices

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-31

Prctica 12: Visin General


Esta prctica abarca los siguientes temas: Creacin de un ndice en las columnas de una tabla Traspaso del ndice a otro tablespace Borrado de un ndice Obtencin de informacin acerca de los ndices

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Prctica 12: Visin General Nota: Esta prctica se puede realizar con SQL*Plus o con Oracle Enterprise Manager y SQL*Plus Worksheet.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-32

Prctica 12: Soluciones 1 Est pensando en la posibilidad de crear ndices en las columnas NAME y REGION de la tabla CUSTOMERS. Qu tipos de ndices son apropiados para las dos columnas? Cree dos ndices, llmelos CUST_NAME_IDX y CUST_REGION_IDX, respectivamente, y colquelos en el tablespace INDEX01 Indicacin: Un ndice B-Tree es apropiado para columnas que tienen muchos valores distintos y un ndice de bitmap es apropiado para columnas que slo tienen unos cuantos valores distintos. Nota: La tabla CUSTOMERS se encuentra en el esquema SYSTEM. 2 Mueva el ndice CUST_REGION_IDX a otro tablespace Indicacin: El ndice se puede reconstruir especificando un tablespace distinto. 3 Fjese en los archivos y bloques utilizados por las extensiones para el ndice CUST_REGION_IDX. Indicacin: Utilice la vista DBA_EXTENTS para obtener esta informacin. Nota: El propietario es SYSTEM. 4 Vuelva a crear el ndice CUST_REGION_IDX sin suprimirlo y volverlo a crear, y mantngalo en el mismo tablespace como antes. Utiliza el nuevo ndice los mismos bloques que se utilizaron anteriormente? Indicacin: Reconstruya el ndice. Nota: El nuevo ndice no reutiliza el mismo espacio que se ve en la ubicacin de la extensin despus de la reconstruccin. Esto se debe a que Oracle Server crea un ndice temporal, borra el antiguo y cambia el nombre del ndice temporal. 5 a Como usuario SYSTEM, ejecute el archivo de comandos lab12_05a.sql para crear y rellenar la tabla NUMBERS. b Consulte la tabla NUMBERS para buscar el nmero de valores distintos en las dos columnas de la tabla. c Mediante tamaos de extensin uniformes de 4 KB, cree dos ndices, NUMB_OE_IDX y NUMB_NO_IDX, en las columnas ODD_EVEN y NO de la tabla NUMBERS, respectivamente. Coloque los ndices en el tablespace INDX01. Compruebe los tamaos totales de los ndices y escriba el nmero de bloques en el recuadro inferior. Indicacin: Utilice un PCTINCREASE igual a cero para crear extensiones del mismo tamao. Compruebe los bloques totales asignados a las extensiones desde DBA_SEGMENTS. ndice
NUMB_OE_IDX NUMB_NO_IDX

Columna
ODD_EVEN NO

Bloques

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-33

Prctica 12: Soluciones (continuacin) 5 d Una vez registrados los bloques anteriores, borre los dos ndices, NUMB_OE_IDX y NUMB_NO_IDX. Mediante tamaos de extensin uniformes de 4 KB, cree los ndices de bitmap, NUMB_OE_IDX y NUMB_NO_IDX, en las columnas ODD_EVEN y NO de la tabla NUMBERS, respectivamente. Coloque los ndices en el tablespace INDX01. Vuelva a ejecutar la consulta para comprobar los bloques totales asignados a las extensiones desde DBA_SEGMENTS. Compruebe los tamaos totales de los ndices y escriba el nmero de bloques en el recuadro inferior. Qu se puede afirmar sobre la relacin entre la cardinalidad y los tamaos de los dos tipos de ndices? ndice NUMB_OE_IDX NUMB_NO_IDX Columna ODD_EVEN NO Bloques

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 12-34

Mantenimiento de la Integridad de los Datos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Implementar las restricciones de integridad de los datos Mantener las restricciones de integridad Obtener informacin acerca de las restricciones

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-2

Integridad de los Datos


Disparadores de base de datos Restriccin de integridad

Datos

Cdigo de aplicacin

Tabla

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Integridad de los Datos La integridad de los datos implica que todos los datos de una base de datos siguen las reglas de negocio. Hay tres formas principales de mantener la integridad de los datos: Cdigo de aplicacin Disparadores de base de datos Restricciones de integridad declarativa La asignacin de las reglas de negocio mediante uno de estos tres mtodos es una decisin de diseo. El administrador de la base de datos debe preocuparse principalmente de implementar los mtodos que seleccione el diseador y de equilibrar las necesidades del rendimiento con las necesidades de integridad. El cdigo de aplicacin se puede implementar como procedimientos almacenados dentro de la base de datos o como aplicaciones que se ejecutan en el cliente. Esta leccin se centra en el uso de las restricciones de integridad.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-3

Integridad de los Datos Disparadores de base de datos Los disparadores de base de datos son programas PL/SQL que se ejecutan cuando se produce un evento determinado en una tabla como, por ejemplo, una insercin o una actualizacin de una columna. Los disparadores pueden estar activados o desactivados, es decir, se pueden configurar para que se ejecuten si se produce el evento o para que no se ejecuten aunque estn definidos. Normalmente, los disparadores de base de datos slo se crean para forzar una regla de negocio compleja que no se ha podido definir como una restriccin de integridad. Nota: Los disparadores de base de datos se cubren en otros cursos de Oracle. Restricciones de integridad Las restricciones de integridad son el mecanismo preferido para forzar reglas de negocio ya que: Mejoran el rendimiento Son fciles de declarar y modificar porque no requieren un cdigo extenso Centralizan las reglas Son flexibles (activadas o desactivadas) Estn documentadas por completo en el diccionario de datos En las siguientes secciones se describe el comportamiento de las restricciones de integridad y se analiza cmo las implementa Oracle Server.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-4

Tipos de Restricciones
Constraint NOT NULL Descripcin Especifica que una columna no puede contener valores nulos Designa una columna o combinacin de columnas como nica

UNIQUE

PRIMARY KEY Designa una columna o combinacin de columnas como la clave primaria de la tabla FOREIGN KEY Designa una columna o combinacin de columnas como la clave ajena de una restriccin de integridad referencial CHECK Especifica una condicin que debe cumplir cada fila de la tabla

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Tipos de Restricciones Por defecto, todas las columnas de una tabla admiten valores nulos. Un valor nulo es la ausencia de un valor. Una restriccin NOT NULL requiere que una columna de una tabla contenga valores. La restriccin de clave UNIQUE requiere que todos los valores de una columna o un juego de columnas (clave) sean nicos. No puede haber dos filas de una tabla con valores duplicados en una columna o un juego de columnas especificado. Cada tabla de una base de datos puede contener como mximo una restriccin PRIMARY KEY. La restriccin PRIMARY KEY garantiza que se cumplan las dos condiciones siguientes: No puede haber dos filas de una tabla con valores duplicados en la columna especificada. Las columnas de clave primaria no contienen valores NULL. La restriccin de integridad CHECK aplicada a una columna o a un juego de columnas requiere que una condicin especificada se cumpla o sea desconocida para cada fila de la tabla. Aunque las restricciones NOT NULL y CHECK no requieren la atencin directa del DBA, las restricciones PRIMARY KEY, UNIQUE y FOREIGN KEY se deben gestionar para asegurar una buena disponibilidad y unos niveles de rendimiento aceptables.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-5

Estados de Restriccin
DISABLE NOVALIDATE DISABLE VALIDATE ENABLE NOVALIDATE ENABLE VALIDATE

= =
Datos nuevos Datos existentes
Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Estados de Restriccin Una restriccin de integridad puede estar activada (ENABLE) o desactivada (DISABLE). Si la restriccin est activada, los datos se comprueban cuando se introducen o actualizan en la base de datos. Los datos que no cumplen la regla de la restriccin no se pueden introducir. Si la restriccin est desactivada, se pueden introducir en la base de datos los datos que no la cumplen. Una restriccin de integridad puede tener uno de los siguientes estados: DISABLE NOVALIDATE DISABLE VALIDATE ENABLE NOVALIDATE ENABLE VALIDATE DISABLE NOVALIDATE: La restriccin DISABLE NOVALIDATE no se comprueba. Los datos de una tabla, al igual que los datos nuevos que se introducen o se actualizan, pueden no cumplir las reglas definidas por la restriccin. DISABLE VALIDATE: Si una restriccin se encuentra en este estado, no se permite ninguna modificacin de las columnas restringidas. Adems, se borra el ndice en la restriccin y sta se desactiva. Nota: El ndice no se borra si la restriccin es diferible.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-6

Estados de Restriccin (continuacin) ENABLE NOVALIDATE: Si una restriccin se encuentra en este estado, no se pueden introducir datos nuevos que violen la restriccin. Sin embargo, la tabla puede contener datos que no sean vlidos, es decir, datos que violen la restriccin. La activacin de restricciones con el estado NOVALIDATE resulta de mayor utilidad en configuraciones de almacn de datos que estn cargando datos OLTP vlidos. ENABLE VALIDATE: Si una restriccin se encuentra en este estado, no se pueden insertar filas en la tabla que violen la restriccin. No obstante, se pueden insertar filas de este tipo mientras la restriccin est desactivada. Este tipo de filas se conocen como excepciones a la restriccin. Si la restriccin se encuentra en el estado ENABLE NOVALIDATE, se mantienen las violaciones que se producen como resultado de la introduccin de datos mientras la restriccin estaba desactivada. Para que la restriccin pueda estar en el estado validado, las filas que violan la restriccin se deben actualizar o suprimir. Si una restriccin cambia de un estado desactivado al estado ENABLE VALIDATE, la tabla se bloquea y se comprueba la conformidad de todos los datos de la tabla. Esto puede retrasar otras operaciones DML, como es el caso de una carga de datos; por tanto, se recomienda pasar primero desde un estado desactivado a ENABLE NOVALIDATE y, despus, a ENABLE VALIDATE. Las transiciones entre estos estados se rigen por las siguientes reglas: ENABLE implica VALIDATE, a menos que se especifique NOVALIDATE. DISABLE implica NOVALIDATE, a menos que se especifique VALIDATE. VALIDATE y NOVALIDATE no tienen implicaciones por defecto para los estados ENABLE y DISABLE. Si una clave nica o primaria pasa del estado DISABLE al estado ENABLE y no existe un ndice, se crea automticamente un ndice nico. (Se producir una excepcin si el ndice es diferible.) Del mismo modo, si una clave nica o primaria pasa del estado ENABLE a DISABLE y se activa con un ndice nico, dicho ndice se borra. Si una restriccin pasa del estado NOVALIDATE al estado VALIDATE, se deben comprobar todos los datos. Sin embargo, al pasar de VALIDATE a NOVALIDATE, se olvida que los datos se han comprobado. Al pasar una sola restriccin del estado ENABLE NOVALIDATE al estado ENABLE VALIDATE, no se bloquean las lecturas, las escrituras ni otras sentencias DDL.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-7

Comprobacin de Restricciones

Sentencia DML Comprueba las restricciones no diferidas

COMMIT

Comprueba las restricciones diferidas

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Comprobacin de Restricciones Se puede diferir la comprobacin de la validez de las restricciones hasta el final de la transaccin. Restricciones no diferidas o inmediatas Las restricciones no diferidas, tambin conocidas como restricciones inmediatas, se fuerzan al final de cada sentencia DML. La violacin de una restriccin provoca que se haga rollback en la sentencia. Si una restriccin provoca una accin como, por ejemplo, delete cascade, esa accin se considera parte de la sentencia que la provoc. No se puede modificar una restriccin definida como no diferible para ser forzada al final de una transaccin. Restricciones diferidas Las restricciones diferidas son las que slo se comprueban si se valida una transaccin. Si se detecta cualquier violacin de restricciones en el momento de la validacin, se hace rollback en toda la transaccin. Estas restricciones son tiles principalmente cuando se han introducido las filas principal y secundaria al mismo tiempo en una relacin de clave ajena, como es el caso de un sistema de entrada de pedidos, donde se introduce al mismo tiempo el pedido y los elementos del pedido.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-8

Comprobacin de Restricciones (continuacin) Una restriccin definida como diferible se puede especificar como: Initially immediate (inmediata inicialmente), que especifica que, por defecto, debera funcionar como una restriccin inmediata, a menos que se defina lo contrario explcitamente. Initially deferred (diferida inicialmente), que especifica que, por defecto, la restriccin slo se debera forzar al final de la transaccin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-9

Definicin de Restricciones Inmediatas o Diferidas


Utilice la sentencia SET CONSTRAINTS para definir las restricciones como DEFERRED o IMMEDIATE. La sentencia ALTER SESSION tambin tiene clusulas para definir restricciones como DEFERRED o IMMEDIATE.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Definicin de Restricciones Inmediatas o Diferidas La sentencia SET CONSTRAINTS define las restricciones como DEFERRED o IMMEDIATE para una transaccin en concreto. Esta sentencia se puede utilizar para definir el modo de una lista de nombres de restricciones o de restricciones. El modo SET CONSTRAINTS se mantiene mientras dura la transaccin o hasta que otra sentencia SET CONSTRAINTS lo restablece. No se permite utilizar la sentencia SET CONSTRAINTS dentro de disparadores. La sentencia ALTER SESSION tambin tiene clusulas para definir restricciones como DEFERRED o IMMEDIATE. Este comando implica que se definen TODAS las restricciones diferibles (no se puede especificar una lista de nombres de restricciones.) La sentencia ALTER SESSION SET CONSTRAINTS slo se aplica a una sesin actual. ALTER SESSION SET CONSTRAINT[S] = {IMMEDIATE|DEFERRED|DEFAULT} SET CONSTRAINT | CONSTRAINTS {restriccin |ALL } {IMMEDIATE|DEFERRED}
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-10

Forzado de las Claves nica y Primaria


Hay algn S ndice disponible para utilizarlo? Es la restriccin diferible?

Est activada la clave?

Es el ndice no nico?

No Es la restriccin diferible? S

No

No/S

Utilizar un ndice existente

No No utilizar ningn ndice

No Crear un ndice nico Crear un ndice no nico

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Forzado de las Claves nica y Primaria Las claves primaria y nica se fuerzan mediante ndices. Puede controlar la ubicacin y el tipo de ndice que se utiliza para forzar estas restricciones. Oracle Server utiliza el siguiente procedimiento para implementar restricciones de clave nica y primaria: Si la restriccin est desactivada, no hacen falta ndices. Si la restriccin est activada y las columnas de la restriccin forman la parte principal de un ndice, se utilizar el ndice para forzar la restriccin, ya se haya creado como ndice nico o como no nico. Si la restriccin est activada y no hay ningn ndice que utilice las columnas de la restriccin como parte principal del ndice, se crea un ndice con el mismo nombre que la restriccin con las siguientes reglas: - Si la clave es diferible, se crea un ndice no nico en la columna clave. - Si la clave es no diferible, se crea un ndice nico. Si existe un ndice disponible y la restriccin no es diferible, utilice el ndice existente. Si la restriccin es diferible y el ndice es no nico, utilice el ndice existente.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-11

Consideraciones acerca de la Clave Ajena

Accin Deseada Borrar tabla principal Truncar la tabla principal Borrar el tablespace que contiene la tabla principal Realizar operaciones DML en la tabla secundaria

Solucin Adecuada Restricciones de cascada Desactivar o borrar la clave ajena Utilizar la clusula CASCADE CONSTRAINTS Comprobar que el tablespace que contiene la clave principal est en lnea

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Consideraciones acerca de la Clave Ajena Debera tener en cuenta varios factores a la hora de mantener tablas que estn en una relacin de clave ajena. Operaciones DDL relacionadas con tablas principales La clave ajena se debe borrar antes que la tabla principal. Se puede utilizar la siguiente sentencia para realizar ambas acciones: DROP TABLE tabla CASCADE CONSTRAINTS La tabla principal no se puede truncar sin borrar o desactivar la clave ajena. Se debe borrar la clave ajena antes que el tablespace que contiene la tabla principal. Para ello, puede utilizar el siguiente comando: DROP TABLESPACE tablespace INCLUDING CONTENTS CASCADE CONSTRAINTS

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-12

Consideraciones acerca de la Clave Ajena (continuacin) Si no se utiliza la opcin DELETE CASCADE al suprimir las filas de la tabla principal, Oracle Server se debe asegurar de que no haya filas en la tabla secundaria con la correspondiente clave ajena. De igual forma, slo se permite realizar una actualizacin de la clave principal si no hay filas secundarias con el antiguo valor de la clave. Si no hay ndices basados en la clave ajena de la tabla secundaria, Oracle Server bloquea la tabla secundaria y no permite realizar cambios para asegurar la integridad referencial. Si hay un ndice en la tabla, se mantiene la integridad referencial bloqueando las entradas de ndice y evitando ms bloqueos restrictivos en la tabla secundaria. Si es necesario actualizar simultneamente las dos tablas a partir de transacciones distintas, cree un ndice basado en las columnas de clave ajena. Al insertar datos en la tabla secundaria o al actualizar la columna de clave ajena de la tabla secundaria, Oracle Server comprueba el ndice de la tabla principal que se utiliza para forzar la clave de referencia. Por tanto, la operacin slo se realiza correctamente si el tablespace que contiene el ndice est en lnea. Tenga en cuenta que no es necesario que el tablespace que contiene la tabla principal est en lnea para realizar operaciones DML en la tabla secundaria. Oracle9i ya no requiere un bloqueo compartido en claves ajenas sin indexar al realizar una actualizacin o una supresin en la clave primaria. No obstante, sigue obteniendo el bloqueo compartido en el nivel de la tabla, pero lo libera inmediatamente despus de adquirirlo. Si se actualizan o suprimen mltiples claves primarias, se obtiene y libera el bloqueo una vez por fila.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-13

Definicin de Restricciones al Crear una Tabla


CREATE TABLE hr.employee( id NUMBER(7) CONSTRAINT employee_id_pk PRIMARY KEY DEFERRABLE USING INDEX STORAGE(INITIAL 100K NEXT 100K) TABLESPACE indx, last_name VARCHAR2(25) CONSTRAINT employee_last_name_nn NOT NULL, dept_id NUMBER(7)) TABLESPACE users;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Definicin de Restricciones al Crear una Tabla Se puede definir una restriccin al crear o modificar una tabla. Utilice la clusula clusula_restriccin en una sentencia CREATE TABLE o ALTER TABLE para definir una restriccin. Para definir una restriccin de integridad, debe tener los privilegios necesarios. Para crear una restriccin de integridad referencial, la tabla principal debe estar en su propio esquema o se debe tener el privilegio REFERENCES sobre las columnas de la clave de referencia de la tabla principal.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-14

Definicin de Restricciones al Crear una Tabla (continuacin) La sintaxis restriccin_columna forma parte de la definicin de la tabla. En el momento de la creacin de la tabla, puede definir la restriccin con la siguiente sintaxis: columna tipo_de_dato [CONSTRAINT restriccin] {[NOT] NULL |UNIQUE [USING INDEX clusula_ndice] |PRIMARY KEY [USING INDEX clusula_ndice] |REFERENCES [esquema.]tabla [(columna)] [ON DELETE CASCADE] |CHECK (condicin)} estado_restriccin :== [NOT DEFERRABLE|DEFERRABLE [INITIALLY {IMMEDIATE|DEFERRED}]] [DISABLE|ENABLE [VALIDATE|NOVALIDATE]] donde: CONSTRAINT: Identifica la restriccin de integridad por el nombre restriccin almacenado en el diccionario de datos. USING INDEX: Especifica que se deberan utilizar los parmetros definidos en la clusula clusula_ndice para el ndice que Oracle Server usa para forzar una restriccin de clave nica o primaria. (El nombre del ndice es el mismo que el nombre de la restriccin.) DEFERRABLE: Indica que la comprobacin de restriccin se puede diferir hasta el final de la transaccin mediante el comando SET CONSTRAINT. NOT DEFERRABLE: Indica que esta restriccin se comprueba al final de cada sentencia DML. (Ni las sesiones ni las transacciones pueden diferir una restriccin NOT DEFERRABLE. La opcin por defecto es NOT DEFERRABLE.) INITIALLY IMMEDIATE: Indica que al inicio de cada transaccin, la opcin por defecto es comprobar esta restriccin al final de cada sentencia DML. (Si no se especifica ninguna clusula INITIALLY, INITIALLY IMMEDIATE se utiliza por defecto.) INITIALLY DEFERRED: Implica que esta restriccin es DEFERRABLE y especifica que, por defecto, la restriccin slo se comprueba al final de cada transaccin. DISABLE: Desactiva la restriccin de integridad. (Si una restriccin de integridad se desactiva, Oracle Server no la fuerza.)

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-15

Definicin de Restricciones al Crear una Tabla (continuacin) Uso de Oracle Enterprise Manager para Definir Restricciones Desde la Consola de OEM: 1. Navegue a Schema > [Nombre del esquema] > Tables. 2. Seleccione Create en el men derecho del mouse. 3. Rellene la informacin necesaria en la pgina del separador General. 4. Abra la pgina del separador Constraints y defina las restricciones de integridad. 5. Haga clic en Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-16

Definicin de Restricciones al Crear una Tabla (continuacin) Restriccin de tabla Una restriccin de tabla forma parte de la definicin de la tabla. Puede definir cualquier tipo de restriccin excepto una restriccin NOT NULL. Esta restriccin se define mediante la siguiente sintaxis: columna tipo_de_dato [CONSTRAINT restriccin] {PRIMARY KEY (columna [, columna ]... ) [USING INDEX clusula_ndice] |UNIQUE (columna [, columna ]... ) [USING INDEX clusula_ndice] |FOREIGN KEY (columna [, columna ]... ) REFERENCES [esquema.]tabla [(columna [, columna ]... )] [ON DELETE CASCADE] |CHECK (condicin)} [estado_restriccin] Nota Es aconsejable adoptar unas reglas de nomenclatura estndar para las restricciones. Esto se aplica especialmente a las restricciones CHECK porque se puede crear la misma restriccin varias veces con nombres distintos. Las restricciones de tabla son necesarias en los siguientes casos: - Si una restriccin asigna nombres a dos o ms columnas - Cuando se modifica una tabla para agregar cualquier otra restriccin aparte de la restriccin NOT NULL La definicin de una restriccin a partir del tipo NOT NULL despus de crear una tabla slo es posible con: ALTER TABLE tabla MODIFY columna CONSTRAINT restriccin NOT NULL; Definicin de restricciones despus de crear una tabla: Ejemplo SQL> ALTER TABLE hr.employee 2 ADD(CONSTRAINT employee_dept_id_fk FOREIGN KEY(dept_id) 3 REFERENCES hr.department(id) 4 DEFERRABLE INITIALLY DEFERRED); Nota: La clusula EXCEPTIONS, que se analiza en "Activacin de Restricciones" posteriormente en esta leccin, se puede utilizar para identificar filas que violan una restriccin que se agrega mediante el comando ALTER TABLE.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-17

Instrucciones para Definir Restricciones


Restricciones nicas y primarias: Coloque ndices en un tablespace independiente. Utilice ndices no nicos si las cargas en bloque son frecuentes. Claves ajenas de autoreferencia: Defina o active claves ajenas despus de la carga inicial. Difiera la comprobacin de restricciones.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Instrucciones para Definir Restricciones Las siguientes instrucciones son tiles a la hora de definir restricciones: Coloque los ndices que se utilizan para forzar restricciones nicas y de clave primaria en un tablespace distinto al de la tabla. Para ello, especifique la clusula USING INDEX o cree la tabla, cree el ndice y modifique la tabla para agregar o activar la restriccin. Si los datos se suelen cargar en bloque en la tabla, es preferible desactivar las restricciones, realizar la carga y, a continuacin, volver a activar las restricciones. Si se utiliza un ndice nico para forzar una restriccin nica o de clave primaria, es necesario borrar este ndice cuando se desactiva la restriccin. Se puede mejorar el rendimiento utilizando un ndice no nico para forzar restricciones nicas o de clave primaria en este tipo de situaciones; puede crear la clave como diferible o crear el ndice antes de definir o activar la clave. Si una tabla contiene una clave ajena de autoreferencia, utilice uno de los siguientes mtodos para cargar datos: - Defina o active la clave ajena despus de la carga inicial. - Defina la restriccin como diferible. El segundo mtodo resulta til si las cargas de datos son frecuentes.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-18

Activacin de Restricciones
No hay bloqueos en la tabla Las claves primarias y nicas debern utilizar ndices no nicos

ENABLE NOVALIDATE

ALTER TABLE hr.departments ENABLE NOVALIDATE CONSTRAINT dept_pk;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Activacin de Restricciones Una restriccin que est desactivada actualmente se puede activar con uno de estos dos mtodos: ENABLE NOVALIDATE o ENABLE VALIDATE. Activacin de NOVALIDATE Para las restricciones PRIMARY KEY y UNIQUE que ya tienen un ndice, es mucho ms rpido activar una restriccin NOVALIDATE que activar una restriccin VALIDATE, porque no se comprueban las violaciones de restricciones en los datos existentes si la restriccin es diferible. Si se utiliza esta opcin para activar una restriccin, los bloqueos en la tabla no son necesarios. Este mtodo es adecuado si hay una gran actividad DML en una tabla, como ocurre en un entorno OLTP. Se puede utilizar el siguiente comando para activar una restriccin ENABLE NOVALIDATE: ALTER TABLE [ esquema. ] tabla ENABLE NOVALIDATE {CONSTRAINT restriccin | PRIMARY KEY | UNIQUE ( columna [, columna ] ... ) } [USING INDEX clusula_ndice]
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-19

Activacin de Restricciones (continuacin) Restricciones La clusula USING INDEX slo es aplicable a las restricciones de clave primaria o nica creadas como diferibles y cuando se cumple una de las siguientes condiciones: Las restricciones se han creado desactivadas. Las restricciones se han desactivado y el ndice se ha borrado. Sin embargo, si es necesario crear los ndices, el uso de este mtodo para activar una restriccin no ofrece ninguna ventaja importante en comparacin con ENABLE VALIDATE, porque Oracle Server bloquea la tabla para crear el ndice. Nota: La desactivacin de restricciones se cubre en el curso Introduction to Oracle9i: SQL Basics and Introduction to Oracle9i PL/SQL.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-20

Activacin de Restricciones (continuacin) Uso de Oracle Enterprise Manager para Definir Restricciones Desde la Consola de OEM: 1. Navegue a Schema > [Nombre del esquema] > Tables. 2. Seleccione la tabla en la que se van a modificar las restricciones. 3. Haga clic en la pgina del separador Constraints y realice los cambios necesarios. 4. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-21

Activacin de Restricciones
Bloquea la tabla Puede utilizar ndices nicos o no nicos Necesita datos de tabla vlidos

ENABLE VALIDATE

ALTER TABLE hr.employees ENABLE VALIDATE CONSTRAINT emp_dept_fk;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Activacin de Restricciones La activacin de una restriccin VALIDATE hace que se compruebe si hay violaciones de restricciones en los datos existentes. ste es el valor por defecto cuando se activa una restriccin. Si se ejecuta cuando la restriccin est desactivada, tiene los siguientes efectos: La tabla se bloquea y no se permite realizar cambios en ella hasta que se haya terminado la validacin de los datos existentes. Oracle Server crea un ndice si no hay ninguno en las columnas del ndice. Crea un ndice nico mientras activa una restriccin de clave nica o primaria no diferible. Se construye un ndice no nico para una restriccin diferible de clave nica o primaria. Si se ejecuta este comando cuando se fuerza una restriccin, no es necesario ningn bloqueo de tabla durante la validacin. El forzado de la restriccin garantiza que no haya violaciones durante la validacin. Tiene las siguientes ventajas: Todas las restricciones se activan simultneamente. Hay un paralelismo interno en cada restriccin. Se permite la actividad simultnea en la tabla.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-22

Activacin de Restricciones (continuacin) Utilice el siguiente comando para activar una restriccin ENABLE VALIDATE: ALTER TABLE [ esquema. ] tabla ENABLE [ VALIDATE ]{CONSTRAINT restriccin | PRIMARY KEY | UNIQUE ( columna [, columna ] ... )} [USING INDEX clusula_ndice] [ EXCEPTIONS INTO [ esquema. ] tabla ] Nota La opcin VALIDATE est activada por defecto y no es necesario especificarla cuando se activa una restriccin que est desactivada. Si los datos de la tabla violan la restriccin, se hace rollback en la sentencia y la restriccin contina desactivada. El uso de la clusula EXCEPTIONS se analiza en la siguiente seccin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-23

Cambio de Nombre de las Restricciones


Para cambiar el nombre de una restriccin, utilice:
ALTER TABLE employees RENAME CONSTRAINT emp_dept_fk TO employees_dept_fk;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Cambio de Nombre de las Restricciones En la base de datos Oracle9i Versin 2, se puede cambiar el nombre de las restricciones con la siguiente sintaxis: ALTER TABLE [esquema.]nombre_tabla RENAME CONSTRAINT nombre_restriccin_antiguo TO nombre_restriccin_nuevo;

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-24

Cambio de Nombre de las Restricciones (continuacin) Uso de Oracle Enterprise Manager para Cambiar el Nombre de una Restriccin Desde la Consola de OEM: 1. Navegue a Schema > [Nombre del esquema] > Tables. 2. Seleccione la tabla en la que se va a modificar la restriccin. 3. Abra la pgina del separador Constraints y escriba el nuevo nombre de la restriccin. 4. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-25

Uso de la Tabla EXCEPTIONS


Cree la tabla EXCEPTIONS ejecutando el archivo de comandos utlexcpt1.sql. Ejecute la sentencia ALTER TABLE con la opcin EXCEPTIONS. Utilice una subconsulta en EXCEPTIONS para encontrar filas con datos no vlidos. Rectifique los errores. Vuelva a ejecutar ALTER TABLE para activar la restriccin.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Uso de la Tabla EXCEPTIONS La clusula EXCEPTIONS identifica cualquier fila que viole una restriccin activada. Utilice el siguiente procedimiento para detectar violaciones de restricciones, rectificarlas y reactivar una restriccin: 1. Si no se ha creado an EXCEPTIONS, ejecute el archivo de comandos utlexcpt1.sql: SQL> @?/rdbms/admin/utlexpt1 Statement processed. SQL> DESCRIBE exceptions Name Null? Type -------------------------------ROW_ID ROWID OWNER VARCHAR2(30) TABLE_NAME VARCHAR2(30) CONSTRAINT VARCHAR2(30) Nota: El nombre y la ubicacin exactos del archivo de comandos utlexcpt1.sql son especficos del sistema operativo. Para obtener ms informacin, consulte la documentacin de Oracle especfica de su sistema operativo.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-26

Uso de la Tabla EXCEPTIONS (continuacin) 2. Ejecute el comando ALTER TABLE con la clusula EXCEPTIONS: SQL> ALTER TABLE hr.employee 2 ENABLE VALIDATE CONSTRAINT employee_dept_id_fk 3 EXCEPTIONS INTO system.exceptions; ALTER TABLE hr.employee * ORA-02298: cannot enable (HR.EMPLOYEE_DEPT_ID_FK) parent keys not found Si la tabla EXCEPTIONS no est cualificada con el nombre del propietario, debe pertenecer al propietario de la tabla que se est modificando. Las filas se insertan en la tabla EXCEPTIONS. Si est ejecutando de nuevo el comando, trunque la tabla EXCEPTIONS para eliminar todas las filas existentes. 3. Identifique los datos no vlidos realizando una subconsulta en la tabla EXCEPTIONS: SQL> SELECT rowid, id, last_name, dept_id 2 FROM hr.employee 3 WHERE ROWID in (SELECT row_id 4 FROM exceptions) 5 FOR UPDATE; ROWID ID LAST_NAME DEPT_ID ------------------ ---- --------- ------AAAAeyAADAAAAA1AAA 1003 Pirie 50 1 row selected. 4. Corrija los errores en los datos: SQL> UPDATE hr.employee 2 SET dept_id=10 3 WHERE rowid=AAAAeyAADAAAAA1AAA; 1 row processed. SQL> COMMIT; Statement processed.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-27

Uso de la Tabla EXCEPTIONS (continuacin) 5. Trunque la tabla EXCEPTIONS y reactive la restriccin: SQL> TRUNCATE TABLE exceptions; Statement processed. SQL> ALTER TABLE hr.employee 2 ENABLE VALIDATE CONSTRAINT employee_dept_id_fk 3 EXCEPTIONS INTO system.exceptions; Statement processed.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-28

Obtencin de Informacin acerca de las Restricciones


Para obtener informacin acerca de las restricciones, consulte las siguientes vistas: DBA_CONSTRAINTS DBA_CONS_COLUMNS

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Obtencin de Informacin acerca de las Restricciones Utilice la siguiente consulta para obtener los nombres, tipos y estados de todas las restricciones de la tabla EMPLOYEES de HR: SQL> SELECT constraint_name, constraint_type, deferrable, 2 deferred, validated 3 FROM dba_constraints 4 WHERE owner='HR' 5 AND table_name='EMPLOYEES'; CONSTRAINT_NAME C DEFERRABLE DEFERRED VALIDATED ---------------- - --------------- ----------- ---------EMPLOYEE_DEPT.. R DEFERRABLE DEFERRED VALIDATED EMPLOYEE_ID_PK P DEFERRABLE IMMEDIATE VALIDATED SYS_C00565 C NOT DEFERRABLE IMMEDIATE VALIDATED 3 rows selected.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-29

Obtencin de Informacin acerca de las Restricciones (continuacin) La siguiente tabla muestra las columnas de la vista DBA_CONSTRAINTS que no son obvias: Nombre CONSTRAINT_TYPE Descripcin El tipo de restriccin es P si es de Clave primaria, U si es nica, R si es de Clave ajena o C si es de Control. Las restricciones NOT NULL se almacenan como restricciones de control. Muestra la condicin especificada para una restriccin de control Define el propietario y el nombre de la restriccin de referencia para claves ajenas Indica si el nombre de la restriccin est generado por el sistema (los valores vlidos son USERNAME y GENERATED NAME). Indica que se va a volver a escribir la restriccin para evitar situaciones como, por ejemplo, los problemas del ao 2000 Si este indicador est definido, se utiliza en el optimizador Muestra la ltima fecha en que se activ o desactiv la restriccin

SEARCH_CONDITION R_OWNER R_CONSTRAINT_NAME GENERATED BAD RELY LAST_CHANGE

Columnas de restricciones Para obtener las columnas de las restricciones de la tabla EMPLOYEES de HR, utilice la siguiente consulta: SQL> SELECT c.constraint_name, c.constraint_type, 2 cc.column_name 3 FROM dba_constraints c, dba_cons_columns cc 4 WHERE c.owner='HR' 5 AND c.table_name='EMPLOYEE' 6 AND c.owner = cc.owner 7 AND c.constraint_name = cc.constraint_name 8 ORDER BY cc.position; CONSTRAINT_NAME C COLUMN_NAME ---------------- - --------------EMPLOYEE_DEPT... R DEPT_ID EMPLOYEE_ID_PK P ID SYS_C00565 C LAST_NAME 3 rows selected.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-30

Obtencin de Informacin acerca de las Restricciones (continuacin) Bsqueda de relaciones de clave primaria y de clave ajena Para buscar claves ajenas en la tabla EMPLOYEE de HR y las restricciones principales, utilice la siguiente consulta: SQL> SELECT c.constraint_name AS "Foreign Key", 2 p.constraint_name AS "Referenced Key", 3 p.constraint_type, 4 p.owner, 5 p.table_name 6 FROM dba_constraints c, dba_constraints p 7 WHERE c.owner='HR' 8 AND c.table_name='EMPLOYEE' 9 AND c.constraint_type='R' 10 AND c.r_owner=p.owner 11 AND c.r_constraint_name = p.constraint_name; Foreign Key Referenced Key C OWNER TABLE_NAME ------------------------- - ---------- ---------EMPLOYEES_DEPT.. DEPT_PK P HR DEPARTMENT 1 row selected.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-31

Resumen
En esta leccin, ha aprendido a: Implementar la integridad de los datos Utilizar una estrategia adecuada para crear y mantener restricciones Obtener informacin acerca de las restricciones

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-32

Prctica 13: Visin General


Esta prctica abarca los siguientes temas: Creacin de restricciones Activacin de restricciones nicas Creacin de una tabla EXCEPTIONS Identificacin de las violaciones de restricciones existentes en una tabla, correccin de los errores y reactivacin de las restricciones

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-33

Prctica 13: Mantenimiento de la Integridad de los Datos 1 Examine y ejecute el archivo de comandos lab13_01.sql para crear las restricciones. 2 Como usuario SYSTEM, consulte el diccionario de datos para: a Comprobar las restricciones, si son diferibles y su estado. Indicacin: Utilice la vista DBA_CONSTRAINTS para obtener esta informacin. b Compruebe los nombres y los tipos de ndices creados para validar las restricciones. Indicacin: Los ndices slo se han creado para las restricciones de clave primaria y nica, y tienen el mismo nombre que las restricciones. 3 Como usuario SYSTEM, ejecute el archivo de comandos lab13_03.sql para insertar dos registros en la tabla PRODUCTS. 4 Active la restriccin nica en la tabla PRODUCTS. Se realiz correctamente? 5 a Asegrese de que las nuevas filas agregadas a la tabla no violan la restriccin de la tabla PRODUCTS. Indicacin: Esto se puede hacer activando la restriccin NOVALIDATE. b Consulte el diccionario de datos para verificar los efectos del cambio. c Compruebe que la restriccin desactiva las inserciones que violan el cambio agregando una fila con los siguientes valores.
PRODUCT_ID PRODUCT_DESCRIPTION LIST_PRICE

4000

Monitor

3000

6 Siga los pasos necesarios para identificar las violaciones de restricciones existentes en la tabla PRODUCTS, modifique los cdigos de producto que sea necesario y garantice que todos los datos existentes, as como los nuevos, no violan la restriccin. (Suponga que la tabla tiene varios miles de filas y lleva demasiado tiempo comprobar cada fila de forma manual). Indicacin: Haga lo siguiente: a Cree la tabla EXCEPTIONS. b Ejecute el comando para activar la restriccin e interrumpir las excepciones. c Utilice los ROWID en la tabla EXCEPTIONS para enumerar las filas de la tabla PRODUCTS que violan la restriccin. No enumere las columnas LOB. d Rectifique los errores. e Active la restriccin. 7 Ejecute el archivo de comandos lab13_07.sql para insertar filas en la tabla. Se realizaron las inserciones correctamente? 8 Examine ahora el archivo de comandos lab13_08. Tenga en cuenta que este archivo de comandos tambin realiza las inserciones en la misma secuencia. Ejecute el archivo de comandos y compruebe si se ejecuta correctamente. 9 Trunque la tabla CUSTOMERS. Se realiz correctamente?

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 13-34

Gestin de la Seguridad de Contraseas y Recursos

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Objetivos
Al finalizar esta leccin, debera estar capacitado para: Gestionar contraseas utilizando perfiles Administrar perfiles Controlar el uso de los recursos utilizando perfiles Obtener informacin acerca de los lmites de los recursos y las contraseas

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-2

Perfiles
Un perfil es un juego denominado de lmites de recursos y contraseas. Los perfiles se asignan a los usuarios mediante los comandos CREATE USER o ALTER USER. Los perfiles se pueden activar o desactivar. Los perfiles se pueden relacionar con el perfil DEFAULT.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Perfiles Un perfil es un juego denominado de los siguientes lmites de recursos y contraseas: Vencimiento y antigedad de las contraseas Historial de contraseas Verificacin de la complejidad de las contraseas Bloqueo de cuentas Tiempo de CPU Operaciones de entrada/salida (E/S) Tiempo de inactividad Tiempo de conexin Espacio de memoria (slo rea SQL privada para servidor compartido) Sesiones simultneas Una vez creado un perfil, el administrador de la base de datos lo puede asignar a cada usuario. Si se activan los lmites de recursos, Oracle Server limita el uso de la base de datos y los recursos al perfil definido del usuario.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-3

Perfiles (continuacin) Oracle Server crea automticamente un perfil DEFAULT cuando se crea la base de datos. Los usuarios que no se han asignado explcitamente a un perfil concreto se ajustan a todos los lmites del perfil DEFAULT. Todos los lmites del perfil DEFAULT son ilimitados inicialmente. Sin embargo, el administrador de la base de datos puede cambiar los valores para que se apliquen lmites a todos los usuarios por defecto. Uso de los perfiles Restringe a los usuarios ciertas operaciones que requieren un uso intenso de los recursos. Garantiza la desconexin de los usuarios de la base de datos tras un perodo de inactividad en la sesin. Activa los lmites de recursos de grupo para usuarios similares. Asigna fcilmente lmites de recursos a los usuarios. Gestiona el uso de recursos en sistemas de bases de datos para varios usuarios complejos y de gran tamao. Controla el uso de las contraseas Caractersticas de los perfiles Las asignaciones de perfiles no afectan a las sesiones actuales. Los perfiles slo se pueden asignar a usuarios, no a roles ni a otros perfiles. Si no asigna un perfil al crear un usuario, a ste se le asignar automticamente el perfil DEFAULT.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-4

Gestin de Contraseas

Historial de contraseas

Bloqueo de cuentas

Usuario

Configuracin de perfiles Verificacin de contraseas

Vencimiento y antigedad de contraseas

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de Contraseas Para tener un mayor control sobre la seguridad de la base de datos, los administradores de bases de datos controlan la gestin de las contraseas de Oracle con perfiles. En esta leccin se describen las funciones de gestin de contraseas disponibles: Bloqueo de cuentas: Permite el bloqueo automtico de una cuenta si un usuario no se puede conectar al sistema en el nmero especificado de intentos. Vencimiento y antigedad de contraseas: Permite que la contrasea tenga una duracin, despus de la cual vence y se debe cambiar. Historial de contraseas: Comprueba la nueva contrasea para verificar que no se vuelva a utilizar durante un tiempo determinado o durante un nmero especificado de cambios de contrasea. Verificacin de complejidad de la contrasea: Realiza una comprobacin de complejidad en la contrasea para verificar que es lo suficientemente compleja como para ofrecer proteccin contra los intrusos que intenten entrar en el sistema averiguando la contrasea.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-5

Activacin de la Gestin de Contraseas


Configure la gestin de contraseas utilizando perfiles y asignndolos a los usuarios. Bloquee, desbloquee y haga que venzan las cuentas mediante los comandos CREATE USER o ALTER USER. Siempre se fuerzan los lmites de contraseas. Para activar la gestin de contraseas, ejecute el archivo de comandos utlpwdmg.sql como usuario SYS.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Activacin de la Gestin de Contraseas Cree el perfil para limitar las definiciones de contraseas y asgnelo al usuario mediante los comandos CREATE USER o ALTER USER. Siempre se fuerzan las definiciones de lmites de contraseas. Si est activada la gestin de contraseas, se puede bloquear o desbloquear la cuenta del usuario con los comandos CREATE USER o ALTER USER Nota: Consulte la leccin Gestin de Usuarios para obtener ms informacin acerca del comando CREATE USER.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-6

Bloqueo de Cuentas de Contraseas

Parmetro FAILED_LOGIN_ATTEMPTS

Descripcin Nmero de intentos de conexin fallidos antes de que se bloquee la cuenta Nmero de das que est bloqueada la cuenta despus del nmero especificado de intentos de conexin fallidos

PASSWORD_LOCK_TIME

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Bloqueo de Cuentas de Contraseas Oracle Server bloquea automticamente una cuenta si se alcanza el valor definido por el parmetro FAILED_LOGIN_ATTEMPTS. La cuenta se desbloquear automticamente tras un perodo de tiempo especificado, definido por el parmetro PASSWORD_LOCK_TIME, o la deber desbloquear el administrador de la base de datos con el comando ALTER USER. La cuenta de la base de datos se puede bloquear explcitamente con el comando ALTER USER. Si es as, la cuenta no se desbloquea automticamente. Nota: El comando ALTER USER se explicar posteriormente en esta misma leccin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-7

Vencimiento y Antigedad de Contraseas

Parmetro PASSWORD_LIFE_TIME

Parmetro Das de duracin de la contrasea, despus de los cuales vence Das del perodo de gracia para cambiar la contrasea despus de la primera conexin correcta, una vez que la contrasea ha vencido

PASSWORD_GRACE_TIME

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Vencimiento y Antigedad de Contraseas El parmetro PASSWORD_LIFE_TIME establece la duracin mxima tras la cual se debe cambiar la contrasea. El administrador de la base de datos puede especificar un perodo de gracia PASSWORD_GRACE_TIME, que se inicia despus del primer intento de conexin a la base de datos, una vez vencida la contrasea. Cada vez que el usuario se intenta conectar, se genera un mensaje de advertencia hasta que termina el perodo de gracia. El usuario debe cambiar la contrasea dentro del perodo de gracia. Si no se cambia la contrasea, la cuenta se bloquea. El estado de la cuenta del usuario se cambia a EXPIRED definiendo explcitamente la contrasea para que venza.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-8

Historial de Contraseas

Parmetro PASSWORD_REUSE_TIME

Descripcin Nmero de das que deben transcurrir para que una contrasea se pueda volver a utilizar Nmero mximo de cambios necesarios para que una contrasea se pueda volver a utilizar

PASSWORD_REUSE_MAX

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Historial de Contraseas La comprobacin del historial de contraseas garantiza que un usuario no pueda volver a utilizar una contrasea durante un intervalo de tiempo especificado. Estas comprobaciones se pueden implementar con: PASSWORD_REUSE_TIME: Especifica que un usuario no puede volver a utilizar una contrasea durante un nmero determinado de das PASSWORD_REUSE_MAX: Fuerza a un usuario para que defina una contrasea que no sea idntica a otras contraseas anteriores Si uno de los parmetros se define en un valor distinto de DEFAULT o UNLIMITED, el otro se debe definir en UNLIMITED.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-9

Verificacin de Contraseas

Parmetro PASSWORD_VERIFY_FUNCTION

Descripcin Funcin PL/SQL que realiza una comprobacin de complejidad de la contrasea antes de asignarla

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Verificacin de Contraseas Antes de asignar una contrasea nueva a un usuario, se puede llamar a la funcin PL/SQL para verificar la validez de la misma. Oracle Server proporciona una rutina de verificacin por defecto o el administrador de la base de datos puede escribir una funcin PL/SQL.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-10

Funcin de Contrasea Proporcionada por el Usuario


Esta funcin se debe crear en el esquema SYS y debe tener la siguiente especificacin:
nombre_funcin( parmetro_identificador_usuario IN VARCHAR2(30), parmetro_contrasea IN VARCHAR2(30), parmetro_contrasea_antigua IN VARCHAR2(30)) RETURN BOOLEAN

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Funcin de Contrasea Proporcionada por el Usuario Cuando se agrega una funcin de verificacin de contrasea nueva, el administrador de la base de datos debe tener en cuenta las siguientes restricciones: El procedimiento debe utilizar la especificacin indicada en la transparencia. El procedimiento devuelve el valor TRUE cuando se ejecuta correctamente y FALSE cuando falla. Si la funcin de contrasea emite una excepcin, se devuelve un error y el comando ALTER USER o CREATE USER termina. El propietario de la funcin de contrasea es SYS. Si la funcin de contrasea no es vlida, se devuelve un mensaje de error y el comando ALTER USER o CREATE USER termina. Nota: Consulte la leccin Gestin de Usuarios para obtener ms informacin acerca del comando CREATE USER.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-11

Funcin de Verificacin de Contraseas VERIFY_FUNCTION


Debe tener una longitud mnima de cuatro caracteres. La contrasea no debe ser igual que el nombre del usuario. La contrasea debera tener, como mnimo, un carcter alfabtico, uno numrico y uno especial. La contrasea debera ser diferente a la anterior como mnimo en tres letras.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Funcin de Verificacin de Contraseas Oracle Server proporciona una funcin de verificacin de complejidad, que es una funcin PL/SQL por defecto llamada VERIFY_FUNCTION del archivo de comandos utlpwdmg.sql, que se debe ejecutar en el esquema SYS. Durante la ejecucin de dicho archivo de comandos, Oracle Server crea la funcin VERIFY_FUNCTION y modifica el perfil DEFAULT con el siguiente comando ALTER PROFILE: SQL> ALTER PROFILE DEFAULT LIMIT 2 PASSWORD_LIFE_TIME 60 3 PASSWORD_GRACE_TIME 10 4 PASSWORD_REUSE_TIME 1800 5 PASSWORD_REUSE_MAX UNLIMITED 6 FAILED_LOGIN_ATTEMPTS 3 7 PASSWORD_LOCK_TIME 1/1440 8 PASSWORD_VERIFY_FUNCTION funcin_verificacin;

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-12

Creacin de un Perfil: Definicin de la Contrasea

CREATE PROFILE grace_5 LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME UNLIMITED PASSWORD_LIFE_TIME 30 PASSWORD_REUSE_TIME 30 PASSWORD_VERIFY_FUNCTION funcin_verificacin PASSWORD_GRACE_TIME 5;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de un Perfil Utilice el siguiente comando CREATE PROFILE para administrar las contraseas: CREATE PROFILE perfil LIMIT [FAILED_LOGIN_ATTEMPTS valor_mximo] [PASSWORD_LIFE_TIME valor_mximo] [ {PASSWORD_REUSE_TIME |PASSWORD_REUSE_MAX} valor_mximo] [PASSWORD_LOCK_TIME valor_mximo] [PASSWORD_GRACE_TIME valor_mximo] [PASSWORD_VERIFY_FUNCTION {funcin|NULL|DEFAULT} ]

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-13

Creacin de un Perfil (continuacin) donde PROFILE: Es el nombre del perfil que se va a crear. FAILED_LOGIN_ATTEMPTS: Especifica el nmero de intentos fallidos de conexin a la cuenta del usuario antes de que se bloquee la cuenta. PASSWORD_LIFE_TIME: Limita el nmero de das en que se puede utilizar la misma contrasea para la autenticacin. La contrasea vence si no se cambia durante este perodo y las conexiones posteriores son rechazadas. PASSWORD_REUSE_TIME: Especifica el nmero de das que deben transcurrir para que se pueda volver a utilizar una contrasea. Si define PASSWORD_REUSE_TIME en un valor entero, deber definir PASSWORD_REUSE_MAX en UNLIMITED. PASSWORD_REUSE_MAX: Especifica el nmero de cambios de contrasea necesarios para poder volver a utilizar la contrasea actual. Antes de Oracle9i, si defina PASSWORD_REUSE_MAX en un valor entero, tena que definir PASSWORD_REUSE_TIME en UNLIMITED. PASSWORD_LOCK_TIME: Especifica el nmero de das que estar bloqueada una cuenta despus del nmero especificado de intentos fallidos de conexin consecutivos. PASSWORD_GRACE_TIME: Especifica el nmero de das a partir del inicio del perodo de gracia durante el cual se genera una advertencia y se permite la conexin. La contrasea vence si no se modifica durante el perodo de gracia. PASSWORD_VERIFY_FUNCTION: Permite que una funcin PL/SQL de verificacin de complejidad de contraseas se transfiera como argumento a la sentencia CREATE PROFILE.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-14

Creacin de un Perfil (continuacin) Uso de Oracle Enterprise Manager para la Creacin de un Perfil Desde la Consola de OEM: 1. Navegue a Security > Profiles. 2. Seleccione Create en el men derecho del mouse. 3. Introduzca un nombre para Profile y rellene los otros campos, o acepte los valores por defecto. 4. Abra la pgina del separador Password e introduzca los parmetros de contrasea de la cuenta. 5. Haga clic en Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-15

Creacin de un Perfil (continuacin) Uso de Oracle Enterprise Manager para la Creacin de un Perfil Desde la Consola de OEM: 1. Navegue a Security > Profiles. 2. Seleccione Assign a Profile to User(s) en el men derecho del mouse. 3. Seleccione el usuario o los usuarios. 4. Haga clic en OK.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-16

Modificacin de un Perfil: Definicin de la Contrasea


Utilice el comando ALTER PROFILE para cambiar los lmites de contraseas.
ALTER PROFILE default LIMIT FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LIFE_TIME 60 PASSWORD_GRACE_TIME 10;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Modificacin de un Perfil Utilice el comando ALTER PROFILE para cambiar los lmites de contraseas asignados a un perfil: ALTER PROFILE perfil LIMIT [FAILED_LOGIN_ATTEMPTS valor_mximo] [PASSWORD_LIFE_TIME valor_mximo] [ {PASSWORD_REUSE_TIME |PASSWORD_REUSE_MAX} valor_mximo] [PASSWORD_LOCK_TIME valor_mximo] [PASSWORD_GRACE_TIME valor_mximo] [PASSWORD_VERIFY_FUNCTION {funcin|NULL|DEFAULT} ] Si desea definir los parmetros de contrasea en menos de un da:
1 hora: PASSWORD_LOCK_TIME = 1/24 10 minutos: PASSWORD_LOCK_TIME = 10/1440 5 minutos: PASSWORD_LOCK_TIME = 5/1440

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-17

Modificacin de un Perfil (continuacin) Uso de Oracle Enterprise Manager para Modificar un Perfil Desde la Consola de OEM: 1. Navegue a Security > Profiles. 2. Resalte el perfil. 3. Abra la pgina del separador Password y modifique el perfil. 4. Haga clic en Apply.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-18

Borrado de un Perfil: Definicin de la Contrasea


Borre el perfil con el comando DROP PROFILE. El perfil DEFAULT no se puede borrar. CASCADE revoca el perfil al usuario al que se haba asignado.

DROP PROFILE developer_prof; DROP PROFILE developer_prof CASCADE;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Borrado de un Perfil: Definicin de la Contrasea Para borrar un perfil, utilice el comando DROP PROFILE: DROP PROFILE perfil [CASCADE] donde: perfil: Es el nombre del perfil que se va a borrar. CASCADE: Revoca el perfil a los usuarios a los que se ha asignado. (Oracle Server asigna automticamente el perfil DEFAULT a esos usuarios. Especifique esta opcin para borrar un perfil que est asignado actualmente a usuarios.) Instrucciones El perfil DEFAULT no se puede borrar. Cuando se borra un perfil, este cambio slo se aplica a las sesiones creadas posteriormente y no a las actuales.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-19

Borrado de un Perfil: Definicin de la Contrasea (continuacin) Uso de Oracle Enterprise Manager para Borrar un Perfil Desde la Consola de OEM: 1. Navegue a Security > Profiles. 2. Resalte el perfil. 3. Seleccione Remove en el men derecho del mouse. 4. Haga clic en Yes para confirmar la accin.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-20

Gestin de Recursos
Los lmites de la gestin de recursos se pueden forzar en el nivel de sesin, en el de llamada o en ambos. Para definir lmites con perfiles, utilice el comando CREATE PROFILE. Active lmites de recursos con:
Parmetro de inicializacin RESOURCE_LIMIT Comando ALTER SYSTEM

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de Recursos Utilice los siguientes pasos para controlar el uso de los recursos con perfiles: 1. Cree un perfil con el comando CREATE PROFILE para determinar los lmites de contraseas y recursos. 2. Asigne perfiles con los comandos CREATE USER o ALTER USER. 3. Fuerce lmites de recursos con el comando ALTER SYSTEM o editando el archivo de parmetros de inicializacin (y deteniendo y reiniciando la instancia). Estos pasos se analizan ms detalladamente en la siguiente seccin. Nota: No es necesario forzar los lmites de recursos para activar la gestin de contraseas de Oracle. .

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-21

Activacin de Lmites de Recursos


Defina el parmetro de inicializacin RESOURCE_LIMIT en TRUE. Fuerce los lmites de recursos activando el parmetro con el comando ALTER SYSTEM.
ALTER SYSTEM SET RESOURCE_LIMIT=TRUE;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Activacin de Lmites de Recursos Para activar o desactivar el forzado de los lmites de recursos, modifique el parmetro de inicializacin RESOURCE_LIMIT o utilice el comando ALTER SYSTEM. Parmetro de inicializacin RESOURCE_LIMIT Para activar o desactivar el forzado de lmites de recursos, modifique este parmetro en el archivo de inicializacin y reinicie la instancia. El valor TRUE activa el forzado. El valor FALSE desactiva el forzado (valor por defecto). Utilice este parmetro para activar la arquitectura de forzado. Comando ALTER SYSTEM Para activar o desactivar el forzado de lmites de recursos para una instancia, utilice el comando ALTER SYSTEM. El valor especificado mediante el comando ALTER SYSTEM permanece activo hasta que se vuelve a modificar o hasta que se cierra la base de datos. Utilice este comando para activar o desactivar el forzado si no se puede cerrar la base de datos.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-22

Definicin de Lmites de Recursos en el Nivel de Sesin


Recurso CPU_PER_SESSION SESSIONS_PER_USER CONNECT_TIME IDLE_TIME LOGICAL_READS_PER _SESSION PRIVATE_SGA Descripcin Total de tiempo de CPU en centsimas de segundos Nmero de sesiones simultneas que se permiten para cada nombre de usuario Tiempo de conexin transcurrido en minutos Perodos de tiempo de inactividad en minutos Nmero de bloques de datos (lecturas fsicas y lgicas) Espacio privado en la SGA en bytes (slo para servidor compartido)

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Definicin de Lmites de Recursos en el Nivel de Sesin Instrucciones Los lmites de perfil se pueden forzar en el nivel de sesin, en el de llamada o en ambos. Los lmites del nivel de sesin se fuerzan para cada conexin. Si se supera un lmite del nivel de sesin: Se recibe un mensaje de error: Por ejemplo: ORA-02391: exceeded simultaneous SESSION_PER_USER limit Oracle Server desconecta al usuario. Instrucciones IDLE_TIME: Slo se calcula para el proceso de servidor. No tiene en cuenta la actividad de las aplicaciones. El lmite de IDLE_TIME no se ve afectado por consultas de larga duracin y otras operaciones. LOGICAL_READS_PER_SESSION: Es una limitacin del nmero total de lecturas tanto de memoria como de disco. Esto sirve para asegurar que no haya sentencias con gran cantidad de E/S que acaparen la memoria y paralicen el disco. PRIVATE_SGA: Slo se aplica si ejecuta la arquitectura de servidor compartido y se puede especificar en MB o KB. Nota: La arquitectura de servidor compartido se cubre ms detenidamente en el curso Oracle9i Database Administration Fundamentals II.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-23

Definicin de Lmites de Recursos en el Nivel de Llamada


Recurso CPU_PER_CALL Descripcin Tiempo de CPU por cada llamada en centsimas de segundos Nmero de bloques de datos que se pueden leer en cada llamada

LOGICAL_READS_PER_CALL

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Definicin de Lmites de Recursos en el Nivel de Llamada Los lmites del nivel de llamada se fuerzan por cada llamada realizada mientras se ejecuta una sentencia SQL. Si se supera el lmite del nivel de llamada: Se para el procesamiento de la sentencia. Se hace rollback en la sentencia. Todas las sentencias anteriores permanecen intactas. La sesin del usuario permanece conectada.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-24

Creacin de un Perfil: Lmite de Recursos


CREATE PROFILE perfil_desarrollador LIMIT SESSIONS_PER_USER 2 CPU_PER_SESSION 10000 IDLE_TIME 60 CONNECT_TIME 480;

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Creacin de un Perfil: Lmite de Recursos Cree un perfil con el siguiente comando CREATE PROFILE: CREATE PROFILE perfil LIMIT [SESSIONS_PER_USER valor_mximo] [CPU_PER_SESSION valor_mximo] [CPU_PER_CALL valor_mximo] [CONNECT_TIME valor_mximo] [IDLE_TIME valor_mximo] [LOGICAL_READS_PER_SESSION valor_mximo] [LOGICAL_READS_PER_CALL valor_mximo] [COMPOSITE_LIMIT valor_mximo] [PRIVATE_SGA bytes_mximos] donde: perfil: Es el nombre del perfil valor_mximo: Es un nmero entero, UNLIMITED o DEFAULT bytes_mximos: Es un nmero entero que puede ir seguido de KB o MB UNLIMITED o DEFAULT
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-25

Creacin de un Perfil: Lmite de Recursos (continuacin) UNLIMITED: Indica que el usuario al que se ha asignado este perfil puede utilizar este recurso de forma ilimitada DEFAULT: Indica que este perfil est sujeto al lmite de este recurso, tal y como se especifica en el perfil DEFAULT COMPOSITE_LIMIT: Limita el costo total de los recursos para una sesin en unidades de servicio. Oracle calcula el costo de los recursos como la suma de: - CPU_PER_SESSION - CONNECT_TIME - LOGICAL_READS_PER_SESSION - PRIVATE_SGA La vista del diccionario de datos RESOURCE_COST proporciona los lmites de recursos asignados a los diferentes recursos. Nota: Consulte el manual Oracle9i SQL Reference para obtener informacin acerca de cmo especificar el peso para cada comando de recurso de sesin ALTER RESOURCE COST.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-26

Creacin de un Perfil: Lmite de Recursos (continuacin) Uso de Oracle Enterprise Management para Definir Lmites de Recursos Desde la Consola de OEM: Navegue a Security > Profiles. Seleccione Create en el men derecho del mouse. Introduzca los parmetros de recursos en la pgina del separador General. Haga clic en Create.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-27

Gestin de Recursos con el Gestor de Recursos de la Base de Datos


Proporciona a Oracle Server un mayor control sobre las decisiones de la gestin de recursos Elementos del Gestor de Recursos de la Base de Datos:
Grupo de consumidores de recursos Plan de recursos Mtodo de asignacin de recursos Directivas del plan de recursos

Utiliza el paquete DBMS_RESOURCE_MANAGER para crear y mantener elementos Requiere el privilegio ADMINISTER_RESOURCE_MANAGER

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Gestin de Recursos con el Gestor de Recursos de la Base de Datos El objetivo del Gestor de Recursos de la Base de Datos es dar a Oracle Server un mayor control sobre las decisiones de la gestin de recursos y, de esta manera, evitar los problemas derivados de la gestin ineficaz del sistema operativo. Elementos del Gestor de Recursos de la Base de Datos Grupo de consumidores de recursos: Grupos de usuarios o sesiones, agrupados segn los requisitos de procesamiento de recursos. Plan de recursos: Contiene directivas que especifican cmo se asignan los recursos a los grupos de consumidores de recursos. Mtodo de asignacin de recursos: Lo utiliza el Gestor de Recursos de la Base de Datos para realizar la asignacin de un recurso concreto. Directiva del plan de recursos: Lo utilizan los administradores para asociar los grupos de consumidores de recursos a planes concretos y asignar los recursos entre los grupos de consumidores. Administracin del Gestor de Recursos de la Base de Datos Para administrar el Gestor de Recursos de la Base de Datos (DBMS_RESOURCE_MANAGER), debe tener el privilegio del sistema ADMINISTER_RESOURCE_MANAGER. Normalmente, los DBA tienen este privilegio con la opcin ADMIN, puesto que es parte del rol DBA.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-28

Gestin de Recursos con el Gestor de Recursos de la Base de Datos


Los planes de recursos especifican los grupos de consumidores de recursos que pertenecen al plan. Los planes de recursos contienen directivas para determinar cmo se asignan los recursos entre los grupos de consumidores.

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-29

Gestin de Recursos con el Gestor de Recursos de la Base de Datos Uso de Oracle Enterprise Management para Definir el Gestor de Recursos Desde la Consola de OEM: Navegue a Instance. - Seleccione Resource Consumer Groups para crear o modificar los valores. - Seleccione Resource Plans para crear o modificar los valores. - Seleccione Resource Plan Schedule para crear o modificar los valores.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-30

Directivas del Plan de Recursos


El Gestor de Recursos de la Base de Datos proporciona varios medios de asignacin de recursos: Mtodo CPU Conjunto y cola de sesin activa Lmite del grado de paralelismo Cambio automtico de grupo de consumidor Tiempo de ejecucin mximo estimado Cuota de deshacer

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Directivas del Plan de Recursos Mtodo CPU: Le permite especificar el modo de asignacin de los recursos de CPU entre los grupos de consumidores. Conjunto y cola de sesin activa: Puede controlar el nmero mximo de sesiones activas simultneas permitidas en un grupo de consumidores. Este mximo designa el conjunto de sesin activa. Si la sesin no se puede iniciar porque el conjunto est lleno, se colocar en una cola. Al terminar una sesin activa, se programa la primera sesin en cola para su ejecucin. Tambin se puede definir un perodo de timeout, de forma que uno de los trabajos en cola sufra un timeout y se aborte con un error. Lmite del grado de paralelismo: Especifica un lmite de grado paralelo para cualquier operacin en un grupo de consumidores. Cambio automtico de grupo de consumidores: Le permite controlar los recursos especificando ciertos criterios. Si no se cumplen estos criterios, se produce el cambio automtico de sesiones a otro grupo de consumidores. Los criterios que se utilizan para determinar el cambio son: Grupo de cambio: Grupo al que se cambia. Tiempo de cambio: Tiempo de cambio expresado en segundos. Estimacin de cambio: Estimacin del perodo de tiempo necesario para realizar la operacin, que se utiliza para decidir si se va a cambiar una operacin incluso antes de que se inicie.
Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-31

Directivas del Plan de Recursos (continuacin) Tiempo de ejecucin mximo estimado: Estima el tiempo de ejecucin de una operacin proactivamente. El DBA puede definir en cualquier momento el tiempo de ejecucin mximo estimado que puede requerir una operacin definiendo el parmetro de directiva del plan de recursos MAX_ESTIMATED_EXEC_TIME. Si la estimacin de la operacin es superior al valor definido para MAX_ESTIMATED_EXEC_TIME, sta no se iniciar, por lo que se eliminar un trabajo de un tamao demasiado grande que utilizara demasiados recursos del sistema. Conjunto de deshacer: Se puede especificar un conjunto de deshacer para cada grupo de consumidores con el fin de controlar la cantidad total de datos de deshacer que puede generar un grupo de consumidores. Si un grupo de consumidores supera su lmite, se termina la sentencia DML actual que est generando los datos de redo. El parmetro de directiva del plan de recursos denominado UNDO_POOL es el que define el conjunto de deshacer. Nota: El Gestor de Recursos de la Base de Datos se cubre en mayor profundidad en el curso Oracle9i Performance Tuning.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-32

Obtencin de Informacin acerca de Lmites de Recursos y Contraseas


Para obtener informacin acerca de lmites de recursos y contraseas, consulte las siguientes vistas: DBA_USERS DBA_PROFILES

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Obtencin de Informacin acerca de Lmites de Recursos y Contraseas Utilice la vista DBA_USERS para obtener informacin acerca del estado de la cuenta. SQL> SELECT username, password, account_status, 2 FROM dba_users; USERNAME PASSWORD ------- -------SYS 8A8F025737A9097A SYSTEM D4DF7931AB130E37 OUTLN 4A3BA55E08595C81 DBSNMP E066D214D5421CCC HR OE BB69FBB77CFA6B9A 957C7EF29CC223FC ACCOUNT_STATUS -------------OPEN OPEN OPEN OPEN OPEN LOCKED

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-33

Obtencin de Informacin acerca de Lmites de Recursos y Contraseas (continuacin) Consulte la vista DBA_PROFILES para mostrar la informacin acerca de los perfiles de contrasea: SQL> SELECT * FROM dba_profiles 2 WHERE resource_type='PASSWORD' 3 AND profile=GRACE_5; PROFILE RESOURCE_NAM -------------------GRACE_5 FAILED_LOGIN_ATTEMPTS GRACE_5 PASSWORD_LIFE_TIME GRACE_5 PASSWORD_REUSE_TIME GRACE_5 PASSWORD_REUSE_MAX GRACE_5 PASSWORD_VERIFY_FUNCTION GRACE_5 PASSWORD_LOCK_TIME GRACE_5 PASSWORD_GRACE_TIME RESOURCE --------PASSWORD PASSWORD PASSWORD PASSWORD PASSWORD PASSWORD PASSWORD LIMIT ------3 30 30 UNLIMITED DEFAULT UNLIMITED 5

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-34

Resumen
En esta leccin, ha aprendido a: Administrar contraseas Administrar perfiles Obtener informacin acerca de los lmites de los recursos y las contraseas

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-35

Prctica 14: Visin General


Esta prctica abarca los siguientes temas: Activacin de la gestin de contraseas Definicin de perfiles y asignacin a los usuarios Desactivacin de la gestin de contraseas

Copyright Oracle Corporation, 2002. Todos los Derechos Reservados.

Prctica 14: Visin General Nota: Esta prctica se puede realizar con SQL*Plus o con Oracle Enterprise Manager y SQL*Plus Worksheet.

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-36

Prctica 14: Gestin de la Seguridad de Contraseas y Recursos 1 a Ejecute el archivo de comandos lab14_01.sql para crear el usuario Jeff. b Conctese como usuario SYS y active la gestin de contraseas ejecutando el archivo de comandos $ORACLE_HOME/rdbms/admin/utlpwdmg.sql. 2 Intente cambiar la contrasea del usuario Jeff a Jeff. Qu sucede? 3 Intente cambiar la contrasea del usuario Jeff para que cumpla el formato de gestin de contraseas. Indicacin: La contrasea debe contener, como mnimo, un dgito, un carcter y un signo de puntuacin. 4 Modifique el perfil DEFAULT para asegurarse de que se cumplen las siguientes condiciones para los usuarios que tienen asignado el perfil DEFAULT: - Despus de dos intentos de conexin, la cuenta se debera bloquear. - La contrasea debera vencer despus de 30 das. - No se debera utilizar la misma contrasea de nuevo durante al menos un minuto. - La cuenta debera tener un perodo de gracia de cinco das para cambiar una contrasea vencida. - Compruebe que se han implementado los requisitos anteriores. Indicaciones: - Utilice el comando ALTER PROFILE para cambiar los lmites de perfiles por defecto. - Consulte la vista del diccionario de datos DBA_PROFILES para verificar el resultado. 5 Conctese como el usuario Jeff suministrando una contrasea no vlida. Intntelo dos veces y, a continuacin, conctese otra vez, pero proporcionando ahora la contrasea correcta. Qu sucede? 6 Utilice la vista del diccionario de datos DBA_USERS para verificar que el usuario Jeff se ha bloqueado. Desbloquee la cuenta del usuario Jeff. Una vez que la haya desbloqueado, conctese como Jeff. Indicacin: Ejecute el comando ALTER USER para desbloquear la cuenta. 7 Conctese como usuario SYS y desactive las comprobaciones de contraseas del perfil DEFAULT. Indicacin: Ejecute el comando ALTER PROFILE para desactivar las comprobaciones de contraseas. 8 Conctese como el usuario Jeff suministrando una contrasea no vlida. Intntelo dos veces y, a continuacin, conctese otra vez, pero proporcionando ahora la contrasea correcta. Qu sucede? Por qu?

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-37

Administracin de la Base de Datos Oracle9i: Conceptos Bsicos I 14-38

You might also like