Está en la página 1de 318

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g:


Taller de Administración I

Volumen I • Guía del Alumno

D17090CS30
Edición 3.0
Noviembre de 2005
D50253
Autores Copyright © 2005, Oracle. Todos los derechos reservados.

Tom Best Renuncia

M.J. Billings Este documento contiene información propiedad de Oracle Corporation y se


encuentra protegido por la legislación de derechos de autor y otras leyes sobre la
propiedad intelectual. Usted sólo podrá realizar copias o imprimir este documento
Colaboradores y para uso exclusivo por usted en los cursos de formación de Oracle. Este documento
Revisores Técnicos no podrá ser modificado ni alterado en modo alguno. Salvo que la legislación de los
derechos de autor lo considere un uso excusable o legal o "fair use", no podrá
Anthony Woodell utilizar, compartir, descargar, cargar, copiar, imprimir, mostrar, representar,
Barry Trute reproducir, publicar, conceder licencias, enviar, transmitir ni distribuir este documento
total ni parcialmente sin autorización expresa por parte de Oracle.
Celia Antonio
La información contenida en este documento está sujeta a cambio sin previo aviso.
Christine Jeal Si detecta cualquier problema en el documento, le agradeceremos que nos lo
Donna Keesling comunique por escrito a: Oracle University, 500 Oracle Parkway, Redwood Shores,
California 94065 USA. Oracle Corporation no garantiza que este documento esté
Howard Bradley exento de errores.
James Spiller

Oracle Internal & Oracle Academy Use Only


Restricted Rights Notice
Janet Stern
Si esta documentación se entrega al Gobierno de los EE.UU. o a cualquier entidad
Jean-Francois Verrier que la utilice en nombre del Gobierno de los EE.UU., se aplicará la siguiente
Joel Goodman advertencia:
John Hibbard U.S. GOVERNMENT RIGHTS
Larry Baumann The U.S. Government’s rights to use, modify, reproduce, release, perform, display,
or disclose these training materials are restricted by the terms of the applicable
Magnus Isaksson Oracle license agreement and/or the applicable U.S. Government contract.
M.J. Bryksa
Aviso de Marca Comercial
Paul Needham
Oracle, JD Edwards y PeopleSoft son marcas comerciales registradas de Oracle
Pierre Labrousse Corporation y/o sus subsidiarias. Todos los demás nombres pueden ser marcas
Raza Siddiqui comerciales de sus respectivos propietarios.

Sandra Cheevers
Stefan Lindblad
Stella Kister
Steve Friedberg
Steven Karam
Sushma Jagannath
Tammy Bednar

Redactores
Navratan Singh
Nita Pavitran
Raj Kumar

Diseñadores Gráficos
Satish Bettegowda
Steve Elwood

Editor
Joseph Fernandez
Contenido

Prefacio

1 Introducción
Objetivos del Curso 1-2
Planificación Sugerida 1-3
Objetivos 1-4
Productos y Servicios Oracle 1-5
Base de Datos Oracle 10g: “g” Significa Grid 1-6
Arquitectura de la Base de Datos Oracle 1-8
Estructuras de Bases de Datos 1-9

Oracle Internal & Oracle Academy Use Only


Estructuras de Memoria de Oracle 1-10
Estructuras de Proceso 1-12
Gestión de Instancias de Oracle 1-13
Proceso de Servidor y Caché de Buffers de la Base de Datos 1-14
Estructura de Base de Datos Física 1-15
Tablespaces y Archivos de Datos 1-17
Tablespaces SYSTEM y SYSAUX 1-18
Segmentos, Extensiones y Bloques 1-19
Estructuras de Bases de Datos Físicas y Lógicas 1-20
Ejemplos del Curso: Esquema HR 1-22
Arquitectura de Base de Datos: Resumen de Componentes Estructurales 1-23
Resumen 1-24

2 Instalación del Software de la Base de Datos Oracle


Objetivos 2-2
Tareas de un Administrador de la Base de Datos Oracle 2-3
Herramientas Utilizadas para Administrar Bases de Datos Oracle 2-4
Instalación: Requisitos del Sistema 2-6
Comprobación de los Requisitos del Sistema 2-7
Arquitectura Flexible Óptima (OFA) 2-8
Uso de la Arquitectura Flexible Óptima 2-9
Definición de Variables de Entorno 2-11
Oracle Universal Installer (OUI) 2-13
Instalación del Software de Oracle 2-14
Opciones de Configuración de Base de Datos 2-15
Ejecución de Archivos de Comandos de Configuración 2-16
Fin de la Instalación 2-17
Opciones Avanzadas de Instalación 2-18
Opción de Instalación: Modo Silencioso 2-19
Resumen 2-20
Visión General de la Práctica: Instalación del Software de Oracle 2-21

iii
3 Creación de una Base de Datos Oracle
Objetivos 3-2
Planificación de la Base de Datos 3-3
Bases de Datos: Ejemplos 3-4
Asistente de Configuración de Bases de Datos (DBCA) 3-5
Uso de DBCA para Crear una Base de Datos 3-6
Password Management 3-12
Creación de una Plantilla de Diseño de Bases de Datos 3-13
Uso de DBCA para Suprimir una Base de Datos 3-14

Oracle Internal & Oracle Academy Use Only


Resumen 3-16
Visión General de la Práctica: Uso de DBCA 3-17

4 Gestión de la Instancia de Oracle


Objetivos 4-2
Marco de Gestión 4-3
Inicio y Parada de Database Control 4-4
Oracle Enterprise Manager 4-5
Acceso a Oracle Enterprise Manager 4-6
Página Inicial de la Base de Datos 4-7
Uso de SQL*Plus e iSQL*Plus para Acceder a las Bases de Datos 4-8
Uso de iSQL*Plus 4-9
Configuración de iSQL*Plus para el Acceso de SYSDBA y SYSOPER 4-10
Uso de SQL*Plus 4-12
Llamada a SQL*Plus desde un Archivo de Comandos del Shell 4-13
Llamada a un Archivo de Comandos SQL desde SQL*Plus 4-14
Archivos de Parámetros de Inicialización 4-15
Parámetros de Inicialización Simplificados 4-16
Visualización y Modificación de Parámetros de Inicialización 4-18
Inicio y Cierre de la Base de Datos 4-19
Inicio de una Instancia de Base de Datos Oracle 4-20
Inicio de una Instancia de Base de Datos Oracle: NOMOUNT 4-21
Inicio de una Instancia de Base de Datos Oracle: MOUNT 4-22
Inicio de una Instancia de Base de Datos Oracle: OPEN 4-23
Cierre de una Instancia de la Base de Datos Oracle 4-24
Modos de Cierre 4-25
Opciones de SHUTDOWN 4-26
Uso de SQL*Plus para el Inicio y el Cierre 4-29
Visualización del Log de Alertas 4-30
Visualización del Historial de Alertas 4-31
Vistas de Rendimiento Dinámico 4-32

iv
Vistas de Rendimiento Dinámico: Ejemplos de Uso 4-33
Vistas de Rendimiento Dinámico: Consideraciones 4-34
Resumen 4-35
Visión General de la Práctica: Gestión de la Instancia de Oracle 4-36

5 Gestión de Estructuras de Almacenamiento de Bases de Datos


Objetivos 5-2
Estructuras de Almacenamiento 5-3
Almacenamiento de Datos de Tabla 5-4
Anatomía de un Bloque de Base de Datos 5-5

Oracle Internal & Oracle Academy Use Only


Tablespaces y Archivos de Datos 5-6
Oracle Managed Files (OMF) 5-7
Gestión de Espacio en Tablespaces 5-8
Exploración de la Estructura de Almacenamiento 5-9
Creación de un Nuevo Tablespace 5-10
Almacenamiento de Tablespaces Gestionados Localmente 5-12
Tablespaces en la Base de Datos Preconfigurada 5-14
Modificación de un Tablespace 5-16
Acciones con Tablespaces 5-19
Borrado de Tablespaces 5-21
Visualización de Información de Tablespaces 5-22
Recopilación de Información de Almacenamiento 5-23
Visualización de Contenido de Tablespaces 5-24
Ampliación de la Base de Datos 5-25
¿Qué es Gestión Automática de Almacenamiento? 5-26
ASM: Funciones Clave y Ventajas 5-27
ASM: Conceptos 5-28
Resumen 5-29
Visión General de la Práctica: Gestión de Estructuras de Almacenamiento
de Bases de Datos 5-30

6 Administración de Seguridad del Usuario


Objetivos 6-2
Cuentas de Usuario de Base de Datos 6-3
Cuentas Predefinidas: SYS y SYSTEM 6-5
Creación de un Usuario 6-6
Autenticación de Usuarios 6-7
Autenticación de Administradores 6-9
Desbloqueo de Cuentas de Usuario y Restablecimiento de Contraseñas 6-10
Privilegios 6-11
Privilegios del Sistema 6-12
Privilegios de Objeto 6-14

v
Revocación de Privilegios del Sistema con ADMIN OPTION 6-15
Revocación de Privilegios de Objeto con GRANT OPTION 6-16
Ventajas de los Roles 6-17
Asignación de Privilegios a Roles y de Roles a Usuarios 6-18
Roles Predefinidos 6-19
Creación de un Rol 6-20
Roles Seguros 6-21
Asignación de Roles a Usuarios 6-22
Perfiles y Usuarios 6-23

Oracle Internal & Oracle Academy Use Only


Implementaciones de las Funciones de Seguridad con Contraseña 6-25
Creación de un Perfil de Contraseña 6-27
Función de Verificación de Contraseñas Proporcionadas: VERIFY_FUNCTION 6-28
Asignación de Cuota a Usuarios 6-29
Resumen 6-31
Visión General de la Práctica: Administración de Usuarios 6-32

7 Gestión de Objetos de Esquema


Objetivos 7-2
¿Qué es un Esquema? 7-3
Acceso a Objetos de Esquema 7-5
Nomenclatura de Objetos de Base de Datos 7-6
Especificación de Tipos de Dato en Tablas 7-8
Creación y Modificación de Tablas 7-11
Descripción de la Integridad de los Datos 7-13
Definición de Restricciones 7-15
Violaciones de Restricciones 7-16
Estados de Restricciones 7-17
Comprobación de Restricciones 7-19
Creación de Restricciones con SQL: Ejemplos 7-20
Visualización de las Columnas de una Tabla 7-21
Visualización del Contenido de una Tabla 7-22
Acciones con Tablas 7-23
Borrado de una Tabla 7-24
Truncamiento de una Tabla 7-25
Índices 7-26
Tipos de Índices 7-27
Índice de Árbol B 7-28
Índices de Bitmap 7-30
Opciones de Índice 7-32
Creación de Índices 7-34

vi
¿Qué es una Vista? 7-35
Creación de Vistas 7-36
Secuencias 7-37
Creación de una Secuencia 7-38
Uso de una Secuencia 7-40
Tablas Temporales 7-41
Tablas Temporales: Consideraciones 7-43
Diccionario de Datos: Visión General 7-44
Vistas del Diccionario de Datos 7-45

Oracle Internal & Oracle Academy Use Only


Diccionario de Datos: Ejemplos de Uso 7-47
Resumen 7-48
Visión General de la Práctica: Administración de Objetos de Esquema 7-49

8 Gestión de Datos y Simultaneidad


Objetivos 8-2
Manipulación de Datos mediante SQL 8-3
Comando INSERT 8-4
Comando UPDATE 8-5
Comando DELETE 8-6
Comando MERGE 8-7
Comandos COMMIT y ROLLBACK 8-9
PL/SQL 8-10
Administración de Objetos PL/SQL 8-12
Objetos PL/SQL 8-13
Funciones 8-14
Procedimientos 8-15
Paquetes 8-16
Especificación y Cuerpo del Paquete 8-17
Paquetes Incorporados 8-18
Disparadores 8-19
Eventos Disparadores 8-20
Bloqueos 8-21
Mecanismo de Bloqueo 8-22
Simultaneidad de Datos 8-23
Bloqueos de DML 8-25
Mecanismo de Puesta en Cola 8-26
Conflictos de Bloqueo 8-27
Posibles Causas de Conflictos de Bloqueo 8-28
Detección de Conflictos de Bloqueo 8-29
Resolución de Conflictos de Bloqueo 8-30

vii
Resolución de Conflictos de Bloqueo mediante SQL 8-31
Interbloqueos 8-32
Resumen 8-33
Visión General de la Práctica: Gestión de Datos y Simultaneidad 8-34

9 Gestión de Datos de Deshacer


Objetivos 9-2
Manipulación de Datos 9-3
Datos de Deshacer 9-4
Transacciones y Datos de Deshacer 9-6

Oracle Internal & Oracle Academy Use Only


Almacenamiento de Información de Deshacer 9-7
Datos de Deshacer frente a Datos de Redo 9-8
Control de Deshacer 9-9
Administración de Deshacer 9-11
Configuración de Retención de Deshacer 9-12
Garantía de Retención de Deshacer 9-14
Tamaño de los Tablespaces de Deshacer 9-15
Uso del Asesor de Deshacer 9-16
Resumen 9-17
Visión General de la Práctica: Gestión de Segmentos de Deshacer 9-18

10 Implementación de Seguridad de la Base de Datos Oracle


Objetivos 10-2
Requisitos de Seguridad de la Industria 10-3
Separación de Responsabilidades 10-5
Seguridad de la Base de Datos 10-6
Principio de Privilegio más Bajo 10-8
Aplicación del Principio de Privilegio Más Bajo 10-9
Control de Actividades Sospechosas 10-11
Auditoría de la Base de Datos Estándar 10-12
Activación de Auditoría 10-13
Pistas de Auditoría Uniformes 10-14
Página de Auditoría de Enterprise Manager 10-16
Especificación de Opciones de Auditoría 10-17
Uso y Mantenimiento de la Información de Auditoría 10-18
Auditoría Basada en Valores 10-19
Auditoría Detallada 10-21
Política de FGA 10-22
Sentencia DML Auditada: Consideraciones 10-24
Instrucciones de FGA 10-25
Auditoría de DBA 10-26

viii
Mantenimiento de la Pista de Auditoría 10-27
Actualizaciones de Seguridad 10-28
Aplicación de Parches de Seguridad 10-29
Resumen 10-30
Visión General de la Práctica: Implementación de Seguridad de la Base de Datos Oracle 10-31

11 Configuración del Entorno de Red de Oracle


Objetivos 11-2
Servicios de Red de Oracle 11-3
Listener de Red de Oracle 11-4

Oracle Internal & Oracle Academy Use Only


Establecimiento de Conexiones de Red 11-5
Establecimiento de una Conexión 11-6
Sesiones de Usuario 11-7
Herramientas para Configurar y Gestionar la Red de Oracle 11-8
Utilidad Listener Control 11-9
Sintaxis de la Utilidad Listener Control 11-10
Página Inicial del Listener 11-12
Página Net Services Administration 11-13
Creación de un Listener 11-14
Adición de Direcciones de Listener 11-15
Registro de Servicio de Base de Datos 11-16
Métodos de Nomenclatura 11-17
Conexión Sencilla 11-18
Nomenclatura Local 11-19
Nomenclatura de Directorios 11-20
Método de Nomenclatura Externa 11-21
Configuración de Alias de Servicio 11-22
Opciones de Conexión Avanzada 11-23
Prueba de la Conectividad de Red de Oracle 11-25
Sesiones de Usuario: Servidor Dedicado 11-26
Sesiones de Usuario: Servidor Compartido 11-27
SGA y PGA 11-28
Servidor Compartido: Pool de Conexiones 11-29
Cuándo No se Debe Utilizar un Servidor Compartido 11-30
Resumen 11-31
Visión General de la Práctica: Trabajar con los Componentes de Red de Oracle 11-32

12 Mantenimiento Proactivo
Objetivos 12-2
Mantenimiento Proactivo 12-3
Introducción a la Terminología 12-4

ix
Estadísticas del Optimizador 12-5
Uso de la Página Manage Optimizer Statistics 12-7
Niveles de Estadísticas 12-9
Repositorio de Carga de Trabajo Automática (AWR) 12-10
Infraestructura de AWR 12-11
Juegos de Instantáneas AWR 12-12
Enterprise Manager y AWR 12-13
Gestión de AWR 12-14
Monitor de Diagnóstico de Base de Datos Automático (ADDM) 12-15

Oracle Internal & Oracle Academy Use Only


Resultados de ADDM 12-16
Recomendaciones de ADDM 12-17
Marco de Asesoramiento 12-18
Enterprise Manager y Asesores 12-20
Paquete DBMS_ADVISOR 12-21
Alertas Generadas por el Servidor 12-22
Alertas Generadas por el Servidor por Defecto 12-23
Definición de Umbrales 12-24
Creación y Prueba de una Alerta 12-25
Notificación de Alertas 12-26
Reacción ante Alertas 12-28
Tipos de Alerta y Eliminación de Alertas 12-29
Tareas de Mantenimiento Automáticas 12-30
Resumen 12-31
Visión General de la Práctica: Mantenimiento Proactivo 12-32

13 Gestión de Rendimiento
Objetivos 13-2
Control del Rendimiento 13-3
Control del Rendimiento: Top Sessions 13-7
Control del Rendimiento: Top Services 13-8
Asesor de Ajustes SQL: Visión General 13-9
Recomendaciones y Opciones del Asesor de Ajustes SQL 13-10
Uso del Asesor de Ajustes SQL 13-11
Uso del Asesor de Ajustes SQL: Ejemplo 13-12
Asesor de Ajustes SQL: Estadísticas SQL 13-13
Asesor de Ajustes SQL: Identificación de SQL Duplicados 13-14
Uso del Asesor de Acceso SQL 13-15
Gestión de los Componentes de la Memoria 13-17
Activación de la Gestión Automática de Memoria Compartida (ASMM) 13-18
Definición Manual de la Gestión de Memoria Compartida 13-20

x
Uso del Asesor de Memoria 13-21
Estadísticas de Rendimiento Dinámicas 13-22
Vistas de Solución de Problemas y de Ajustes 13-24
Objetos No Válidos o No Utilizables 13-25
Resumen 13-27
Visión General de la Práctica: Control y Mejora del Rendimiento 13-28

14 Conceptos de Copia de Seguridad y Recuperación


Objetivos 14-2
Parte de su Trabajo 14-3

Oracle Internal & Oracle Academy Use Only


Categorías de Fallos 14-4
Fallo de Sentencia 14-5
Fallo de Proceso de Usuario 14-6
Fallo de Red 14-7
Error del Usuario 14-8
Fallo de la Instancia 14-10
Procesos en Segundo Plano y Recuperación: Punto de Control (CKPT) 14-11
Procesos en Segundo Plano y Recuperación: Archivos Redo Log y Escritor de Log 14-13
Procesos en Segundo Plano y Recuperación: Proceso de Archivado (ARCn) 14-14
Recuperación de Instancias 14-15
Fases de la Recuperación de Instancias 14-16
Ajuste de la Recuperación de Instancias 14-17
Uso del Asesor de MTTR 14-18
Fallo del Medio Físico 14-19
Configuración de Recuperabilidad 14-20
Archivos de Control 14-21
Archivos Redo Log 14-22
Multiplexión del Redo Log 14-23
Archivos Archive Log 14-24
Archivo Archive Log: Nomenclatura y Destinos 14-25
Modo ARCHIVELOG 14-27
Resumen 14-28
Visión General de la Práctica: Configuración de Recuperabilidad 14-29

15 Realización de Copias de Seguridad de Bases de Datos


Objetivos 15-2
Soluciones de Copia de Seguridad: Visión General 15-3
Oracle Secure Backup 15-4
Copia de Seguridad Gestionada por Usuario 15-5
Terminología 15-6
Recovery Manager (RMAN) 15-10

xi
Configuración de Valores de Copia de Seguridad 15-11
Planificación de Copias de Seguridad: Estrategia 15-14
Planificación de Copias de Seguridad: Options 15-15
Planificación de Copias de Seguridad: Settings 15-16
Planificación de Copias de Seguridad: Schedule 15-17
Planificación de Copias de Seguridad: Review 15-18
Copia de Seguridad del Archivo de Control en un Archivo de Rastreo 15-19
Gestión de Copias de Seguridad 15-21
Área de Recuperación de Flash 15-22

Oracle Internal & Oracle Academy Use Only


Resumen 15-23
Visión General de la Práctica: Creación de Copias de Seguridad de Bases de Datos 15-24

16 Recuperación de Bases de Datos


Objetivos 16-2
Apertura de una Base de Datos 16-3
Cambio del Estado de la Instancia 16-5
Mantenimiento de una Base de Datos Abierta 16-6
Pérdida de un Archivo de Control 16-7
Pérdida de un Archivo Redo Log 16-8
Pérdida de un Archivo de Datos en Modo NOARCHIVELOG 16-9
Pérdida de un Archivo de Datos No Crítico en Modo ARCHIVELOG 16-10
Pérdida de un Archivo de Datos Crítico del Sistema en Modo ARCHIVELOG 16-11
Resumen 16-12
Visión General de la Práctica: Recuperación de Bases de Datos 16-13

17 Realización de Flashback
Objetivos 17-2
Tecnología de Flashback: Ventajas 17-3
Cuándo Utilizar la Tecnología de Flashback 17-4
Realización de Flashback en Cualquier Error 17-5
Flashback de Base de Datos: Visión General 17-6
Flashback de Base de Datos: Reducción del Tiempo de Restauración 17-7
Flashback de Base de Datos: Consideraciones 17-8
Flashback de Base de Datos: Limitaciones 17-9
Activación de la Función de Flashback de Base de Datos 17-10
Flashback de Tabla: Visión General 17-11
Flashback de Tabla 17-12
Activación del Movimiento de Filas en una Tabla 17-13
Realización de Flashback de Tabla 17-14
Flashback de Tabla: Consideraciones 17-15
Flashback de Borrado: Visión General 17-17

xii
Flashback de Tablas Borradas mediante Enterprise Manager 17-18
Flashback de Borrado: Consideraciones 17-19
Acceso al Tiempo de Flashback 17-20
Consulta de Flashback: Visión General 17-21
Consulta de Flashback: Ejemplo 17-22
Consulta de Flashback de Versiones: Visión General 17-23
Consulta de Flashback de Versiones mediante Enterprise Manager 17-24
Consulta de Flashback de Versiones: Consideraciones 17-25
Consulta de Flashback de Transacciones: Visión General 17-26

Oracle Internal & Oracle Academy Use Only


Consulta de Flashback de Transacciones mediante Enterprise Manager 17-27
Consulta de Flashback de Transacciones: Consideraciones 17-28
Resumen 17-29
Visión General de la Práctica: Uso de Flashback 17-30

18 Movimiento de Datos
Objetivos 18-2
Movimiento de Datos: Arquitectura General 18-3
Objeto de Directorio: Visión General 18-4
Creación de Objetos de Directorio 18-5
SQL*Loader: Visión General 18-6
Carga de Datos con SQL*Loader 18-8
Archivo de Control de SQL*Loader 18-9
Métodos de Carga 18-11
Pump de Datos: Visión General 18-13
Pump de Datos: Ventajas 18-15
Exportación e Importación de Pump de Datos: Visión General 18-17
Utilidad Pump de Datos: Interfaces y Modos 18-18
Selección de Objetos Detallada 18-19
Función Avanzada: Creación de Ejemplos 18-20
Opciones de Exportación: Archivos 18-21
Ubicaciones de los Archivos de Pump de Datos 18-22
Planificación y Ejecución de un Trabajo 18-24
Nomenclatura y Tamaño de los Archivos de Pump de Datos 18-25
Importación de Pump de Datos 18-26
Importación de Pump de Datos: Transformaciones 18-27
Pump de Datos: Consideración del Rendimiento 18-29
Parámetros de Inicialización de Rendimiento 18-30
Rutas de Acceso de Pump de Datos: Consideraciones 18-31
Uso de Enterprise Manager para Controlar Trabajos de Pump de Datos 18-32
Relleno de Tabla Externa 18-33

xiii
Uso de Tablas Externas 18-34
Relleno de Tabla Externa mediante ORACLE_DATAPUMP 18-35
Relleno de Tabla Externa mediante ORACLE_LOADER 18-36
Diccionario de Datos 18-37
Resumen 18-38
Visión General de la Práctica: Movimiento de Datos 18-39

Apéndice A: Prácticas

Apéndice B: Soluciones

Oracle Internal & Oracle Academy Use Only


Apéndice C: Comandos Básicos de Linux y vi

Apéndice D: Sintaxis de Sentencias SQL

Apéndice E: Acrónimos y Términos

Apéndice F: Siguientes Pasos para Continuar con la Formación

Índice

xiv
Prefacio

Oracle Internal & Oracle Academy Use Only


Prefacio - 2
Oracle Internal & Oracle Academy Use Only
Perfil

Cualificación Necesaria para el Curso


Antes de empezar este curso, debe contar con las siguientes cualificaciones:
• Experiencia laboral con SQL

Organización del Curso


Base de Datos Oracle 10g: Taller de Administración I es un curso dirigido por un instructor que incluye
teoría y ejercicios prácticos. Las demostraciones en línea y las sesiones de prácticas escritas sirven para
reforzar los conceptos y las habilidades presentados.

Próximos Cursos Sugeridos


Base de Datos Oracle 10g: Taller de Administración II (D17092GC30)

Oracle Internal & Oracle Academy Use Only

Prefacio - 3
Publicaciones Relacionadas

Publicaciones de Oracle
Título Número de Artículo
Oracle Database 2 Day DBA 10g Release 2 (10.2) B14196-01
Oracle Database Administrator's Guide 10g Release 2 (10.2) B14231-01
Oracle Database Backup and Recovery Basics 10g Release 2 (10.2) B14192-01
Oracle Database Concepts 10g Release 2 (10.2) B14220-01
Oracle Database Licensing Information 10g Release 2 (10.2) B14199-01
Oracle Database Net Services Administrator's Guide 10g Release 2 (10.2) B14212-01
Oracle Database Net Services Reference 10g Release 2 (10.2) B14213-01
Oracle Database New Features Guide 10g Release 2 (10.2) B14214-01

Oracle Internal & Oracle Academy Use Only


Oracle Database Performance Tuning Guide 10g Release 2 (10.2) B14211-01
Oracle Database PL/SQL Packages and Types Reference 10g Release 2 (10.2) B14258-01
Oracle Database PL/SQL User's Guide and Reference 10g Release 2 (10.2) B14261-01
Oracle Database Recovery Manager Quick Start Guide 10g Release 2 (10.2) B14193-01
Oracle Database Recovery Manager Reference 10g Release 2 (10.2) B14194-01
Oracle Database Security Guide 10g Release 2 (10.2) B14266-01
Oracle Database SQL Quick Reference 10g Release 2 (10.2) B14195-01
Oracle Database SQL Reference 10g Release 2 (10.2) B14200-01

Publicaciones Adicionales
• Boletines de las versiones del sistema
• Guías de instalación y del usuario
• Archivos léame
• Artículos del grupo internacional de usuarios de Oracle (International Oracle User’s Group, IOUG)
• Oracle Magazine

Prefacio - 4
Convenciones Tipográficas
Convenciones Tipográficas en el Texto

Convención Elemento Ejemplo


Negrita Palabras y frases Para navegar dentro de esta aplicación, no haga
resaltadas en contenido clic en los botones Atrás y Adelante.
Web sólo
Negrita y Término del glosario (si El algoritmo inserta la nueva clave.
cursiva existe uno)

Corchetes Nombres de teclas Pulse [Intro].

Mayúsculas y Botones, Haga clic en el botón Executable.


minúsculas casillas de control, Active la casilla de control Can’t Delete Card.
disparadores de Asigne un disparador When-Validate-Item al

Oracle Internal & Oracle Academy Use Only


aplicación, bloque ORD.
ventanas Abra la ventana Master Schedule.

Paréntesis Rutas de acceso de Seleccione File > Save.


angulares menús
Comas Secuencias de teclas Pulse y suelte las siguientes teclas de una en una:
[Alt], [F], [D]
Courier new, Salida de código, Salida de código: debug.set ('I', 300);
distinción entre nombres de directorios, Directorio: bin (DOS), $FMHOME (UNIX)
mayúsculas y nombres de archivos, Nombre de archivo: Localice el archivo
minúsculas contraseñas, init.ora.
(el valor por nombres de rutas de Contraseña: Utilice tiger como contraseña.
defecto es acceso, Nombre de ruta de acceso: Abra
minúsculas) entrada de usuario, c:\my_docs\projects.
nombres de usuario Entradas del usuario: Introduzca 300.
Nombre de usuario: Conéctese como HR.

Mayúscula Etiquetas de los gráficos Dirección del cliente (salvo Oracle Payables)
inicial (a menos que el término
sea un nombre propio)

Cursiva Palabras y frases No guarde los cambios en la base de datos.


resaltadas,
títulos de manuales y Para obtener más información, consulte Oracle
cursos, Database SQL Reference 10g Release 1(10.1).
variables
Introduzca user_id@us.oracle.com, donde
user_id es el nombre del usuario.

Prefacio - 5
Convenciones Tipográficas (continuación)
Convenciones Tipográficas en el Texto (continuación)

Convención Elemento Ejemplo


Comillas Elementos de la interfaz con Haga clic en “Include a reusable module
nombres extensos que sólo component” y, luego, en Finish.
llevan mayúscula inicial;
títulos de lecciones y capítulos Este tema se trata en la lección titulada,
en referencias cruzadas “Trabajar con Objetos”.

Mayúsculas Nombres de columna SQL, Utilice el comando SELECT para ver la


comandos, funciones, información almacenada en la columna
esquemas, nombres de tabla, LAST_NAME de la tabla EMPLOYEES.
nombres de disparadores de
base de datos

Oracle Internal & Oracle Academy Use Only


Convenciones Tipográficas en el Código

Convención Elemento Ejemplo


Minúsculas Nombres de SELECT last_name
columna, FROM employees;
nombres de tabla,
nombres de CREATE OR REPLACE TRIGGER secure_employees
disparadores de
base de datos
Contraseñas CREATE USER scott
IDENTIFIED BY tiger;
Objetos PL/SQL items.DELETE(3);

Cursivas Variables de CREATE ROLE role


minúsculas sintaxis
Mayúsculas Funciones y SELECT first_name
comandos SQL FROM employees;

Prefacio - 6
Convenciones Tipográficas (continuación)
Convenciones Tipográficas en las Rutas de Acceso de Navegación
En este curso se utilizan rutas de acceso de navegación simplificadas, como el ejemplo siguiente, para guiarle
a través de Aplicaciones Oracle.
Ejemplo:

Invoice Batch Summary


(N) Invoice > Entry > Invoice Batches Summary (M) Query > Find (B) Approve

Esta ruta de acceso simplificada se traduce en lo siguiente:


1. (N) En la ventana del navegador, seleccione Invoice > Entry > Invoice Batches Summary.
2. (M) En el menú, seleccione Query > Find.
3. (B) Haga clic en el botón Approve.

Oracle Internal & Oracle Academy Use Only


Notación:
(N) = Navegador (I) = Icono
(M) = Menú (H) = Enlace de hipertexto
(S) = Separador (B) = Botón

Prefacio - 7
Prefacio - 8
Oracle Internal & Oracle Academy Use Only
Introducción

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.
Objetivos del Curso

Al finalizar este curso, debería estar capacitado para lo


siguiente:
• Instalar, crear y administrar la base de datos
Oracle 10g
• Configurar la base de datos para una aplicación

Oracle Internal & Oracle Academy Use Only


• Utilizar procedimientos de control básicos
• Implementar una estrategia de copia de seguridad
y recuperación
• Mover datos entre bases de datos y archivos

Copyright © 2005, Oracle. Todos los derechos reservados.

Objetivos del Curso


En este curso instalará el software Oracle Database 10g Enterprise Edition, creará una nueva
base de datos y aprenderá a administrar dicha base de datos.
También configurará la base de datos para dar soporte a una aplicación y realizará tareas como la
creación de usuarios, definición de estructuras de almacenamiento y configuración de la
seguridad. Este curso utiliza una aplicación ficticia. Sin embargo, realizará todas las tareas
principales necesarias para una aplicación real.
La administración de la base de datos no termina tras haberla configurado. También aprenderá a
proteger la base de datos diseñando una estrategia de copia de seguridad y recuperación y a
controlarla para garantizar que funciona correctamente.

Base de Datos Oracle 10g: Taller de Administración I 1-2


Planificación Sugerida

1. Introducción 13. Rendimiento


2. Instalación 14. Conceptos de Copia de
3. Creación de Base de Datos Seguridad y Recuperación
4. Instancia 15. Copia de Seguridad

5. Almacenamiento 16. Recuperación


17. Flashback

Oracle Internal & Oracle Academy Use Only


6. Usuarios
18. Movimiento de Datos
7. Esquema
8. Datos y Simultaneidad

9. Deshacer
10. Seguridad
11. Red
12. Mantenimiento Proactivo

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 1-3


Objetivos

Al finalizar esta lección, debería estar capacitado para


lo siguiente:
• Describir los objetivos del curso
• Explicar la arquitectura de la base de datos Oracle 10g

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 1-4


Productos y Servicios Oracle

• Bases de datos Oracle


• Oracle Application Server
• Aplicaciones Oracle
• Oracle Collaboration Suite
• Oracle Developer Suite

Oracle Internal & Oracle Academy Use Only


• Servicios Oracle

Copyright © 2005, Oracle. Todos los derechos reservados.

Productos Oracle
• Bases de datos Oracle: La base de datos Oracle es la primera base de datos diseñada para
Enterprise Grid Computing (el modo más flexible y rentable de gestionar información y
aplicaciones).
• Oracle Application Server: El servidor certificado para plataforma Java 2 Enterprise
Edition (J2EE) de Oracle integra todo lo necesario para desarrollar y desplegar aplicaciones
basadas en Web. El servidor de aplicaciones despliega portales de comercio electrónico,
servicios Web y aplicaciones transaccionales que incluyen aplicaciones basadas en PL/SQL,
en Oracle Forms y en J2EE.
• Aplicaciones Oracle: Oracle E-Business Suite es un juego completo de aplicaciones de
negocio para gestionar y automatizar los procesos de la organización.
• Oracle Collaboration Suite: Oracle Collaboration Suite es un sistema integrado único para
todos los datos de comunicaciones de la organización: voz, correo electrónico, fax,
dispositivo móvil, información de agenda y archivos.
• Oracle Developer Suite: Oracle Development Suite es un completo entorno integrado que
combina herramientas de desarrollo de aplicaciones y de análisis de negocios.
• Servicios Oracle: Los servicios como Oracle Consulting y Oracle University proporcionan
los conocimientos necesarios para sus proyectos Oracle. Para obtener enlaces útiles a
diferentes recursos, consulte el apéndice titulado “Siguientes Pasos para Continuar con la
Formación”.

Base de Datos Oracle 10g: Taller de Administración I 1-5


Base de Datos Oracle 10g:
“g” Significa Grid

• Global Grid Forum (GGF)


• Infraestructura de grid de Oracle:
– Bajo costo
– Alta calidad de servicio
– Fácil de gestionar

Oracle Internal & Oracle Academy Use Only


Grid de Grid de Grid de Control de
almacenamiento base de datos aplicación grids

Automatic Real Oracle Enterprise


Storage Application Streams Manager
Management Clusters Grid Control

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: “g” Significa Grid


Global Grid Forum (GGF) es un organismo que desarrolla estándares para Grid Computing.
Está compuesto por un juego de comités y grupos de trabajo que se centran en diversos aspectos
de Grid Computing. Los comités y grupos de trabajo están compuestos por participantes
procedentes del mundo académico, de la comunidad investigadora y (cada vez más) de
compañías comerciales. Puede visitar el sitio Web de GGF en la dirección
http://www.gridforum.org.
Oracle ha creado el software de infraestructura de Grid Computing que equilibra todos los tipos
de cargas de trabajo en todos los servidores y permite que todos ellos se puedan gestionar como
un sistema completo. Grid Computing puede lograr el mismo nivel elevado de fiabilidad que la
computación de mainframe ya que todos sus componentes están en cluster. Aunque, a diferencia
de los mainframes y los grandes servidores de multiproceso simétrico (SMP) de UNIX, los grid
pueden incorporar tecnologías de sistemas abiertos, como los procesadores Intel y el sistema
operativo Linux, con un costo muy bajo.
La tecnología de Grid Computing de Oracle incluye:
• Automatic Storage Management (ASM)
• Real Application Clusters (RAC)
• Oracle Streams
• Enterprise Manager Grid Control

Base de Datos Oracle 10g: Taller de Administración I 1-6


Base de Datos Oracle 10g: “g” Significa Grid (continuación)
Automatic Storage Management distribuye los datos de bases de datos por todos los discos,
crea y mantiene un grid de almacenamiento y proporciona el rendimiento de entrada/salida (E/S)
más elevado con los mínimos costos de gestión. Conforme se agregan o borran discos, ASM
vuelve a distribuir los datos de manera automática. (No es necesario disponer de un gestor de
volúmenes lógicos para gestionar el sistema de archivos.) La duplicación opcional aumenta la
disponibilidad de los datos y es posible agregar o borrar discos en línea. Para obtener más
información, consulte la lección titulada “Gestión de Estructuras de Almacenamiento de Bases
de Datos”.
Oracle Real Application Clusters ejecuta y escala todas las cargas de trabajo de aplicación en
un cluster de servidores y ofrece las siguientes funciones:
• Clusterware integrado: Incluye la funcionalidad para la conectividad de cluster, mensajes
y bloqueo, control de cluster y recuperación. Está disponible en todas las plataformas que

Oracle Internal & Oracle Academy Use Only


soporta la base de datos Oracle 10g.
• Gestión automática de cargas de trabajo: Se pueden definir reglas para asignar
automáticamente recursos de procesamiento a cada servicio durante las operaciones
normales y en respuesta a fallos. Estas reglas se pueden modificar de manera dinámica para
satisfacer las cambiantes necesidades de negocio. Esta asignación dinámica de recursos
dentro de un grid de base de datos es exclusiva de Oracle RAC.
• Notificación automática de eventos a la capa media: Cuando cambia una configuración
de cluster, la capa media puede adaptarse inmediatamente a la operación de failover de
instancias o a la disponibilidad de una instancia nueva. Esto permite a los usuarios finales
seguir trabajando cuando se produce un failover de instancias sin los retrasos que
normalmente provocan los timeouts de red. En caso de disponibilidad de instancia nueva,
la capa media puede iniciar inmediatamente las conexiones de equilibrio de carga en esa
instancia. Los controladores de Java Database Connectivity (JDBC) de la base de datos
Oracle 10g disponen de la funcionalidad “Fast Connection Failover” que se puede activar
automáticamente para manejar estos eventos.
Oracle Streams proporciona un marco unificado para compartir información, combinar la cola
de mensajes, replicar datos, notificar eventos, cargar el almacén de datos y publicar y suscribir la
funcionalidad en una tecnología única. Oracle Streams puede mantener sincronizadas dos o más
copias de origen de datos cuando se apliquen actualizaciones en cualquiera de los sitios. Puede,
de manera automática, capturar los cambios en las bases de datos, propagar esos cambios a los
nodos suscritos, aplicarlos y detectar y resolver los conflictos de actualización de datos. Las
aplicaciones pueden utilizar directamente Oracle Streams como una función de cola de mensajes
o flujo de trabajo, permitiendo la comunicación entre las aplicaciones del grid.
Enterprise Manager Grid Control gestiona las operaciones de todo el grid que incluyen la
gestión de toda la pila de software, el provisionamiento de usuarios, la clonación de bases de
datos y la gestión de parches. Puede controlar el rendimiento de todas las aplicaciones desde el
punto de vista de sus usuarios finales. Grid Control considera la disponibilidad y el rendimiento
de la infraestructura de grid como un todo unificado en lugar de como unidades de
almacenamiento, bases de datos y servidores de aplicaciones aislados. Los nodos de hardware,
bases de datos y servidores de aplicaciones se pueden agrupar en entidades lógicas únicas y se
puede gestionar un grupo de destinos como una sola unidad.
Nota: En este curso, utilice la Consola de Base de Datos de Enterprise Manager para gestionar
las bases de datos de una en una.
Base de Datos Oracle 10g: Taller de Administración I 1-7
Arquitectura de la Base de Datos Oracle

Un servidor de Oracle:
• Es un sistema de gestión de bases de datos que
proporciona un enfoque abierto, completo e
integrado a la gestión de información
• Consta de una instancia Oracle y una base de

Oracle Internal & Oracle Academy Use Only


datos Oracle

Copyright © 2005, Oracle. Todos los derechos reservados.

Arquitectura de la Base de Datos Oracle


El servidor de Oracle es la clave para la gestión de información. Normalmente, un servidor de
Oracle tiene que gestionar de manera fiable una gran cantidad de datos en un entorno de varios
usuarios para que numerosos usuarios puedan acceder de manera simultánea a los mismos datos.
Todo esto se debe realizar al mismo tiempo que se ofrece un alto rendimiento. Asimismo, un
servidor de Oracle tiene que impedir el acceso no autorizado y proporcionar soluciones eficaces
para la recuperación ante fallos.

Base de Datos Oracle 10g: Taller de Administración I 1-8


Estructuras de Bases Estructuras de bases
de datos
de Datos - Memoria
- Proceso
- Almacenamiento

Estructuras de memoria Instancia


Área Global del Sistema (SGA)

Estructuras de proceso
Procesos en segundo plano

Oracle Internal & Oracle Academy Use Only


Estructuras de Archivos de base de datos
almacenamiento

Copyright © 2005, Oracle. Todos los derechos reservados.

Estructuras de Bases de Datos


Cada base de datos Oracle en ejecución está asociada a una instancia de Oracle. Cuando una
base de datos se inicia en un servidor de bases de datos, el software de Oracle asigna un área de
memoria compartida denominada Área Global del Sistema (SGA) e inicia varios procesos en
segundo plano de Oracle. Esta combinación de SGA y los procesos de Oracle se denomina
instancia de Oracle.
Después de iniciar una instancia, el software de Oracle la asocia a una base de datos concreta.
Esto se denomina montaje de la base de datos. La base de datos está ahora lista para su apertura,
lo que la hace accesible a los usuarios autorizados. Varias instancias se pueden ejecutar
simultáneamente en la misma computadora, accediendo cada una de ellas a su propia base de
datos física.
La arquitectura de la base de datos Oracle se puede ver como varios componentes estructurales
interrelacionados.
Una base de datos Oracle utiliza procesos y estructuras de memoria para gestionar y acceder a la
base de datos. Todas las estructuras de memoria existen en la memoria principal de las
computadoras que constituyen el servidor de la base de datos. Los procesos son trabajos que
funcionan en la memoria de estas computadoras. Un proceso se define como “thread de control”
o mecanismo de un sistema operativo que puede realizar una serie de pasos.

Base de Datos Oracle 10g: Taller de Administración I 1-9


Estructuras de Memoria Estructuras de bases
de datos
de Oracle > Memoria
Proceso
Almacenamiento

Proceso de Proceso de Proceso en


servidor PGA servidor PGA segundo PGA
1 2 plano

Oracle Internal & Oracle Academy Use Only


SGA

Pool compartido Pool de Streams Pool grande

Caché de
Buffer de
Pool Java buffers de la
redo log
base de datos

Copyright © 2005, Oracle. Todos los derechos reservados.

Estructuras de Memoria de Oracle


Las estructuras de memoria básicas asociadas a una instancia de Oracle incluyen:
• Área Global del Sistema (SGA): Compartida por todos los procesos de servidor y en
segundo plano.
• Área Global de Programa (PGA): Privada para cada proceso de servidor y en segundo
plano. Existe una PGA por cada proceso.
SGA es un área de memoria que contiene datos e información de control para la instancia.
SGA incluye las siguientes estructuras de datos:
• Caché de buffers de la base de datos: Almacena en caché los bloques de datos que se
recuperan de la base de datos.
• Buffer de redo log: Almacena en caché la información de redo (utilizada para la
recuperación de instancias) hasta que se pueda escribir en los archivos redo log físicos
almacenados en el disco.
• Pool compartido: Almacena en caché las distintas construcciones que se pueden compartir
entre usuarios.
• Pool grande: Es un área opcional que proporciona grandes asignaciones de memoria para
determinados procesos grandes, como operaciones de recuperación y copia de seguridad de
Oracle y procesos de E/S del servidor.

Base de Datos Oracle 10g: Taller de Administración I 1-10


Estructuras de Memoria de Oracle (continuación)
• Pool Java: Se utiliza para todos los códigos y datos Java específicos de la sesión dentro de
Java Virtual Machine (JVM).
• Pool de Streams: Utilizado por Oracle Streams.
Al iniciar la instancia con Enterprise Manager o SQL*Plus, aparece la cantidad de memoria
asignada a SGA.
Un Área Global de Programa (PGA) es una región de la memoria que contiene datos e
información de control para cada proceso de servidor. Un proceso de servidor de Oracle se ocupa
de las solicitudes de un cliente. Cada proceso de servidor tiene su propia PGA creada al iniciar el
proceso de servidor. El acceso a PGA es exclusivo para dicho proceso de servidor y se lee y
escribe sólo mediante código de Oracle que actúa en su nombre.
Con la infraestructura de SGA dinámica, el tamaño de la caché de buffers, el pool compartido, el
pool grande, el pool Java y el pool de Streams de la base de datos cambian sin cerrar la instancia.

Oracle Internal & Oracle Academy Use Only


La base de datos Oracle utiliza los parámetros de inicialización para crear y configurar las
estructuras de memoria. Por ejemplo, el parámetro SGA_TARGET especifica la cantidad total de
espacio disponible en SGA. Si define SGA_TARGET en 0, se desactivará la gestión automática
de memoria compartida.

Base de Datos Oracle 10g: Taller de Administración I 1-11


Estructuras de Proceso Estructuras de bases
de datos
Memoria
> Proceso
Almacenamiento

Instancia
PGA
SGA
Proceso de Proceso
usuario de
servidor Procesos
en segundo plano

Oracle Internal & Oracle Academy Use Only


• Proceso de usuario: Se inicia en el momento en que un usuario
de base de datos solicita una conexión al servidor de Oracle
• Proceso de servidor: Conecta a la instancia de Oracle y se inicia
cuando un usuario establece una sesión
• Procesos en segundo plano: Se inician al iniciar una instancia
de Oracle

Copyright © 2005, Oracle. Todos los derechos reservados.

Estructuras de Proceso
Al llamar a un programa de aplicación o herramienta de Oracle, como Enterprise Manager,
el servidor de Oracle crea un proceso de servidor para ejecutar los comandos que emita la
aplicación. El servidor de Oracle también crea un juego de procesos en segundo plano para
una instancia que interactúan entre sí y con el sistema operativo para gestionar las estructuras
de memoria, realizar una E/S asíncrona para escribir datos en disco y llevar a cabo otras tareas
necesarias. El que estén presentes unos procesos en segundo plano u otros depende de las
funciones que se estén utilizando en la base de datos.

Base de Datos Oracle 10g: Taller de Administración I 1-12


Gestión de Instancias de Oracle
SGA

Pool Pool
Pool grande
compartido de Streams

Caché de buffers Buffer de


Pool Java
de la base de datos redo log

Oracle Internal & Oracle Academy Use Only


Monitor Control de Escritor Escritor
de la base
del sistema procesos de log
de datos Archivos
(SMON) (PMON) (DBWn) (LGWR) archive log

Punto Archivos Proceso


de control de control de archivado
(CKPT) Archivos Archivos (ARCn)
de datos redo log

Copyright © 2005, Oracle. Todos los derechos reservados.

Gestión de Instancias de Oracle


Un servidor de bases de datos Oracle consta de una base de datos Oracle y una instancia de
Oracle. Una instancia de Oracle está formada por estructuras de memoria conocidas como Área
Global del Sistema (SGA) y por procesos en segundo plano que manejan gran parte del trabajo
en segundo plano relacionado con la ejecución de una instancia. Los procesos en segundo plano
más comunes son los siguientes:
• Monitor del sistema (SMON): Realiza la recuperación de fallos cuando la instancia se
inicia después de un fallo.
• Control de procesos (PMON): Realiza la limpieza de procesos cuando falla un proceso de
usuario.
• Escritor de la base de datos (DBWn): Escribe bloques modificados de la caché de buffers
de la base de datos en los archivos de datos del disco.
• Punto de control (CKPT): Actualiza todos los archivos de datos y de control de la base de
datos para indicar el punto de control más reciente.
• Escritor de log (LGWR): Escribe las entradas de redo log en el disco.
• Proceso de archivado (ARCn): Copia los archivos redo log en un almacenamiento de
archivado cuando se produce un cambio de log.

Base de Datos Oracle 10g: Taller de Administración I 1-13


Proceso de Servidor y Caché de Buffers
de la Base de Datos

Proceso SGA Buffers:


de
servidor
• Asignados
Caché de buffers
de la base de datos • Limpios
• Libres o no
utilizados

Oracle Internal & Oracle Academy Use Only


• Sucios

DBWn

Archivos de datos

Copyright © 2005, Oracle. Todos los derechos reservados.

Proceso de Servidor y Caché de Buffers de la Base de Datos


Cuando se procesa una consulta, el proceso del servidor de Oracle busca en la caché de buffers
de la base de datos cualquier bloque que necesita. Si no encuentra el bloque en la caché de buffers
de la base de datos, el proceso de servidor lee el bloque del archivo de datos y coloca una copia
en esa caché. Puesto que es posible que solicitudes posteriores del mismo bloque encuentren el
bloque en memoria, las solicitudes no requerirán lecturas físicas. El servidor de Oracle utiliza el
algoritmo de uso menos reciente para dejar obsoletos los buffers a los que no se ha accedido
últimamente y crear espacio para los nuevos bloques en la caché de buffers de la base de datos.
Los buffers de la caché de buffers pueden tener uno de los siguientes cuatro estados:
• Asignado: Se evita que varias sesiones escriban en el mismo bloque al mismo tiempo.
Las demás sesiones esperan para acceder al bloque.
• Limpio: El buffer ahora no está asignado y es candidato para quedarse obsoleto
inmediatamente si no se vuelve a hacer referencia al contenido actual (bloque de datos).
El contenido está sincronizado con el contenido de los bloques almacenado en el disco o el
buffer contiene una instantánea de lectura consistente (CR) de un bloque.
• Libre o no utilizado: El buffer está vacío porque la instancia se acaba de iniciar. Este estado
es muy parecido al estado limpio, salvo que el buffer no se ha utilizado.
• Sucio: El buffer ya no está asignado pero el contenido (bloque de datos) ha cambiado y se
debe vaciar en el disco con DBWn antes de que se quede obsoleto.

Base de Datos Oracle 10g: Taller de Administración I 1-14


Estructura de Base Estructuras de bases
de datos
de Datos Física Memoria
Proceso
> Almacenamiento

Archivos de control Archivos de datos Archivos redo log en línea

Oracle Internal & Oracle Academy Use Only


Archivo de parámetros Archivos de copia de Archivos archive log
seguridad

Archivo de contraseñas Archivos log de alertas y de rastreo

Copyright © 2005, Oracle. Todos los derechos reservados.

Estructura de Base de Datos Física


Los archivos que constituyen una base de datos Oracle están organizados del siguiente modo:
• Archivos de control: Contienen datos sobre la propia base de datos (es decir, información
sobre la estructura de la base de datos física). Estos archivos son críticos para la base de datos.
Sin ellos, no se pueden abrir los archivos de datos para acceder a los datos que contiene la
base de datos.
• Archivos de datos: Contienen los datos de aplicación o de usuario de la base de datos.
• Archivos redo log en línea: Permiten la recuperación de instancias de la base de datos. Si la
base de datos falla y no pierde archivos de datos, la instancia puede recuperar la base de datos
con la información de dichos archivos.
Los siguientes archivos adicionales son importantes para la correcta ejecución de la base de datos:
• Archivo de parámetros: Se utiliza para definir el modo de configurar la instancia cuando se
inicie.
• Archivo de contraseñas: Permite a los usuarios conectarse a la base de datos de forma
remota y realizar tareas administrativas.
• Archivos de copia de seguridad: Se utilizan para la recuperación de la base de datos.
Normalmente restaura un archivo de copia de seguridad cuando un fallo del medio físico o un
error del usuario ha dañado o suprimido el archivo original.

Base de Datos Oracle 10g: Taller de Administración I 1-15


Estructura de Base de Datos Física (continuación)
• Archivos archive log: Contienen un historial en curso de los cambios de datos (redo)
generados por la instancia. Mediante estos archivos y una copia de seguridad de la base de
datos, se puede recuperar un archivo de datos perdido. Es decir, los archive logs permiten
la recuperación de archivos de datos restaurados.
• Archivos de rastreo: Cada proceso de servidor y en segundo plano puede escribir en un
archivo de rastreo asociado. Cuando un proceso detecta un error interno, vuelca
información sobre el error en su archivo de rastreo. Parte de la información escrita en un
archivo de rastreo va destinada al administrador de la base de datos, mientras que otra
información es para los Servicios de Soporte Oracle.
• Archivos log de alertas: Son archivos de rastreo especiales. También se conocen como
logs de alertas. El log de alertas de una base de datos es un log cronológico de mensajes y
errores. Oracle recomienda revisar estos archivos.

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g: Taller de Administración I 1-16


Tablespaces y Archivos de Datos

• Los tablespaces constan de uno o más archivos de datos.


• Los archivos de datos pertenecen a un solo tablespace.

Oracle Internal & Oracle Academy Use Only


Archivo de Archivo de
datos 1 datos 2

Tablespace USERS

Copyright © 2005, Oracle. Todos los derechos reservados.

Tablespaces y Archivos de Datos


Una base de datos se divide en unidades lógicas de almacenamiento denominadas tablespaces,
que se pueden utilizar para agrupar estructuras lógicas relacionadas. Cada base de datos está
dividida lógicamente en uno o más tablespaces. Se crean explícitamente uno o más archivos de
datos para cada tablespace con el fin de almacenar físicamente los datos de todas las estructuras
lógicas de un tablespace.
Nota: También pueden crear tablespaces de archivo grande, que son tablespaces con un único
archivo de datos aunque de gran tamaño (hasta 4 mil millones de bloques de datos). Los
tablespaces de archivo pequeño tradicionales (utilizados por defecto) pueden contener varios
archivos de datos, pero los archivos no pueden ser tan grandes. Para obtener más información
sobre los tablespaces de archivo grande, consulte Database Administrator’s Guide.

Base de Datos Oracle 10g: Taller de Administración I 1-17


Tablespaces SYSTEM y SYSAUX

• Los tablespaces SYSTEM y SYSAUX son


tablespaces obligatorios.
• Se crean en el momento de la creación de la base
de datos.
• Deben estar en línea.

Oracle Internal & Oracle Academy Use Only


• El tablespace SYSTEM se utiliza para la
funcionalidad principal (por ejemplo, las tablas del
diccionario de datos).
• El tablespace SYSAUX auxiliar se utiliza para los
componentes adicionales de base de datos (como
el repositorio de Enterprise Manager).

Copyright © 2005, Oracle. Todos los derechos reservados.

Tablespaces SYSTEM y SYSAUX


Cada base de datos Oracle contiene un tablespace SYSTEM y un tablespace SYSAUX. Se crean
automáticamente al mismo tiempo que la base de datos. El valor por defecto del sistema es crear un
tablespace de archivo pequeño. También se pueden crear tablespaces de archivo grande, lo que
permite a la base de datos Oracle gestionar archivos de enorme tamaño (de hasta 8 exabytes).
Un tablespace puede estar en línea (accesible) o fuera de línea (no accesible). El tablespace
SYSTEM siempre está en línea cuando la base de datos está abierta. Almacena tablas que soportan
la funcionalidad principal de la base de datos como, por ejemplo, las tablas del diccionario de
datos.
El tablespace SYSAUX es un tablespace auxiliar del tablespace SYSTEM. El tablespace SYSAUX
almacena componentes de base de datos y debe estar en línea para el correcto funcionamiento de
todos los componentes de base de datos.

Base de Datos Oracle 10g: Taller de Administración I 1-18


Segmentos, Extensiones y Bloques

• Los segmentos existen en un tablespace.


• Los segmentos están formados por una recopilación de
extensiones.
• Las extensiones son un conjunto de bloques de datos.
• Los bloques de datos están asignados a bloques de
disco.

Oracle Internal & Oracle Academy Use Only


Segmento Extensiones Bloques Bloques
de datos de disco

Copyright © 2005, Oracle. Todos los derechos reservados.

Segmentos, Extensiones y Bloques


Los objetos de base de datos, como tablas e índices, se almacenan en los tablespaces como
segmentos. Cada segmento contiene una o más extensiones. Una extensión consta de bloques de
datos contiguos, lo que significa que cada extensión sólo puede existir en un archivo de datos. Los
bloques de datos son la unidad más pequeña de E/S de la base de datos.
Cuando la base de datos solicita un juego de bloques de datos del sistema operativo, éste lo asigna a
un sistema de archivos real o bloque de disco en el dispositivo de almacenamiento. Por este motivo,
no es necesario conocer la dirección física de los datos de la base de datos. Esto también indica que
un archivo de datos se puede segmentar o duplicar en varios discos.
El tamaño del bloque de datos se puede definir en el momento de la creación de la base de datos.
El tamaño por defecto de 8 KB es adecuado para la mayoría de las bases de datos. Si la base de
datos da soporte a una aplicación de almacén de datos con tablas e índices grandes, un tamaño de
bloque mayor puede ser útil.
Si la base de datos da soporte a una aplicación transaccional en la que la lectura y escritura se
realizan aleatoriamente, puede ser útil especificar un tamaño de bloque menor. El tamaño de bloque
máximo depende del sistema operativo. El tamaño de bloque mínimo de Oracle es de 2 KB y se
utiliza pocas veces (si se llega a usar).
Puede tener tablespaces con distintos tamaños de bloque. Sin embargo, se deben utilizar sólo para
tablespaces transportables. Para más información, consulte Database Administrator’s Guide.

Base de Datos Oracle 10g: Taller de Administración I 1-19


Estructuras de Bases de Datos Físicas
y Lógicas
Lógica Física

Base de datos

Archivo
Esquema Tablespace
de datos

Oracle Internal & Oracle Academy Use Only


Segmento

Extensión

Bloque de Bloque del


datos de Oracle sistema operativo

Copyright © 2005, Oracle. Todos los derechos reservados.

Estructuras de Bases de Datos Físicas y Lógicas


Una base de datos Oracle es una recopilación de datos que se trata como una unidad. El objetivo
general de una base de datos es almacenar y recuperar la información relacionada. La base de
datos tiene estructuras lógicas y físicas.
Tablespaces
Una base de datos se divide en unidades lógicas de almacenamiento denominadas tablespaces, que
agrupan estructuras lógicas relacionadas. Por ejemplo, los tablespaces suelen agrupar todos los
objetos de una aplicación para simplificar algunas operaciones administrativas. Puede tener un
tablespace para los datos de la aplicación y otro adicional para los índices de la aplicación.
Bases de Datos, Tablespaces y Archivos de Datos
La relación entre las bases de datos, los tablespaces y los archivos de datos se ilustra en la
diapositiva. Cada base de datos está dividida de manera lógica en uno o más tablespaces. Se crean
explícitamente uno o más archivos de datos para cada tablespace con el fin de almacenar
físicamente los datos de todas las estructuras lógicas de un tablespace. Si se trata de un tablespace
TEMPORARY, en lugar de un archivo de datos, el tablespace tendrá un archivo temporal.

Base de Datos Oracle 10g: Taller de Administración I 1-20


Estructuras de Bases de Datos Físicas y Lógicas (continuación)
Esquemas
Un esquema es una recopilación de objetos de base de datos propiedad de un usuario de la base
de datos. Los objetos de esquema son estructuras lógicas que hacen referencia directa a datos de
la base de datos. Los objetos de esquema incluyen estructuras como, por ejemplo, tablas, vistas,
secuencias, procedimientos almacenados, sinónimos, índices, clusters y enlaces de base de datos.
En general, los objetos de esquema incluyen todo lo que la aplicación cree en la base de datos.
Bloques de Datos
Al nivel más detallado de granularidad, los datos de una base de datos Oracle se almacenan en
bloques de datos. Un bloque de datos corresponde a un número concreto de bytes de espacio de
la base de datos física en el disco. Se especifica un tamaño del bloque de datos para cada
tablespace cuando se crea. Una base de datos utiliza y asigna espacio libre de la base de datos en
bloques de datos Oracle.

Oracle Internal & Oracle Academy Use Only


Extensiones
Al nivel siguiente del espacio de la base de datos lógica se denomina extensión. Una extensión es
un número específico de bloques de datos contiguos (obtenidos en una única asignación) que se
utilizan para almacenar un tipo determinado de información.
Segmentos
Al nivel de almacenamiento de la base de datos lógica por encima de una extensión se denomina
segmento. Un segmento es un juego de extensiones asignadas para una determinada estructura
lógica. Por ejemplo, los diferentes tipos de segmentos incluyen:
• Segmentos de datos: Cada tabla no de cluster y no organizada por índices tiene un
segmento de datos. Todos los datos de la tabla se almacenan en las extensiones de su
segmento de datos. Para una tabla particionada, cada partición tiene un segmento de datos.
Cada cluster tiene un segmento de datos. Los datos de cada tabla del cluster se almacenan
en el segmento de datos del cluster.
• Segmentos de índice: Cada índice tiene un segmento de índice que almacena todos sus
datos. Para un índice particionado, cada partición tiene un segmento de índice.
• Segmentos de deshacer: El administrador de la base de datos crea un tablespace UNDO
para almacenar temporalmente información de deshacer. La información de un segmento
de deshacer se utiliza para generar información de base de datos de lectura consistente y,
durante la recuperación de la base de datos, para realizar una operación de rollback de las
transacciones sin confirmar para los usuarios.
• Segmentos temporales: La base de datos Oracle crea segmentos temporales cuando una
sentencia SQL necesita un área de trabajo temporal para terminar la ejecución. Cuando la
sentencia termina la ejecución, las extensiones del segmento temporal vuelven a la
instancia para un uso futuro. Especifique un tablespace temporal por defecto para cada
usuario o un tablespace temporal por defecto que se utilice en toda la base de datos.
La base de datos Oracle asigna el espacio dinámicamente. Cuando las extensiones existentes de
un segmento están completas, se agregan extensiones adicionales. Debido a que las extensiones
se asignan según sea necesario, las extensiones de un segmento pueden o no ser contiguas en el
disco.

Base de Datos Oracle 10g: Taller de Administración I 1-21


Ejemplos del Curso: Esquema HR
REGIONS
REGION_ID (PK)
REGION_NAME

JOBS
COUNTRIES JOB_ID (PK)
COUNTRY_ID (PK) JOB_TITLE
COUNTRY_NAME MIN_SALARY
JOB_HISTORY
REGION_ID (FK) MAX_SALARY EMPLOYEE_ID (PK)
START_DATE (PK)
END_DATE
JOB_ID (FK)

Oracle Internal & Oracle Academy Use Only


LOCATIONS EMPLOYEES DEPARTMENT_ID (FK)
LOCATION_ID (PK) EMPLOYEE_ID (PK)
STREET_ADDRESS FIRST_NAME
POSTAL_CODE LAST_NAME
CITY EMAIL
STATE_PROVINCE PHONE_NUMBER
COUNTRY_ID (FK) HIRE_DATE
JOB_ID (FK)
SALARY
COMMISION_PCT
DEPARTMENTS MANAGER_ID (FK)
DEPARTMENT_ID (PK) DEPARTMENT_ID (FK)
DEPARTMENT_NAME
MANAGER_ID
LOCATION_ID (FK)

Copyright © 2005, Oracle. Todos los derechos reservados.

Ejemplos del Curso: Esquema HR


Los ejemplos utilizados en este curso pertenecen una aplicación de recursos humanos (HR), que se
puede crear como parte de la base de datos inicial.
A continuación, se muestran algunas reglas principales de negocio de la aplicación HR:
• Cada departamento puede ser el empleador de uno o más empleados. Cada empleado se
puede asignar a un único departamento.
• Cada puesto debe ser para uno o más empleados. Cada empleado debe estar asignado a un
único puesto simultáneamente.
• Cuando un empleado cambia su departamento o puesto, un registro de la tabla
JOB_HISTORY registra las fechas de inicio y de finalización de las asignaciones pasadas.
• Los registros de JOB_HISTORY se identifican mediante una clave primaria compuesta (PK):
las columnas EMPLOYEE_ID y START_DATE.
Notación: PK = Clave primaria, FK = Clave ajena
Las líneas sólidas representan las restricciones obligatorias de clave ajena y las líneas discontinuas
las opcionales.
La tabla EMPLOYEES también tiene una restricción de clave ajena consigo misma. Ésta es una
implementación de la regla de negocio: Cada empleado informa directamente a un único superior.
La clave ajena es opcional porque el empleado de nivel superior no informa a otro empleado.

Base de Datos Oracle 10g: Taller de Administración I 1-22


Arquitectura de Base de Datos:
Resumen de Componentes Estructurales
• Estructuras de memoria:
– Área Global del Sistema (SGA): Caché de buffers de
la base de datos, buffer de redo y diversos pools
– Área Global de Programa (PGA)
• Estructuras de proceso:

Oracle Internal & Oracle Academy Use Only


– Proceso de usuario y proceso del servidor
– Procesos en segundo plano: SMON, PMON, DBWn,
CKPT, LGWR, ARCn, etc.
• Estructuras de almacenamiento:
– Lógicas: Base de datos, esquema, tablespace,
segmento, extensión y bloque Oracle
– Físicas: Archivos para datos, parámetros, redo y
bloque del sistema operativo

Copyright © 2005, Oracle. Todos los derechos reservados.

Arquitectura de Base de Datos: Resumen de Componentes Estructurales


En esta lección, ha aprendido, a un alto nivel, sobre los componentes estructurales de la base de
datos Oracle: estructuras de memoria, de proceso y de almacenamiento. En las siguientes
lecciones encontrará información más detallada.

Base de Datos Oracle 10g: Taller de Administración I 1-23


Resumen

En esta lección, debe haber aprendido lo siguiente:


• Instalar, crear y administrar la base de datos
Oracle 10g
• Configurar la base de datos para una aplicación
• Utilizar procedimientos de control básicos

Oracle Internal & Oracle Academy Use Only


• Implementar una estrategia de copia de seguridad
y recuperación
• Mover datos entre bases de datos y archivos

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 1-24


Instalación del Software de la Base de
Datos Oracle

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.
Objetivos

Al finalizar esta lección, debería estar capacitado para


lo siguiente:
• Describir su rol como administrador de base de
datos (DBA) y explicar las tareas y herramientas
típicas

Oracle Internal & Oracle Academy Use Only


• Planificar una instalación de base
de datos Oracle
• Utilizar la Arquitectura Flexible
Óptima (OFA)
• Instalar el software de Oracle
mediante Oracle Universal Installer
(OUI)

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 2-2


Tareas de un Administrador de la
Base de Datos Oracle
Un enfoque prioritario para diseñar, implementar y mantener
una base de datos Oracle implica las siguientes tareas:
1. Evaluar el hardware del servidor de bases de datos
2. Instalar el software de Oracle
3. Planificar la estrategia de base de datos y de seguridad
4. Crear, migrar y abrir la base de datos

Oracle Internal & Oracle Academy Use Only


5. Realizar una copia de seguridad de la base de datos
6. Inscribir los usuarios del sistema y planificar su acceso a
la Red de Oracle
7. Implementar el diseño de la base de datos
8. Recuperarse de fallos de la base de datos
9. Controlar el rendimiento de la base de datos

Copyright © 2005, Oracle. Todos los derechos reservados.

Tareas de un Administrador de la Base de Datos Oracle


Un administrador de la base de datos (DBA) suele ser responsable de la instalación del software de
Oracle y de la creación de la base de datos. Como DBA, puede que sea responsable de la creación
de las estructuras de almacenamiento de la base de datos como, por ejemplo, los tablespaces.
Además, puede crear el esquema o juego de objetos para incluir los datos de la aplicación.
Es preciso garantizar que la base de datos esté disponible para los usuarios. Para ello, puede iniciar
la base de datos, realizar copias de seguridad con cierta periodicidad y controlar el rendimiento de
la base de datos. Estas tareas se deben realizar dentro del marco de una estrategia de seguridad.
A medida que avance por las lecciones de este curso, aprenderá a realizar cada una de estas tareas.
También puede consultar la guía Oracle Database Administrator’s Guide si precisa más
información acerca de cada una de las tareas indicadas en la diapositiva.
En esta lección, se centrará en la instalación. Para realizar esta tarea principal, tenga en cuenta las
siguientes subtareas:
• Comprender qué lugar ocupa el proceso de instalación en la arquitectura técnica global de
una organización.
• Revisar (y actualizar) los planes de capacidad.
• Seleccionar el software de base de datos (versión y opciones necesarias).
• Asegurarse de que se cumplen los requisitos del sistema para todos los elementos
seleccionados.

Base de Datos Oracle 10g: Taller de Administración I 2-3


Herramientas Utilizadas para Administrar
Bases de Datos Oracle

• Oracle Universal Installer


• Asistente de Configuración de Bases de Datos
• Asistente de Actualización de Bases de Datos
• Oracle Net Manager
• Oracle Enterprise Manager

Oracle Internal & Oracle Academy Use Only


• SQL*Plus e iSQL*Plus
• Recovery Manager
• Oracle Secure Backup
• Pump de datos
• SQL*Loader
• Herramientas de línea de comandos

Copyright © 2005, Oracle. Todos los derechos reservados.

Herramientas Utilizadas para Administrar Bases de Datos Oracle


Se pueden utilizar las siguientes herramientas para la instalación y actualización:
• Oracle Universal Installer (OUI): Oracle Universal Installer instala el software y las
opciones de Oracle. Puede iniciar automáticamente el Asistente de Configuración de Bases
de Datos (DBCA) para crear una base de datos.
• Asistente de Configuración de Bases de Datos (DBCA): Crea una base de datos a partir
de las plantillas proporcionadas por Oracle. Permite copiar una base de datos inicial
preconfigurada. De manera alternativa, puede crear su propia base de datos y plantillas.
• Asistente de Actualización de Bases de Datos (DBUA): Esta herramienta le guía por los
pasos necesarios para actualizar su base de datos existente a una nueva versión de Oracle.
• Oracle Net Manager: Se utiliza para configurar la conectividad de red de sus aplicaciones
y bases de datos Oracle.

Base de Datos Oracle 10g: Taller de Administración I 2-4


Herramientas Utilizadas para Administrar Bases de Datos Oracle (continuación)
Las siguientes herramientas se utilizan para gestionar su instancia y base de datos Oracle:
• Oracle Enterprise Manager (EM): EM combina una consola gráfica, agentes, servicios
comunes y herramientas para proporcionar una plataforma de gestión del sistema completa
e integrada para la gestión de productos Oracle. Después de instalar el software de Oracle,
crear o actualizar una base de datos y configurar la red, puede utilizar Enterprise Manager
como la única interfaz para gestionar la base de datos. Además de proporcionar una
interfaz de usuario basada en Web para ejecutar comandos SQL, interactúa de forma
ininterrumpida con otros componentes de Oracle que se utilizan para administrar la base de
datos (por ejemplo, Recovery Manager y el Planificador).
Las tres herramientas principales de Enterprise Manager que se utilizan para administrar
una base de datos Oracle son las siguientes:
- Consola de Base de Datos de Enterprise Manager: Se utiliza para administrar una
base de datos.

Oracle Internal & Oracle Academy Use Only


- Enterprise Manager Grid Control: Se utiliza para administrar varias bases de datos al
mismo tiempo.
- Consola Java de Enterprise Manager: Se utiliza para acceder a herramientas que no
están basadas en Web.
• SQL*Plus: SQL*Plus es la interfaz estándar de línea de comandos que se utiliza para
gestionar la base de datos.
• iSQL*Plus: iSQL*Plus es una interfaz basada en explorador para una base de datos
Oracle.
• Recovery Manager (RMAN): RMAN es una herramienta de Oracle que ofrece una
solución completa para cubrir las necesidades de copia de seguridad, restauración y
recuperación de toda la base de datos o de archivos específicos de ésta.
• Oracle Secure Backup facilita la gestión de las copias de seguridad en cintas en Oracle
Ecosystem, lo que incluye lo siguiente:
- Protección de la base de datos Oracle en cintas mediante la integración con Recovery
Manager
- Soporte completo de Oracle Real Application Clusters (RAC)
- Administración central de clientes distribuidos y servidores de medios físicos,
incluidos Oracle Application Server, Oracle Collaboration Suite y binarios y
directorio raíz de Oracle
• Pump de datos: La utilidad de pump de datos permite la transferencia de datos de una base
de datos a otra a alta velocidad. Por ejemplo, puede exportar una tabla e importarla a otra
base de datos.
• SQL*Loader: La utilidad SQL*Loader permite la carga de datos de un archivo externo en
una base de datos Oracle. Es una de las diversas utilidades de Oracle que puede utilizar
para cargar datos en tablas de base de datos.
• Herramientas de línea de comandos:
- Para administrar Enterprise Manager, utilice:
emctl start | status | set | stop
- Para parar e iniciar iSQL*Plus, utilice:
isqlplusctl start | stop
- Para administrar el listener, utilice:
lsnrctl help | start | status | stop

Base de Datos Oracle 10g: Taller de Administración I 2-5


Instalación: Requisitos del Sistema

• Requisitos de memoria:
– 1 GB para la instancia con Database Control
• Requisitos de espacio en disco:
– 1,5 GB de espacio de intercambio
– 400 MB de espacio en disco en el directorio /tmp
– Entre 1,5 GB y 3,5 GB para el software de Oracle

Oracle Internal & Oracle Academy Use Only


– 1,2 GB para la base de datos preconfigurada (opcional)
– 2,4 GB para el área de
recuperación de flash
(opcional)
• Sistema operativo: Consulte
la documentación.

Copyright © 2005, Oracle. Todos los derechos reservados.

Instalación: Requisitos del Sistema


• La instalación estándar puede llevarse a cabo en una computadora con 1 GB de RAM y
1,5 GB de espacio de intercambio o mayor.
• En función del nivel de actividad de la máquina en la que realice la instalación del software
de la base de datos Oracle, la instalación estándar terminará en 20 minutos o menos.
• Éstos son algunos detalles de la instalación:
- La base de datos Oracle 10g sólo incluye una plantilla de base de datos inicial.
- Se eliminan los archivos duplicados.
- Hay un gran número de otros productos y demostraciones que se instalan desde CD
adicionales.
Los requisitos de hardware que aparecen en la diapositiva son requisitos mínimos en todas las
plataformas. Es posible que la instalación tenga requisitos adicionales (sobre todo en cuanto a
espacio en disco).
Nota: Un tipo de instalación Enterprise Edition que incluye una base de datos inicial estándar se
denomina “instalación estándar”.

Base de Datos Oracle 10g: Taller de Administración I 2-6


Comprobación de los Requisitos del Sistema

• Espacio temporal
adecuado
• Problemas de
64 bits frente
a 32 bits
• Comprobaciones del sistema operativo correcto

Oracle Internal & Oracle Academy Use Only


• Nivel de parche del sistema operativo
• Paquetes del sistema
• Parámetros del núcleo y del sistema
• Permisos del servidor X
• Intercambio suficiente
• Directorio ORACLE_HOME no vacío

Copyright © 2005, Oracle. Todos los derechos reservados.

Comprobación de los Requisitos del Sistema


La instalación de la base de datos Oracle 10g automatiza la mayoría de las comprobaciones de
requisitos:
• Se comprueba el espacio temporal adecuado. Se determinan cuáles son los requisitos mínimos
de espacio temporal para la instalación y configuración y esos requisitos se validan durante el
proceso de instalación.
• No se pueden llevar a cabo instalaciones de 64 bits en directorios raíz de Oracle que ya tengan
instalado software de 32 bits (y viceversa).
• En la plataforma Linux, RedHat-3.0, 4.0, Asianux 1.0, 2.0 y SUSE Linux E.S. 9.0 están
certificados.
• El proceso de instalación comprueba si se han instalado todos los parches necesarios del
sistema operativo.
• El proceso de instalación comprueba si se han definido correctamente todos los parámetros
necesarios del núcleo y del sistema operativo.
• El proceso de instalación verifica que se ha definido la variable de entorno DISPLAY y que el
usuario tiene los permisos suficientes para mostrar la variable DISPLAY especificada.
• El proceso de instalación verifica que el sistema tiene definido el espacio de intercambio
suficiente.
• El proceso de instalación verifica que el directorio raíz de Oracle en el que se va a realizar la
nueva instalación está vacío o que es una de las diversas versiones soportadas sobre las que se
puede instalar la base de datos Oracle 10g y que están registradas en el inventario de Oracle.

Base de Datos Oracle 10g: Taller de Administración I 2-7


Arquitectura Flexible Óptima (OFA)

OFA está diseñada para:


• Organizar grandes cantidades de software
• Facilitar tareas administrativas rutinarias
• Facilitar el cambio entre varias bases de datos
Oracle
• Gestionar y administrar de manera adecuada el

Oracle Internal & Oracle Academy Use Only


crecimiento de la base de datos
• Ayudar a eliminar la fragmentación del espacio libre

Copyright © 2005, Oracle. Todos los derechos reservados.

Arquitectura Flexible Óptima (OFA)


OFA es un método para configurar la base de datos Oracle y otras bases de datos. Esta
arquitectura aprovecha las capacidades del sistema operativo y de los subsistemas de disco para
crear una configuración fácil de administrar que permita una flexibilidad máxima para bases de
datos de alto rendimiento y en crecimiento. Los métodos aquí descritos son los fundamentos de
OFA.
OFA está diseñada para:
• Organizar grandes cantidades de software y datos complicados en el disco, con el fin de
evitar cuellos de botella y un rendimiento deficiente de los dispositivos
• Facilitar tareas administrativas rutinarias, como la realización de copias de seguridad del
software y de los datos, que a menudo son vulnerables a la corrupción de datos
• Facilitar el cambio entre varias bases de datos Oracle
• Gestionar y administrar adecuadamente el crecimiento de la base de datos
• Ayudar a eliminar la fragmentación del espacio libre en el diccionario de datos, aislar otra
fragmentación y minimizar la contención de recursos
Para obtener más información sobre los objetivos y la implementación de OFA, consulte Oracle
Installation Guide for UNIX Systems.

Base de Datos Oracle 10g: Taller de Administración I 2-8


Uso de la Arquitectura Flexible Óptima

• Nomenclatura de puntos de montaje:


– /u01
– /disk01
• Nomenclatura de directorios:
– /u01/app/oracle

Oracle Internal & Oracle Academy Use Only


– /u01/app/applmgr
• Nomenclatura de archivos:
– Archivos de control: controln.ctl
– Archivos redo log: redon.log
– Archivos de datos: tn.dbf

Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de la Arquitectura Flexible Óptima


En el núcleo de OFA hay un esquema de nomenclatura que ofrece un estándar para aplicarlo a los
puntos de montaje (que son con frecuencia los discos físicos), directorios y subdirectorios de
dichos puntos de montaje y, finalmente, a los propios archivos.
Sintaxis del punto de montaje: Asigne un nombre a todos los puntos de montaje utilizando la
sintaxis /pm, donde p es una constante de cadena y m es una clave única de longitud fija
(normalmente un número de dos dígitos) utilizada para diferenciar cada punto de montaje.
Algunos ejemplos de puntos de montaje son /u01 y /u02.
Sintaxis de directorios raíz: Asigne un nombre a todos los directorios raíz utilizando la sintaxis
/pm/h/u, donde pm es un nombre de punto de montaje, h un nombre de directorio estándar y u
es el nombre del propietario del directorio. Algunos ejemplos de directorios raíz compatibles con
OFA son los siguientes:
/u01/app/oracle
/u01/home/oracle
Sintaxis de directorios de software: Almacene cada versión del software de Oracle en un
directorio que coincida con el patrón: /pm/h/u/product/v. Aquí, product es un literal y v
es una variable para el número de versión. Esta sintaxis ayuda a activar la función OFA de varias
versiones del software de aplicaciones que se ejecutan simultáneamente. De modo que una
instalación compatible con OFA de la base de datos Oracle 10g versión 10.2.0 aparecería del
siguiente modo:
/u01/app/oracle/product/10.2.0

Base de Datos Oracle 10g: Taller de Administración I 2-9


Uso de la Arquitectura Flexible Óptima (continuación)
Sintaxis de la nomenclatura de subdirectorios: Para facilitar la organización de datos
administrativos, debe almacenar archivos de administración específicos de la base de datos en
subdirectorios que coincidan con el patrón: /h/admin/d/a/. Donde h es el directorio raíz
del propietario del software de Oracle, admin es un literal, d es el nombre de la base de datos y
a es un subdirectorio para cada uno de los archivos de administración de la base de datos.
A continuación se incluye una lista de estos subdirectorios de archivos de administración:
• adhoc: Archivos de comandos SQL ad-hoc para una base de datos determinada
• arch: Archivos redo log archivados
• adump: Archivos de auditoría (defina el parámetro de inicialización AUDIT_FILE_DEST
en el directorio adump; limpie este subdirectorio periódicamente.)
• Bdump: Archivos de rastreo de procesos en segundo plano
• Cdump: Archivos de volcado principales
• Create: Programas utilizados para crear la base de datos

Oracle Internal & Oracle Academy Use Only


• Exp: Archivos de exportación de la base de datos
• Logbook: Archivos que registran el estado y el historial de la base de datos
• Pfile: Archivos de parámetros de instancias
• udump: Archivos de rastreo de SQL del usuario
Sintaxis de la nomenclatura de archivos: La siguiente regla de nomenclatura para archivos de
base de datos garantiza que se puedan identificar fácilmente:
• Archivos de control: /pm/q/d/controln.ctl
• Archivos redo log: /pm/q/d/redon.log
• Archivos de datos: /pm/q/d/tn.dbf
Las variables utilizadas en estos nombres de archivo son:
• pm: Nombre de punto de montaje como se ha descrito anteriormente
• q: Cadena que distingue datos de Oracle del resto de los archivos (normalmente
denominados ORACLE u oradata)
• d: Valor del parámetro de inicialización, DB_NAME (nombre de la base de datos)
• t: Nombre de un tablespace de Oracle
• n: Cadena de dos dígitos
Nota: No almacene archivos que no sean de control, redo log o de datos asociados con la base de
datos d en la ruta /pm/q/d/.

Base de Datos Oracle 10g: Taller de Administración I 2-10


Definición de Variables de Entorno

• ORACLE_BASE: Base de la estructura de


directorios de Oracle para OFA
• ORACLE_HOME: Directorio que contiene el software
de Oracle
• ORACLE_SID: Nombre de la instancia inicial (ORCL
por defecto)

Oracle Internal & Oracle Academy Use Only


• NLS_LANG: Configuración del idioma, territorio y
juego de caracteres del cliente

Copyright © 2005, Oracle. Todos los derechos reservados.

Definición de Variables de Entorno


Hay muchas variables de entorno de Oracle y las que se mencionan son muy importantes para
una instalación correcta y para el uso de una base de datos Oracle. No es necesario configurar
ninguna de ellas, pero si las configura antes de la instalación puede evitar problemas en el futuro.
• ORACLE_BASE: Especifica la base de la estructura de directorios de Oracle para OFA.
Su uso es opcional, pero puede facilitar futuras instalaciones y actualizaciones. Se trata de
una ruta de acceso de directorio similar a la que aparece en este ejemplo:
/u01/app/oracle
• ORACLE_HOME: Especifica el directorio que contiene el software de Oracle. Se trata de
una ruta de acceso de directorio similar a la que aparece en este ejemplo:
$ORACLE_BASE/product/10.2.0/db_1
• ORACLE_SID: Nombre de la instancia inicial (por defecto, ORCL). Es una cadena de
números y letras que debe comenzar por una letra. Oracle Corporation sugiere que se
utilice un máximo de ocho caracteres para los identificadores del sistema.

Base de Datos Oracle 10g: Taller de Administración I 2-11


Definición de Variables de Entorno (continuación)
• NLS_LANG: Especifica los valores iniciales de soporte de idioma nacional (NLS) para una
sesión en formato idioma_territorio.juego de caracteres. Por ejemplo,
el valor:
AMERICAN_DENMARK.WE8MSWIN1252
De este modo se define la sesión para que utilice el idioma AMERICAN para los mensajes,
la secuencia de ordenación alfabética y los nombres de días y de meses de Oracle. El
territorio es DENMARK, que define el formato de hora y fecha y las convenciones
numéricas y monetarias. El juego de caracteres WE8MSWIN1252 indica a la Red de Oracle
que convierta la información de caracteres a este juego. Es una variable de entorno en
UNIX y un valor del registro en Windows. Puede consultar los valores reales de NLS de la
sesión actual mediante:
select * from nls_session_parameters;

Oracle Internal & Oracle Academy Use Only


Para obtener más información sobre los idiomas, los territorios, los juegos de caracteres y
el soporte de idiomas válidos, consulte Globalization Support Guide.
Nota: Una instalación de Windows toma por defecto los valores de NLS_LANG del
registro cuando la parte idioma se origina a partir del idioma del teclado. Como
consecuencia, la instalación por defecto de Windows con teclados no americanos obtendrá
el valor no americano en la configuración de NLS_LANG. A su vez, la variable de sesión
NLS_SORT será por defecto distinta de “binary”, lo que dificulta que el optimizador utilice
índices basados en caracteres para las sesiones de este nodo.

Base de Datos Oracle 10g: Taller de Administración I 2-12


Oracle Universal Installer (OUI)

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Oracle Universal Installer (OUI)


Oracle Universal Installer (OUI) es una aplicación Java que realiza instalaciones basadas en
componentes y permite distintos niveles de instalaciones basadas en Web, en series y en grupos
integrados, así como de lógica compleja en un único paquete. El sistema de instalación se puede
transportar fácilmente por todas las plataformas activadas para Java y los problemas específicos
de las plataformas se pueden encapsular a partir del proceso de instalación global. OUI
proporciona las siguientes capacidades para tratar la gestión y distribución del software:
• Resolución de dependencia automática y manejo de lógica compleja
• Instalación desde Web
• Instalaciones de componentes y de series
• Desinstalación implícita
• Soporte para varios directorios raíz de Oracle
• Soporte de globalización o NLS
• Soporte para instalaciones distribuidas
• Instalaciones “silenciosas” desatendidas que utilizan archivos de respuesta
En Windows: Inserte el medio físico de instalación de la base de datos Oracle, acceda al
directorio client y haga clic dos veces en setup.exe para iniciar OUI. Después de la
página Welcome, seleccione el tipo de instalación: Instant Client, Administrator, Runtime o
Custom.

Base de Datos Oracle 10g: Taller de Administración I 2-13


Instalación del Software de Oracle

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Instalación del Software de Oracle


Puede utilizar OUI para instalar el software de Oracle de la siguiente forma:
1. Conéctese a la computadora como miembro del grupo administrativo con autorización para
instalar el software de Oracle y para crear y gestionar la base de datos.
2. Inserte el CD de distribución de la base de datos en la unidad de CD, o acceda a la
ubicación de almacenamiento en zona intermedia de la base de datos Oracle.
3. Inicie OUI. En una ventana XTerm en Linux, introduzca ./runInstaller. Aparecerá
la página Oracle Universal Installer.
4. Navegue por las páginas de OUI y especifique los valores previos de instalación en función
de su plan de instalación.
5. Con la información inicial, OUI ejecuta las comprobaciones de requisitos.

Base de Datos Oracle 10g: Taller de Administración I 2-14


Opciones de Configuración de Base de Datos

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Opciones de Configuración de Base de Datos


El proceso de instalación continúa:
6. Navegue por las páginas de OUI y especifique las opciones de configuración de la base de
datos. OUI muestra un resumen de las opciones de instalación.
7. Haga clic en Install para iniciar la instalación del software de Oracle.
Si selecciona crear una base de datos inicial como parte de la instalación, OUI llamará a los
siguientes asistentes de configuración:
• Asistente de Configuración de Red de Oracle: Este asistente configura los componentes de
red básicos durante la instalación, entre los que se incluyen:
- Nombres de listener y direcciones de protocolo
- Métodos de nomenclatura que el cliente utilizará para resolver los identificadores de
conexión a los descriptores de conexión
- Nombres del servicio de red en un archivo tnsnames.ora
- Uso del servidor de directorios
• Asistente de Configuración de Bases de Datos (DBCA) Oracle: Crea la base de datos
inicial seleccionada. Cuando termine este asistente de configuración, puede desbloquear
cuentas y cambiar contraseñas.
• Asistente de Configuración de iSQL*Plus: Este asistente configura la instancia de Oracle
Application Server Containers for J2EE (OC4J), la cual utiliza iSQL*Plus y otras
herramientas para conectarse a la base de datos Oracle.

Base de Datos Oracle 10g: Taller de Administración I 2-15


Ejecución de Archivos de Comandos de
Configuración

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Ejecución de Archivos de Comandos de Configuración


El proceso de instalación continúa:
8. Cuando se le indique durante una instalación de Linux o UNIX, ejecute archivos de
comandos de configuración adicionales como usuario root. En una ventana XTerm,
introduzca:
$ su
# password: oracle <contraseña raíz, no aparece en la ventana >
# cd /u01/app/oracle/oraInventory
# ./orainstRoot.sh
# cd /u01/app/oracle/product/10.2.0/db_1
# ./root.sh
9. Acepte el valor por defecto del directorio bin local durante una instalación de Linux o
UNIX. Cuando terminen los archivos de comandos, salga de todas las cuentas y ventanas
relacionadas para que termine la instalación.

Base de Datos Oracle 10g: Taller de Administración I 2-16


Fin de la Instalación

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Fin de la Instalación
10. Cuando termine el proceso de instalación, anote las direcciones URL para uso futuro.

Base de Datos Oracle 10g: Taller de Administración I 2-17


Opciones Avanzadas de Instalación

• Opciones de almacenamiento de base de datos:


– Archivo del sistema
– Gestión Automática de Almacenamiento
– Dispositivos raw
• Opciones de gestión de base de datos:
– Enterprise Manager Grid Control

Oracle Internal & Oracle Academy Use Only


– Enterprise Manager Database Control
• Opciones de copia de seguridad y recuperación
de base de datos
• Opciones de notificación de correo electrónico
• Cluster Ready Services
• Clonación

Copyright © 2005, Oracle. Todos los derechos reservados.

Opciones Avanzadas de Instalación


• Con OUI, se pueden crear configuraciones que utilicen la Gestión Automática de
Almacenamiento.
• Puede instalar y configurar el marco de Enterprise Manager (EM). Oracle Enterprise
Manager Database Control se instala en el mismo directorio raíz de Oracle que la base de
datos y se configura para ejecutarse en una instancia autónoma de OC4J. Debe realizar una
instalación independiente para obtener funciones de gestión centrales de EM.
• Si decide utilizar Oracle Enterprise Manager Database Control, puede configurar, de
manera opcional, el uso de la estrategia de copia de seguridad por defecto recomendada por
Oracle.
• Si decide utilizar Oracle Enterprise Manager Database Control durante la instalación,
puede configurar Enterprise Manager para que envíe alertas por correo electrónico a la
dirección de correo que especifique. Estas alertas pueden incluir problemas, como que el
espacio en disco esté llegando a un límite crítico o que una base de datos se haya cerrado
de manera inesperada.
• La instalación de la base de datos Oracle 10g soporta funciones de RAC, especialmente la
instalación de Cluster Ready Services (CRS).
• Los directorios raíz de Oracle se pueden clonar mediante la herramienta Enterprise
Configuration Management. Esta herramienta permite a los usuarios crear solicitudes de
clonación y, a continuación, planificarlas y procesarlas. Esta herramienta está disponible a
través de EM Grid Control.

Base de Datos Oracle 10g: Taller de Administración I 2-18


Opción de Instalación: Modo Silencioso

Para instalar y configurar productos Oracle con OUI en modo


silencioso, realice los siguientes pasos:
1. Cree el archivo oraInst.loc, si no existe ya.

Oracle Internal & Oracle Academy Use Only


2. Prepare un archivo de respuesta basado en las plantillas
de archivo que se distribuyen con el software de Oracle.
3. Registre un archivo de respuesta:
.runInstaller –record -destinationFile
<nombre_archivo>
4. Ejecute OUI en modo silencioso o suprimido.
5. Si es necesario, ejecute NetCA y DBCA en modo
silencioso.

Copyright © 2005, Oracle. Todos los derechos reservados.

Opción de Instalación: Modo Silencioso


Para instalar y configurar productos Oracle mediante OUI en modo silencioso o suprimido,
realice los siguientes pasos:
1. Cree el archivo oraInst.loc, si no existe ya. Lo más probable es que el archivo ya esté
en ORACLE_BASE/oraInventory, si ha instalado con anterioridad el software de
Oracle.
2. Prepare un archivo de respuesta: Se suministran plantillas de archivo para cada producto y
tipo de instalación, como por ejemplo enterprise.rsp, standard.rsp y
netca.rsp.
3. Puede utilizar OUI en el modo interactivo para registrar un archivo de respuesta que pueda
editar y, a continuación, usarlo para realizar las instalaciones en modo silencioso o
suprimido. Cree el archivo de respuesta en Linux y UNIX con el siguiente comando:
.runInstaller –record -destinationFile <nombre_archivo>
donde –destinationFile es la ubicación del archivo.
4. Ejecute OUI en modo silencioso o suprimido.
5. Si ha terminado una instalación de sólo software, ejecute el Asistente de Configuración de
Red (NetCA) y el Asistente de Configuración de Bases de Datos (DBCA) de Oracle en
modo silencioso o no interactivo, si resulta necesario.
Para obtener más información, consulte la Oracle Database Installation Guide específica de su
sistema operativo.

Base de Datos Oracle 10g: Taller de Administración I 2-19


Resumen

En esta lección, debe haber aprendido lo siguiente:


• Describir su rol como DBA y explicar las tareas y
herramientas
• Planificar su instalación, empezando por la
documentación adecuada

Oracle Internal & Oracle Academy Use Only


• Realizar tareas previas a la instalación, como la
comprobación de los requisitos del sistema
• Instalar el software mediante OUI

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 2-20


Visión General de la Práctica:
Instalación del Software de Oracle

En esta práctica se aborda la instalación del software


de Oracle mediante el uso de Oracle Universal
Installer.
Nota: La realización de esta práctica es crítica para
todas las sesiones prácticas posteriores.

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 2-21


Oracle Internal & Oracle Academy Use Only
Creación de una Base de Datos Oracle

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.
Objetivos

Al finalizar esta lección, debería estar capacitado para


lo siguiente:
• Crear una base de datos con el Asistente de
Configuración de Bases de Datos (DBCA)
• Crear una plantilla de diseño de bases de datos

Oracle Internal & Oracle Academy Use Only


con DBCA
• Generar archivos de comandos de creación de
bases de datos con DBCA

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 3-2


Planificación de la Base de Datos

Como DBA, debe planificar:


• La estructura de almacenamiento lógica de la base de
datos y su implementación física:
– ¿Cuántas unidades de disco tiene designadas para
este fin?
– ¿Cuántos archivos de datos va a necesitar? (Plan de
crecimiento)

Oracle Internal & Oracle Academy Use Only


– ¿Cuántos tablespaces utilizará?
– ¿Qué tipo de información se va a almacenar?
– ¿Existen requisitos de almacenamiento especiales de
tipo o tamaño?
• El diseño general de la base de datos
• Una estrategia de copia de seguridad para
la base de datos

Copyright © 2005, Oracle. Todos los derechos reservados.

Planificación de la Base de Datos


Es importante planificar el modo en que la estructura de almacenamiento lógica afectará al
rendimiento del sistema y a las diferentes operaciones de gestión de base de datos. Por ejemplo,
antes de crear los tablespaces de la base de datos, debe saber cuántos archivos de datos
compondrán cada tablespace, qué tipo de información se almacenará en ellos y en qué unidades
de disco se almacenarán físicamente los archivos de datos. Al planificar el almacenamiento
lógico general de la estructura de la base de datos, deben considerarse los efectos que tendrá el
uso de esta estructura cuando la base de datos se cree y ejecute realmente. Es posible que tenga
objetos de base de datos sin requisitos de almacenamiento especiales de tipo o tamaño.
En entornos distribuidos de base de datos, esta etapa de planificación es extremadamente
importante. La ubicación física de los datos a los que se accede con más frecuencia afecta
considerablemente al rendimiento de la aplicación.
Durante la etapa de planificación, desarrolle una estrategia de copia de seguridad para la base de
datos. Puede modificar la estructura de almacenamiento lógica o el diseño de la base de datos
para mejorar la eficacia de las copias de seguridad. Las estrategias de copia de seguridad se
describen en una lección posterior.
Éstos son los tipos de preguntas y consideraciones a los que se enfrentará como DBA y este
curso (en su totalidad) se ha diseñado para ayudarle a resolverlas.

Base de Datos Oracle 10g: Taller de Administración I 3-3


Bases de Datos: Ejemplos

• Almacén de Datos:
– Datos de marketing e investigación
– Pagos de impuestos estatales o regionales
– Licencias de profesionales (doctores, enfermeras, etc.)
• Procesamiento de Transacciones:

Oracle Internal & Oracle Academy Use Only


– Sistema de registro de compra para almacén
– Transacciones de cajero automático
• Uso General:
– Sistema de facturación al por menor, por ejemplo,
de una empresa de diseño de software o de una
guardería

Copyright © 2005, Oracle. Todos los derechos reservados.

Bases de Datos: Ejemplos


Cada tipo diferente de base de datos tiene sus propios requisitos de almacenamiento e instancia
específicos. Su software de base de datos Oracle incluye plantillas para la creación de estos tipos
de bases de datos. Las características de estos ejemplos son las siguientes:
• Almacén de Datos: Almacena datos durante largos períodos de tiempo y permite
recuperarlos en operaciones de lectura.
• Procesamiento de Transacciones: Incluye numerosas transacciones, aunque normalmente
son pequeñas.
• Uso General: Funciona con transacciones y las almacena durante un período de tiempo
medio.

Base de Datos Oracle 10g: Taller de Administración I 3-4


Asistente de Configuración de Bases de
Datos (DBCA)

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Asistente de Configuración de Bases de Datos (DBCA)


El Asistente de Configuración de Bases de Datos (DBCA) se puede utilizar para crear, cambiar
la configuración o suprimir una base de datos. También permite crear una base de datos a partir
de una lista de plantillas predefinidas o utilizar una base de datos como muestra para crear una
nueva base de datos o plantilla. Esta acción a veces se denomina “clonación de bases de datos”.
Para llamar a DBCA, realice los siguientes pasos:
1. Conéctese a la computadora como miembro del grupo administrativo con autorización para
instalar el software de Oracle.
2. Si es necesario, defina las variables de entorno.
3. Introduzca dbca para llamar a DBCA.
4. Haga clic en Next para continuar.
DBCA le ofrece la opción de ayudarle con diversas operaciones como, por ejemplo, la creación
de una base de datos.

Base de Datos Oracle 10g: Taller de Administración I 3-5


Uso de DBCA para Crear una Base de Datos

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de DBCA para Crear una Base de Datos


DBCA se puede utilizar para crear una base de datos de la siguiente forma:
1. Seleccione Create a Database en la página DBCA Operations para llamar a un asistente que
le permita configurar y crear una base de datos.
El asistente le pedirá que facilite la información de configuración que se describe en los
pasos siguientes. En la mayoría de las páginas, el asistente ofrecerá un valor por defecto
que podrá aceptar.
2. Seleccione el tipo de plantilla de base de datos que va a utilizar para la creación de la base
de datos. Hay plantillas para las bases de datos de almacén de datos, uso general y
procesamiento de transacciones que copian una base de datos preconfigurada, incluidos los
archivos de datos. Estos archivos de datos incluyen archivos de control, archivos redo log y
archivos de datos para los diversos tablespaces incluidos. Haga clic en Show Details para
ver la configuración de cada tipo de base de datos.
Para entornos más complejos, puede que desee seleccionar la opción Custom Database.

Base de Datos Oracle 10g: Taller de Administración I 3-6


Uso de DBCA para Crear una Base de Datos
3

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de DBCA para Crear una Base de Datos (continuación)


3. Identificación de la base de datos: Introduzca el nombre de la base de datos global (Global
Database Name) con el formato nombre_base_datos.nombre_dominio y el
identificador del sistema (SID). El SID toma el nombre de la base de datos como valor por
defecto e identifica de forma única a la instancia que ejecuta la base de datos.
4. Opciones de gestión: Utilice esta página para configurar la base de datos de forma que
pueda gestionarla con Oracle Enterprise Manager. Seleccione el valor por defecto:
Configure the Database with Enterprise Manager.

Base de Datos Oracle 10g: Taller de Administración I 3-7


Uso de DBCA para Crear una Base de Datos
5

Oracle Internal & Oracle Academy Use Only


7

Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de DBCA para Crear una Base de Datos (continuación)


5. Credenciales de la base de datos: Utilice este página para especificar las contraseñas de las
cuentas administrativas, como SYS y SYSTEM. En la clase, utilice oracle como
contraseña para todas las cuentas administrativas.
6. Opciones de almacenamiento: Especifique el tipo de mecanismo de almacenamiento (como
File System) que desee que utilice la base de datos.
7. Ubicaciones de archivos de la base de datos: Seleccione las opciones que necesite. Oracle
Managed Files (OMF) elimina la necesidad de gestionar directamente los archivos del
sistema operativo que forman una base de datos Oracle. Especifique operaciones en
función de los objetos de base de datos en lugar de los nombres de archivos. Para obtener
más información, consulte la lección titulada “Gestión de Estructuras de Almacenamiento
de Bases de Datos”.

Base de Datos Oracle 10g: Taller de Administración I 3-8


Uso de DBCA para Crear una Base de Datos

Oracle Internal & Oracle Academy Use Only


9

Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de DBCA para Crear una Base de Datos (continuación)


8. Configuración de recuperación: Si es necesario, especifique un área de recuperación de
flash (Specify Flash Recovery Area) y active el proceso de archivado (Enable Archiving).
9. Contenido de la base de datos: Estas páginas ofrecen opciones para seleccionar
componentes, como Sample Schemas, y para usar archivos de comandos personalizados.

Base de Datos Oracle 10g: Taller de Administración I 3-9


Uso de DBCA para Crear una Base de Datos

10

Oracle Internal & Oracle Academy Use Only


B

Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de DBCA para Crear una Base de Datos (continuación)


10. Parámetros de inicialización: Los separadores de esta página ofrecen acceso a páginas que
le permiten cambiar los valores de los parámetros de inicialización por defecto:
- Memory: Utilice esta página para definir los parámetros de inicialización que
controlan el uso de la memoria. Utilice la asignación de memoria (A) Typical o (B)
Custom.
- Sizing: Para especificar un tamaño de bloque, introduzca el tamaño en bytes o acepte
el valor por defecto.
- Character Sets: Utilice esta página para especificar los juegos de caracteres de la base
de datos.
Práctica recomendada: Oracle recomienda (siempre que sea posible) utilizar
Unicode como juego de caracteres de base de datos ya que ofrece una flexibilidad
óptima para soportar tecnologías Web así como numerosos idiomas hablados.
- Connection Mode: Seleccione Dedicated Server Mode o Shared Server Mode. Para
obtener más información, consulte la lección titulada “Configuración del Entorno de
Red de Oracle”.
Nota: Hay diversos parámetros de inicialización definidos para toda la existencia de una base de
datos, como los parámetros DB_BLOCK_SIZE y CHARACTER_SET.

Base de Datos Oracle 10g: Taller de Administración I 3-10


Uso de DBCA para Crear una Base de Datos
11

12

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de DBCA para Crear una Base de Datos (continuación)


11. Almacenamiento de base de datos: Si ha seleccionado una de las plantillas preconfiguradas
para una base de datos, no podrá agregar ni eliminar los archivos de control o de datos.
Nota: Es posible que desee guardar la definición de la base de datos como archivo HTML
para facilitar su consulta.
12. Opciones de creación: Aquí dispone de las opciones para crear la base de datos en este
momento, guardar la definición de la base de datos como plantilla y generar archivos de
comandos. Si selecciona todas las opciones, DBCA guarda primero la plantilla de base de
datos, genera a continuación los archivos de comandos en el directorio de destino y, por
último, crea la base de datos.

Base de Datos Oracle 10g: Taller de Administración I 3-11


Password Management
A

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Password Management
Cuando termine DBCA, anote la siguiente información para referencia futura:
• Ubicación de los archivos log de instalación (A)
• Nombre de la base de datos global (B)
• Identificador del sistema (SID) (B)
• Ubicación y nombre del archivo de parámetros de servidor (B)
• Dirección URL de Enterprise Manager (C)
Haga clic en Password Management para desbloquear las cuentas de la base de datos que piensa
utilizar. Proporcione una contraseña cuando desbloquee una cuenta.

Base de Datos Oracle 10g: Taller de Administración I 3-12


Creación de una Plantilla de Diseño de
Bases de Datos

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Creación de una Plantilla de Diseño de Bases de Datos


Una plantilla es una definición de base de datos predefinida que se utiliza como punto de inicio
para una nueva base de datos. Si no crea una plantilla como parte del proceso de creación de
base de datos, puede hacerlo en cualquier momento con DBCA. Dispone de tres métodos para
crear una plantilla:
• A partir de una plantilla existente
• A partir de una base de datos existente (sólo la estructura)
• A partir de una base de datos existente (estructura y datos)
DBCA le guía por los pasos necesarios para crear una plantilla de diseño de bases de datos.

Base de Datos Oracle 10g: Taller de Administración I 3-13


Uso de DBCA para Suprimir una Base de Datos
1

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de DBCA para Suprimir una Base de Datos


Para suprimir (o configurar) una base de datos en UNIX o Linux, debe definir ORACLE_SID en
el shell desde el que ejecutó DBCA. Para iniciar DBCA, introduzca dbca en una ventana de
terminal y haga clic en Next en la página Welcome. Para suprimir la base de datos, realice los
siguientes pasos:
1. En la página Operations, seleccione Delete a Database y haga clic en Next.
2. Seleccione la base de datos que desea suprimir (en clase, hist) y haga clic en Finish.
3. Haga clic en Yes para confirmar la supresión.

Base de Datos Oracle 10g: Taller de Administración I 3-14


Uso de DBCA para Suprimir una Base de Datos (continuación)
El borrado de una base de datos conlleva la eliminación de sus archivos de datos, archivos redo
log, archivos de control y archivos de parámetros de inicialización. La sentencia DROP
DATABASE suprime todos los archivos de control y el resto de los archivos de base de datos
enumerados en el archivo de control. Para utilizar la sentencia DROP DATABASE correctamente,
se deben cumplir todas las condiciones siguientes:
• La base de datos debe estar montada y cerrada.
• La base de datos debe estar montada en modo exclusivo, no en modo compartido.
• La base de datos debe estar montada como RESTRICTED.
Este sería un ejemplo de esta sentencia:
DROP DATABASE ;
La sentencia DROP DATABASE no tiene ningún efecto sobre los archivos archive log ni sobre las
copias normales o de seguridad de la base de datos. Para suprimir estos archivos se recomienda

Oracle Internal & Oracle Academy Use Only


utilizar Recovery Manager (RMAN). Si la base de datos está en discos raw, no se suprimirán los
archivos especiales de disco raw.

Base de Datos Oracle 10g: Taller de Administración I 3-15


Resumen

En esta lección debe haber aprendido a utilizar DBCA


para:
• Crear una base de datos
• Crear una plantilla de diseño de bases de datos
• Generar archivos de comandos de creación de

Oracle Internal & Oracle Academy Use Only


base de datos

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 3-16


Visión General de la Práctica:
Uso de DBCA

En esta práctica se abordan los siguientes temas:


• Creación de la base de datos ORCL mediante
DBCA
• Desbloqueo del esquema HR
Nota: La creación de la base de datos y el desbloqueo

Oracle Internal & Oracle Academy Use Only


del esquema HR son críticos para todas las sesiones
prácticas posteriores.
Opcional:
• Creación de la plantilla de diseño de la base de
datos ORCL mediante DBCA
• Creación de archivos de comandos de creación de
bases de datos con DBCA

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 3-17


Oracle Internal & Oracle Academy Use Only
Gestión de la Instancia de Oracle

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.
Objetivos

Al finalizar esta lección, debería estar capacitado para lo


siguiente:
• Iniciar y parar la base de datos Oracle y sus
componentes
• Utilizar Enterprise Manager (EM)
• Acceder a una base de datos con SQL*Plus e
iSQL*Plus

Oracle Internal & Oracle Academy Use Only


• Modificar los parámetros de inicialización de la base
de datos
• Describir las etapas de inicio de la base de datos
• Describir las opciones de cierre de la base de datos
• Visualizar el log de alertas
• Acceder a vistas de rendimiento dinámico

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 4-2


Marco de Gestión > Componentes
SQL*Plus
Parámetros Inic.
Inicio de BD
Cierre de BD
Log de Alertas
Los tres componentes del marco de gestión Vistas Rend.
de la base de datos Oracle 10g son:
• Instancia de la base de datos
• Listener
• Interfaz de gestión
– Database Control

Oracle Internal & Oracle Academy Use Only


– Agente de gestión (al utilizar Grid Control)

Agente o
de gestión bien
Database Listener
Control
Interfaz de gestión

Copyright © 2005, Oracle. Todos los derechos reservados.

Marco de Gestión
Hay tres componentes principales del marco de gestión de la base de datos Oracle:
• La instancia de base de datos que se está gestionando
• Un listener que permite las conexiones a la base de datos
• La interfaz de gestión. Puede ser un agente de gestión que se ejecute en el servidor de base
de datos (que se conecte a Oracle Enterprise Manager Grid Control) o la versión autónoma
de Oracle Enterprise Manager Database Control. También se denomina Consola de Base de
Datos.
Cada uno de estos componentes se debe iniciar explícitamente para poder utilizar los servicios
del componente y se debe cerrar limpiamente al cerrar el servidor que contiene la base de datos
Oracle.
El primer componente que se va a iniciar es la interfaz de gestión. Una vez que esté activada, la
interfaz de gestión se puede utilizar para iniciar los demás componentes.

Base de Datos Oracle 10g: Taller de Administración I 4-3


Inicio y Parada de Database Control

$ emctl start dbconsole


TZ set to US/Pacific
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 2005, 2003 Oracle Corporation. All rights reserved.
http://edrsr9p1.us.oracle.com:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control
............. started.
----------------Logs are generated in directory
/u01/app/oracle/product/10.2.0/db_1/edrsr9p1.us.oracle.com_orcl/sy
sman/log

Oracle Internal & Oracle Academy Use Only


$ emctl stop dbconsole
TZ set to US/Pacific
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 2005, 2003 Oracle Corporation. All rights reserved.
http://edrsr9p1.us.oracle.com:1158/em/console/aboutApplication
Stopping Oracle Enterprise Manager 10g Database Control ...
... Stopped.

Copyright © 2005, Oracle. Todos los derechos reservados.

Inicio y Parada de Database Control


Oracle proporciona una consola de gestión autónoma denominada Database Control para bases
de datos que no están conectadas al marco de Grid Control. Cada una de las bases de datos que
se gestiona con Database Control tiene una instalación independiente de Database Control, y
desde un Database Control cualquiera sólo se puede gestionar una base de datos. Antes de
utilizar Database Control, asegúrese de que se ha iniciado el proceso dbconsole.
Para iniciar el proceso dbconsole, utilice el siguiente comando:
emctl start dbconsole
Para parar el proceso dbconsole, utilice el siguiente comando:
emctl stop dbconsole
Para visualizar el estado del proceso dbconsole, utilice el siguiente comando:
emctl status dbconsole
Nota: Puede que necesite acceder al directorio $ORACLE_HOME/bin si este directorio no está
en la ruta de acceso al sistema operativo.
Database Control utiliza un proceso de agente del lado del servidor. Este proceso de agente se
inicia y se para automáticamente cuando se inicia o se para el proceso dbconsole.

Base de Datos Oracle 10g: Taller de Administración I 4-4


Oracle Enterprise Manager

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Oracle Enterprise Manager


Al instalar una base de datos Oracle, Oracle Universal Installer también instala Oracle Enterprise
Manager (Enterprise Manager). Database Control basado en Web se utiliza como herramienta
principal para gestionar la base de datos Oracle. Puede acceder a la ayuda en pantalla desde
cualquiera de las páginas para la tarea actual. Puede acceder a enlaces en la mayoría de las
situaciones, siempre que haya información más específica sobre el contenido de una página.
Aunque en ocasiones es posible que desee escribir y ejecutar comandos creados personalmente,
Enterprise Manager proporciona una interfaz gráfica para realizar casi cualquier tarea que tenga
que realizar como administrador de base de datos (DBA). La visualización de resúmenes de
alertas y gráficos de rendimiento, la creación y modificación de objetos y la realización de
copias de seguridad y recuperación son algunas de las operaciones que puede realizar con
Enterprise Manager.

Base de Datos Oracle 10g: Taller de Administración I 4-5


Acceso a Oracle Enterprise Manager

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Acceso a Oracle Enterprise Manager


Abra el explorador Web y escriba la siguiente dirección URL:
http://nombre_host:número_puerto/em
Si la base de datos está:
• Activa: Enterprise Manager muestra la página de conexión a Database Control. Conéctese
a la base de datos con un nombre de usuario que tenga autorización para acceder a
Database Control. En principio será SYS, SYSMAN o SYSTEM. Utilice la contraseña que ha
especificado para la cuenta durante la instalación de la base de datos. En la opción Connect
As, seleccione SYSDBA o SYSOPER para conectarse a la base de datos con privilegios
especiales de administración de base de datos.
• Caída: Enterprise Manager muestra la página Startup/Shutdown y Perform Recovery.
Si éste es el caso, haga clic en el botón Startup/Shutdown. A continuación, se le pide que
introduzca los nombres de usuario y contraseñas de conexión del host y de la base de datos
destino.
Nota: Si tiene problemas para iniciar Enterprise Manager, asegúrese de que se ha iniciado un
listener.

Base de Datos Oracle 10g: Taller de Administración I 4-6


Página Inicial de la Base de Datos

Páginas de propiedades

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Página Inicial de la Base de Datos


En la página inicial de la base de datos se muestra el estado actual de la base de datos al
presentar una serie de métricas que ilustran el estado general de la base de datos. Con las páginas
de propiedades, que también se conocen como separadores, puede acceder a las páginas
Performance, Administration y Maintenance para gestionar la base de datos.
En la página inicial de la base de datos podrá ver los siguientes datos de rendimiento y estado
relativos a la instancia de la base de datos:
• Nombre de la instancia, versión de la base de datos, ubicación del directorio raíz de Oracle,
opciones de recuperación del medio físico y otros datos relevantes acerca de la instancia.
• Disponibilidad de la instancia actual.
• Alertas pendientes.
• Información sobre el rendimiento de la sesión y de SQL.
• Métricas de uso de espacio clave.
• Enlaces de despliegue (por ejemplo, LISTENER_<nombre_host>) para proporcionar
niveles superiores de detalle.

Base de Datos Oracle 10g: Taller de Administración I 4-7


Uso de SQL*Plus e iSQL*Plus
Componentes
para Acceder a las > SQL*Plus
Parámetros Inic.
Bases de Datos Inicio de BD
Cierre de BD
Log de Alertas
SQL*Plus e iSQL*Plus proporcionan interfaces Vistas Rend.
adicionales a la base de datos para:
• Realizar operaciones de gestión de la base de
datos
• Ejecutar comandos SQL para consultar, insertar,

Oracle Internal & Oracle Academy Use Only


actualizar y suprimir datos en la base de datos

Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de SQL*Plus e iSQL*Plus para Acceder a las Bases de Datos


Además de Enterprise Manager, puede utilizar otras herramientas de Oracle, como SQL*Plus e
iSQL*Plus, para emitir sentencias SQL. Estas herramientas le permiten realizar muchas de las
operaciones de gestión de la base de datos así como seleccionar, insertar, actualizar o suprimir
datos en la base de datos.

Base de Datos Oracle 10g: Taller de Administración I 4-8


Uso de iSQL*Plus

Oracle Internal & Oracle Academy Use Only


2

Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de iSQL*Plus
iSQL*Plus es una interfaz basada en explorador para una base de datos Oracle. Es un
componente del producto SQL*Plus. iSQL*Plus dispone de un proceso del listener del servidor
que se debe iniciar para poder conectarse a un explorador. Para iniciar este proceso de servidor,
utilice:
isqlplusctl start
Una vez iniciado el proceso de servidor, especifique la siguiente URL en un explorador para
conectarse a él:
http://nombre_host:puerto/isqlplus
El número de puerto utilizado por iSQL*Plus suele ser 5560 a menos que Oracle Universal
Installer (OUI) detecte algo que ya esté utilizando dicho puerto. Busque en
$ORACLE_HOME/install/portlist.ini el puerto que utiliza iSQL*Plus.

Base de Datos Oracle 10g: Taller de Administración I 4-9


Configuración de iSQL*Plus
para el Acceso de SYSDBA y SYSOPER

Para que un usuario pueda conectarse a iSQL*Plus como


SYSDBA o SYSOPER debe configurar al usuario en el gestor
de usuarios de OC4J realizando los siguientes pasos:
1. Crear un usuario
2. Otorgar el rol webDba al usuario

Oracle Internal & Oracle Academy Use Only


$ cd $ORACLE_HOME/oc4j/j2ee/isqlplus/\
> application-deployments/isqlplus
$JAVA_HOME/bin/java \
> -Djava.security.properties=\
> $ORACLE_HOME/oc4j/j2ee/home/config/jazn.security.props \
> -jar $ORACLE_HOME/oc4j/j2ee/home/jazn.jar \
> -user "iSQL*Plus DBA/admin" -password welcome -shell
JAZN> adduser "iSQL*Plus DBA" username password
JAZN> grantrole webDba "iSQL*Plus DBA" username

Copyright © 2005, Oracle. Todos los derechos reservados.

Configuración de iSQL*Plus para el Acceso de SYSDBA y SYSOPER


Cuando aparezca la página iSQL*Plus Connection Role, observe que los roles SYSOPER y
SYSDBA necesitan una configuración y una autenticación especiales por motivos de seguridad.
Para ello, debe configurar un usuario en el gestor de usuarios de Oracle Application Server
Containers for J2EE (OC4J) y otorgar al usuario acceso al rol webDba. Para ello, realice los
siguientes pasos. Tenga en cuenta que la variable de entorno JAVA_HOME OS se debe definir
en $ORACLE_HOME/jdk.
1. Cambie al directorio correcto.
cd $ORACLE_HOME/oc4j/j2ee/isqlplus/\
application-deployments/isqlplus
2. Ejecute el shell de JAZN:
$JAVA_HOME/bin/java \
-Djava.security.properties=\
$ORACLE_HOME\
/oc4j/j2ee/home/config/jazn.security.props \
-jar $ORACLE_HOME/oc4j/j2ee/home/jazn.jar \
-user "iSQL*Plus DBA/admin" \
-password welcome -shell

Base de Datos Oracle 10g: Taller de Administración I 4-10


Configuración de iSQL*Plus para el Acceso de SYSDBA y SYSOPER (continuación)
3. Cree un usuario y seleccione un nombre de usuario y contraseña:
JAZN> adduser "iSQL*Plus DBA" username password
4. Otorgue el rol webDba al usuario:
JAZN> grantrole webDba "iSQL*Plus DBA" username
5. Salga del shell de JAZN:
JAZN> exit

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g: Taller de Administración I 4-11


Uso de SQL*Plus

SQL*Plus:
• Es una herramienta de línea de comandos
• Se utiliza de forma interactiva o en modo de lotes
$ sqlplus hr/hr

SQL*Plus: Release 10.2.0.1.0 - Production on Mon May 25 12:37:21 2005


Copyright (c) 1982, 2005, Oracle. All rights reserved.

Oracle Internal & Oracle Academy Use Only


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

SQL> SELECT last_name FROM employees;

LAST_NAME
-------------------------
Abel
Ande
Atkinson

Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de SQL*Plus
Puede utilizar la interfaz de línea de comandos para que SQL*Plus escriba comandos SQL*Plus,
SQL y PL/SQL para lo siguiente:
• Introducir, editar, ejecutar, almacenar, recuperar y guardar comandos SQL y bloques
PL/SQL
• Formatear, calcular, almacenar e imprimir resultados de consultas
• Enumerar definiciones de columna para cualquier tabla
• Enviar mensajes a un usuario final y aceptar sus respuestas
• Realizar la administración de la base de datos
Para iniciar SQL*Plus, realice los siguientes pasos:
1. Abra una ventana de terminal.
2. En el prompt de la línea de comandos, introduzca el comando SQL*Plus con el formato:
$ sqlplus /nolog
3. Introduzca connect seguido del usuario que desea utilizar para conectarse.
4. Cuando se le indique, introduzca la contraseña del usuario.
SQL*Plus se inicia y se conecta a la base de datos por defecto.

Base de Datos Oracle 10g: Taller de Administración I 4-12


Llamada a SQL*Plus desde un Archivo de
Comandos del Shell
$ ./batch_sqlplus.sh

SQL*Plus: Release 10.2.0.1.0 - Production on Mon May 25 12:47:44 2005


Copyright (c) 1982, 2005, Oracle. All rights reserved.
Salida
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
# Name of this file: batch_sqlplus.sh
SQL> # Count employees and give raise.

Oracle Internal & Oracle Academy Use Only


COUNT(*) sqlplus hr/hr <<EOF
---------- select count(*) from employees;
107 update employees set salary =
SQL> salary*1.10;
107 rows updated. commit;
SQL> quit
Commit complete. EOF
SQL> Disconnected from Oracle Database
exit 10g Enterprise Edition Release
10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
[oracle@EDRSR9P1 oracle]$

Copyright © 2005, Oracle. Todos los derechos reservados.

Llamada a SQL*Plus desde un Archivo de Comandos del Shell


Para llamar a SQL*Plus desde un archivo de comandos del shell o un archivo BAT, llame a
sqlplus y utilice la sintaxis de archivos de comandos del sistema operativo para transferir
parámetros.
En este ejemplo, se ejecutan las sentencias SELECT, UPATE y COMMIT, antes de que SQL*Plus
devuelva el control al sistema operativo.

Base de Datos Oracle 10g: Taller de Administración I 4-13


Llamada a un Archivo de Comandos SQL
desde SQL*Plus
script.sql select * from departments where location_id = 1400;
quit

Salida
$ sqlplus hr/hr @script.sql

SQL*Plus: Release 10.2.0.1.0 - Production on Mon May 25 12:57:02 2005


Copyright (c) 1982, 2005, Oracle. All rights reserved.

Oracle Internal & Oracle Academy Use Only


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

DEPARTMENT_ID DEPARTMENT_NAME MANAGER_ID LOCATION_ID


------------- ------------------------------ ---------- -----------
60 IT 103 1400

Disconnected from Oracle Database 10g Enterprise Edition Release


10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
$

Copyright © 2005, Oracle. Todos los derechos reservados.

Llamada a un Archivo de Comandos SQL desde SQL*Plus


Puede llamar a un archivo de comandos SQL existente desde SQL*Plus. Puede hacerlo en la
línea de comandos cuando llame por primera vez a SQL*Plus, como se muestra en la diapositiva.
También se puede hacer desde una sesión de SQL*Plus, sólo tiene que utilizar el operador “@”.
Por ejemplo, aquí se ejecuta el archivo de comandos desde una sesión ya establecida de
SQL*Plus:
SQL> @script.sql

Base de Datos Oracle 10g: Taller de Administración I 4-14


Componentes
SQL*Plus
Archivos de Parámetros > Parámetros Inic.
Inicio de BD
de Inicialización Cierre de BD
Log de Alertas
Vistas Rend.

Oracle Internal & Oracle Academy Use Only


spfileorcl.ora

Copyright © 2005, Oracle. Todos los derechos reservados.

Archivos de Parámetros de Inicialización


Al iniciar la instancia, se lee un archivo de parámetros de inicialización. Hay dos tipos de
archivos de parámetros:
• Archivo de parámetros del servidor: Es el tipo preferido de archivo de parámetros de
inicialización. Es un archivo binario en el que el servidor de la base de datos puede escribir
y leer y nunca se debe editar manualmente. Reside en el servidor en el que se está
ejecutando la base de datos Oracle y es persistente tras el cierre e inicio. A menudo se le
denomina archivo de parámetros del servidor (SPFILE). El nombre por defecto de este
archivo, que se busca automáticamente al inicio, es spfile<SID>.ora.
• Archivo de parámetros de inicialización de texto: Este tipo de archivo de parámetros de
inicialización lo puede leer el servidor de la base de datos, pero no puede escribir en él. Los
valores de los parámetros de inicialización se deben definir y cambiar de manera manual
mediante el uso de un editor de texto para que, de esa forma, sean persistentes tras el cierre
e inicio. El nombre por defecto de este archivo, que se busca automáticamente al inicio si
no se encuentra SPFILE, es init<SID>.ora.
Se recomienda crear un SPFILE como medio dinámico de mantener los parámetros de
inicialización. El uso de un SPFILE permite almacenar y gestionar los parámetros de
inicialización de forma persistente en un archivo de disco del lado del servidor.

Base de Datos Oracle 10g: Taller de Administración I 4-15


Simplified Initialization Parameters

Básicos Avanzados

Oracle Internal & Oracle Academy Use Only


CONTROL_FILES DB_CACHE_SIZE
DB_BLOCK_SIZE DB_FILE_MULTIBLOCK
PROCESSES _READ_COUNT
UNDO_MANAGEMENT SHARED_POOL_SIZE
… …

Copyright © 2005, Oracle. Todos los derechos reservados.

Parámetros de Inicialización Simplificados


Los parámetros de inicialización se dividen en dos grupos: básicos y avanzados.
En la mayoría de los casos es necesario configurar y ajustar sólo los 32 parámetros básicos para
obtener un rendimiento razonable en la base de datos. En muy pocas ocasiones será necesario
modificar los parámetros avanzados para obtener un rendimiento óptimo.
Los parámetros básicos son los que se definen para mantener una buena ejecución de la base de
datos. El resto de los parámetros se consideran avanzados.
Los ejemplos de parámetros básicos incluyen nombres de directorio o “destinos” de tipos de
archivos específicos: AUDIT_FILE_DEST, BACKGROUND_DUMP_DEST,
CORE_DUMP_DEST, DB_CREATE_FILE_DEST, DB_CREATE_ONLINE_LOG_DEST_n,
DB_RECOVERY_FILE_DEST y USER_DUMP_DEST.
Parámetros de Inicialización: Ejemplos
El parámetro CONTROL_FILES especifica uno o más nombres de archivo de control. Oracle
recomienda multiplexar y duplicar los archivos de control. El rango de valores de este parámetro
oscila entre 1 y 8 nombres de archivo (con nombres de ruta de acceso). El rango por defecto
depende del sistema operativo.

Base de Datos Oracle 10g: Taller de Administración I 4-16


Parámetros de Inicialización Simplificados (continuación)
Parámetros de Inicialización: Ejemplos (continuación)
El parámetro DB_BLOCK_SIZE especifica el tamaño (en bytes) de un bloque de base de datos
Oracle. Este valor se define durante la creación de la base de datos y no se puede cambiar
posteriormente. Rango de valores: 1024 – 65536 (depende del sistema operativo). Valor por
defecto: 8 K (depende del sistema operativo).
El parámetro DB_CACHE_SIZE especifica el tamaño de la caché de buffer del bloque estándar.
Rango de valores: Al menos 16 MB. Valor por defecto: 48 MB
El parámetro DB_FILE_MULTIBLOCK_READ_COUNT especifica el número máximo de
bloques leídos durante una operación de entrada/salida (E/S) que implica una exploración
secuencial completa. Rango de valores: Depende del sistema operativo. Valor por defecto: 8.
El parámetro DB_FILES especifica el número máximo de archivos de base de datos que se
puede abrir para esta base de datos. Rango de valores: MAXDATAFILES (depende del sistema

Oracle Internal & Oracle Academy Use Only


operativo). Valor por defecto: Depende del sistema operativo (200 en Solaris).
El parámetro PGA_AGGREGATE_TARGET especifica la cantidad de memoria de Área Global de
Programa (PGA) asignada a todos los procesos del servidor conectados a la instancia. Defina
este parámetro en un valor positivo antes de activar la definición automática de las áreas de
trabajo. Esta memoria no reside en el Área Global del Sistema (SGA). La base de datos utiliza
este parámetro como cantidad de destino de la memoria PGA que se va a utilizar. Al definir este
parámetro, reste la SGA de la memoria total del sistema disponible para la instancia de Oracle.
La memoria restante se puede asignar a PGA_AGGREGATE_MEMORY. Rango de valores:
Enteros más la letra K, M o G para identificar este límite en kilobytes, megabytes o gigabytes.
El valor mínimo es 10M y el máximo 400G. Valor por defecto: “Not Specified”, que significa
que el ajuste automático de las áreas de trabajo se ha desactivado completamente.
El parámetro PROCESSES especifica el número máximo de procesos de usuario del sistema
operativo que puede conectarse al mismo tiempo a un servidor de Oracle. Este valor se debe
permitir para todos los procesos en segundo plano. Rango de valores: de 6 hasta un valor
dependiente del sistema operativo. Valor por defecto: Depende del parámetro
PARALLEL_MAX_SERVERS.
El parámetro SHARED_POOL_SIZE especifica el tamaño del pool compartido en bytes.
El pool compartido contiene objetos como cursores compartidos, procedimientos almacenados,
estructuras de control y buffers de mensajes de ejecución en paralelo. Los valores grandes
pueden mejorar el rendimiento en sistemas de varios usuarios. Rango de valores: 300 KB
(depende del sistema operativo). Valor por defecto: Si es de 64 bits, 64 MB; de lo contrario,
16 MB.
El parámetro UNDO_MANAGEMENT especifica qué modo debe utilizar el sistema para la gestión
del espacio de deshacer. Cuando se define en AUTO, la instancia se inicia en el modo Deshacer
Gestionado por el Sistema (SMU). En caso contrario, se inicia en el modo Deshacer de Rollback
(RBU). En el modo RBU, el espacio de deshacer se asigna externamente como segmentos de
rollback. En el modo SMU, el espacio de deshacer se asigna externamente como tablespaces de
deshacer. Rango de valores: AUTO o MANUAL. Valor por defecto: Si se omite el parámetro
UNDO_MANAGEMENT cuando se inicia la primera instancia, se utiliza el valor por defecto
MANUAL y la instancia se inicia en modo RBU. Si no es la primera instancia, la instancia se
inicia en el mismo modo de deshacer que las otras instancias existentes.

Base de Datos Oracle 10g: Taller de Administración I 4-17


Visualización y Modificación
de Parámetros de Inicialización

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Visualización y Modificación de Parámetros de Inicialización


Puede utilizar Enterprise Manager para visualizar y modificar parámetros de inicialización si
hace clic en All Initialization Parameters en la región Database Configuration de la página con
separadores Database Administration.

Base de Datos Oracle 10g: Taller de Administración I 4-18


Componentes
SQL*Plus
Inicio y Cierre de la Parámetros Inic.
> Inicio de BD
Base de Datos Cierre de BD
Log de Alertas
Vistas Rend.

Oracle Internal & Oracle Academy Use Only


o bien

Copyright © 2005, Oracle. Todos los derechos reservados.

Inicio y Cierre de la Base de Datos


Al hacer clic en la opción de inicio o cierre, se le piden las credenciales que se utilizan para
conectar tanto al host (la computadora en la que reside la base de datos) como a la propia base de
datos. Indique las credenciales.
A continuación, puede hacer clic en Advanced Options para cambiar las opciones de inicio o el
modo de cierre si es necesario. Asimismo, puede hacer clic en Show SQL para ver las sentencias
SQL que se utilizarán para el inicio o el cierre.

Base de Datos Oracle 10g: Taller de Administración I 4-19


Inicio de una Instancia
de Base de Datos Oracle

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Inicio de una Instancia de Base de Datos Oracle


Si la base de datos no se ha iniciado al acceder a la página Enterprise Manager Database Control,
haga clic en Startup para realizar el inicio. Indique las credenciales del host y, de manera
opcional, seleccione el modo de inicio.

Base de Datos Oracle 10g: Taller de Administración I 4-20


Inicio de una Instancia de Base de Datos Oracle:
NOMOUNT
OPEN
STARTUP

MOUNT

Oracle Internal & Oracle Academy Use Only


NOMOUNT

Se inicia
la instancia
SHUTDOWN

Copyright © 2005, Oracle. Todos los derechos reservados.

Inicio de una Instancia de Base de Datos Oracle: NOMOUNT


Al iniciar la instancia de la base de datos, se selecciona el estado en el que se inicia. En los
siguientes supuestos se describen las distintas etapas de inicio de una instancia.
Normalmente, una instancia sólo se inicia en modo NOMOUNT durante la creación de la base de
datos, durante la nueva creación de archivos de control o en algunos supuestos de copia de
seguridad y recuperación.
El inicio de una instancia incluye las siguientes tareas:
• Búsqueda en <oracle_home>/database de un archivo con un nombre específico en
este orden:
- spfile<SID>.ora
- Si no se encuentra, spfile.ora
- Si no se encuentra, init<SID>.ora
Éste es el archivo que contiene los parámetros de inicialización de la instancia.
Al especificar el parámetro PFILE con STARTUP se sustituye el comportamiento
por defecto.
• Asignación de SGA
• Inicio de los procesos en segundo plano
• Apertura del archivo alert<SID>.log y de los archivos de rastreo
Nota: SID es el identificador del sistema, que identifica la instancia (por ejemplo, ORCL).

Base de Datos Oracle 10g: Taller de Administración I 4-21


Inicio de una Instancia de Base de Datos Oracle:
MOUNT
OPEN
STARTUP

MOUNT

El archivo de
control se abre

Oracle Internal & Oracle Academy Use Only


NOMOUNT para esta
instancia
Se inicia
la instancia
SHUTDOWN

Copyright © 2005, Oracle. Todos los derechos reservados.

Inicio de una Instancia de Base de Datos Oracle: MOUNT


El montaje de una base de datos incluye las siguientes tareas:
• Asociación de una base de datos con una instancia iniciada previamente
• Búsqueda y apertura de los archivos de control especificados en el archivo de parámetros
• Lectura de los archivos de control para obtener los nombres y los estados de los archivos de
datos y los archivos redo log en línea. Sin embargo, en esta fase no se realizan
comprobaciones para verificar la existencia de los archivos de datos y los archivos redo log
en línea
Parar realizar operaciones de mantenimiento específicas, inicie una instancia y monte una base
de datos sin abrir la base de datos.
Por ejemplo, la base de datos se debe montar pero sin estar abierta mientras se llevan a cabo las
siguientes tareas:
• Cambio de nombre de los archivos de datos (el nombre de los archivos de datos de un
tablespace offline se puede cambiar con la base de datos abierta)
• Activación y desactivación de opciones de archivado de archivos redo log en línea
• Realización de una recuperación completa de la base de datos
Nota: Es posible dejar una base de datos en el modo MOUNT aunque se haya realizado una
solicitud OPEN. El motivo puede ser que la base de datos se necesita recuperar de alguna forma.

Base de Datos Oracle 10g: Taller de Administración I 4-22


Inicio de una Instancia de Base de Datos Oracle:
OPEN
OPEN
STARTUP Todos los archivos se
abren como se describe
MOUNT en el archivo de control
de esta instancia
El archivo de
control se abre

Oracle Internal & Oracle Academy Use Only


NOMOUNT para esta
instancia
Se inicia
la instancia
SHUTDOWN

Copyright © 2005, Oracle. Todos los derechos reservados.

Inicio de una Instancia de Base de Datos Oracle: OPEN


La operación normal de la base de datos implica que se inicia una instancia y que la base de
datos se monta y se abre. Con el funcionamiento normal de la base de datos, cualquier usuario
válido puede conectarse a la base de datos y realizar operaciones normales de acceso a los datos.
La apertura de una base de datos incluye las siguientes tareas:
• Apertura de los archivos de datos en línea
• Apertura de los archivos redo log en línea
Si alguno de los archivos de datos o archivos redo log en línea no está presente cuando se intenta
abrir la base de datos, el servidor de Oracle devuelve un error.
Durante esta etapa final, el servidor de Oracle verifica que todos los archivos de datos y archivos
redo log en línea se pueden abrir y comprueba la consistencia de la base de datos. Si es
necesario, el proceso en segundo plano del monitor del sistema (SMON) inicia la recuperación
de la instancia.
Puede iniciar una instancia de la base de datos en modo restringido para que esté disponible sólo
a los usuarios que tienen privilegios administrativos. Para iniciar una instancia en modo
restringido, seleccione la opción “Restrict access to database” en la página Advanced Startup
Options.

Base de Datos Oracle 10g: Taller de Administración I 4-23


Componentes
SQL*Plus
Cierre de una Instancia de Parámetros Inic.
Inicio de BD
Base de Datos Oracle > Cierre de BD
Log de Alertas
Vistas Rend.

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Cierre de una Instancia de Base de Datos Oracle


Si ya se ha iniciado la instancia cuando accede a la página Enterprise Manager Database Control,
puede hacer clic en el botón Shutdown para cerrar la instancia. Si a continuación hace clic en el
botón Advanced Options, puede seleccionar el modo de cierre: Normal, Transactional,
Immediate o Abort.

Base de Datos Oracle 10g: Taller de Administración I 4-24


Modos de Cierre

Modo de Cierre A I T N

Permite nuevas conexiones No No No No


Espera hasta que terminen las sesiones actuales No No No Sí
Espera hasta que terminen las transacciones actuales
No No Sí Sí
Aplica un punto de control y cierra los archivos

Oracle Internal & Oracle Academy Use Only


No Sí Sí Sí

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

Copyright © 2005, Oracle. Todos los derechos reservados.

Modos de Cierre
Los modos de cierre se ajustan progresivamente a la actividad actual según el siguiente orden:
• ABORT: Realiza la cantidad mínima de trabajo antes del cierre. Puesto que esta opción
necesita recuperación antes del inicio, utilícela sólo cuando sea necesario. Normalmente se
utiliza cuando no funciona ninguna otra forma de cierre, cuando hay problemas al iniciar la
instancia o cuando necesita cerrar inmediatamente porque se ha producido una situación
inminente, como el aviso de un corte del suministro eléctrico en unos segundos.
• IMMEDIATE: Es la opción que más se utiliza. Se realiza un rollback de las transacciones
sin confirmar.
• TRANSACTIONAL: Permite que finalicen las transacciones.
• NORMAL: Espera a que las sesiones se desconecten.
Si considera la cantidad de tiempo que se tarda en realizar el cierre, descubrirá que ABORT es el
método más rápido y que NORMAL es el más lento.

Base de Datos Oracle 10g: Taller de Administración I 4-25


Opciones de SHUTDOWN

Durante el descenso: Durante


Durante el
• Se realiza un ascenso:
rollback de los SHUTDOWN • No hay
NORMAL
cambios sin recuperación
o bien
confirmar para SHUTDOWN de instancias
IMMEDIATE TRANSACTIONAL
• La caché de o bien

Oracle Internal & Oracle Academy Use Only


SHUTDOWN
buffers de la IMMEDIATE
base de datos
se escribe en
los archivos
de datos
• Se liberan Base de datos consistente
los recursos (base de datos limpia)

Copyright © 2005, Oracle. Todos los derechos reservados.

Opciones de SHUTDOWN
SHUTDOWN NORMAL
El modo de cierre por defecto es normal. El cierre normal de la base de datos continúa con las
condiciones siguientes:
• No se pueden realizar nuevas conexiones.
• El servidor de Oracle espera a que todos los usuarios se desconecten antes de completar el
cierre.
• Los buffers de la base de datos y de redo se escriben en disco.
• Los procesos en segundo plano se terminan y el SGA se elimina de la memoria.
• El servidor de Oracle cierra y desmonta la base de datos antes de cerrar la instancia.
• El siguiente inicio no necesita recuperación de instancias.
SHUTDOWN TRANSACTIONAL
Un cierre transaccional impide que los clientes pierdan los datos, incluyendo los resultados de su
actividad actual. El cierre transaccional de la base de datos continúa con las condiciones
siguientes:
• Ningún cliente puede iniciar una nueva transacción en esta instancia en particular.
• Un cliente se desconecta cuando el cliente finaliza la transacción en curso.
• Cuando han finalizado todas las transacciones, se produce inmediatamente un cierre.
• El siguiente inicio no necesita recuperación de instancias.

Base de Datos Oracle 10g: Taller de Administración I 4-26


Opciones de SHUTDOWN (continuación)
SHUTDOWN IMMEDIATE
El cierre inmediato de la base de datos continúa con las condiciones siguientes:
• Las sentencias SQL actuales que está procesando la base de datos Oracle no se completan.
• El servidor de Oracle no espera a que se desconecten los usuarios que están conectados
actualmente a la base de datos.
• El servidor de Oracle realiza un rollback de transacciones activas y desconecta todos los
usuarios conectados.
• El servidor de Oracle cierra y desmonta la base de datos antes de cerrar la instancia.
• El siguiente inicio no necesita recuperación de instancias.

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g: Taller de Administración I 4-27


Opciones de SHUTDOWN
Durante el descenso: Durante el ascenso:
• Los buffers Durante
• Los archivos
modificados redo log en línea
no se escriben en SHUTDOWN ABORT se utilizan para
los archivos de o bien volver a aplicar
datos Fallo de la instancia los cambios
o bien • Los segmentos
• No se realiza un STARTUP FORCE
rollback de los de deshacer se

Oracle Internal & Oracle Academy Use Only


cambios sin utilizan para
confirmar realizar un
rollback de los
cambios sin
confirmar
• Se liberan los
recursos
Base de datos inconsistente
(base de datos sucia)

Copyright © 2005, Oracle. Todos los derechos reservados.

Opciones de SHUTDOWN (continuación)


SHUTDOWN ABORT
Si las opciones de cierre NORMAL e IMMEDIATE no funcionan, puede abortar la instancia de
base de datos actual. El aborto de una instancia continúa con las condiciones siguientes:
• Las sentencias SQL actuales que está procesando el servidor de Oracle se terminan
inmediatamente.
• El servidor de Oracle no espera a que se desconecten los usuarios que están conectados
actualmente a la base de datos.
• Los buffers de la base de datos y de redo no se escriben en disco.
• No se realiza un rollback de las transacciones sin confirmar.
• La instancia se termina sin cerrar los archivos.
• La base de datos no se cierra ni se desmonta.
• El siguiente inicio necesita la recuperación de instancias, lo que se produce
automáticamente.
Nota: No se recomienda realizar una copia de seguridad de una base de datos con estado
inconsistente.

Base de Datos Oracle 10g: Taller de Administración I 4-28


Uso de SQL*Plus para el Inicio
y el Cierre

[oracle@EDRSR9P1 oracle]$ sqlplus dba1/oracle as sysdba

SQL> shutdown immediate


Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Oracle Internal & Oracle Academy Use Only


Total System Global Area 285212672 bytes
Fixed Size 1218472 bytes
Variable Size 250177624 bytes
Database Buffers 33554432 bytes
Redo Buffers 262144 bytes
Database mounted.
Database opened.
SQL>

Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de SQL*Plus para el Inicio y el Cierre


También puede utilizar SQL*Plus para iniciar, cerrar o cambiar el estado de la base de datos.
Para usar SQL*Plus en estas tareas, conéctese como SYSDBA o SYSOPER. A continuación,
utilice los comandos equivalentes de la función de Enterprise Manager descrita anteriormente:

SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]

STARTUP [FORCE] [RESTRICT] [MOUNT | OPEN | NOMOUNT]

Esto le permite incluir las operaciones de inicio y cierre como parte de un archivo de comandos
o un proceso por lotes que realice tareas en la base de datos, para las que es necesario que la base
de datos se encuentre en un estado específico.

Base de Datos Oracle 10g: Taller de Administración I 4-29


Componentes
SQL*Plus
Visualización del Parámetros Inic.
Inicio de BD
Log de Alertas Cierre de BD
> Log de Alertas
Vistas Rend.

Página Inicial de la Base de Datos >


Región Related Links > Alert Log Content

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Visualización del Log de Alertas


Cada base de datos tiene un archivo alert_<sid>.log. Está en el servidor con la base de
datos y está almacenado en el directorio especificado con el parámetro de inicialización
background_dump_dest. El archivo de alertas de una base de datos es un log cronológico
de mensajes y errores, incluidos los siguientes:
• Cualquier parámetro de inicialización no por defecto utilizado en el inicio
• Todos los errores internos (ORA-600), errores de corrupción de bloques (ORA-1578) y
errores de interbloqueo (ORA-60) que se produzcan
• Operaciones administrativas, como las sentencias SQL CREATE, ALTER, DROP
DATABASE y TABLESPACE, y las sentencias de Enterprise Manager o SQL*Plus
STARTUP, SHUTDOWN, ARCHIVE LOG y RECOVER
• Varios mensajes y errores relacionados con las funciones del servidor compartido y los
procesos del distribuidor
• Errores durante la actualización automática de una vista materializada
Enterprise Manager controla el archivo log de alertas y notifica los errores críticos. También
puede consultar el log para ver errores no críticos y mensajes informativos. El archivo puede
crecer hasta alcanzar un tamaño difícil de gestionar. Puede realizar una copia de seguridad del
archivo de alerta y suprimir el archivo de alerta actual cada cierto tiempo. Cuando la base de
datos intenta de nuevo escribir en el archivo de alerta, crea uno nuevo.

Base de Datos Oracle 10g: Taller de Administración I 4-30


Visualización del Historial de Alertas

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Visualización del Historial de Alertas


En la página Alert History se muestra un diagrama con el historial de alertas de la base de datos
actual en los segmentos de tiempo que designe. Una alerta indica un problema potencial: puede
ser un umbral de advertencia o crítico de una métrica controlada, o puede ser un destino que ya
no está disponible.

Base de Datos Oracle 10g: Taller de Administración I 4-31


Componentes
SQL*Plus
Vistas de Rendimiento Parámetros Inic.
Inicio de BD
Dinámico Cierre de BD
Log de Alertas
> Vistas Rend.
Las vistas de rendimiento
dinámico proporcionan acceso
a información sobre las Datos de sesión

condiciones y estados Eventos de espera


Asignaciones de memoria
cambiantes en la base de datos.
SQL en ejecución
Uso de UNDO

Oracle Internal & Oracle Academy Use Only


Cursores abiertos

Uso de redo log

Etc.

Instancia de Oracle

Copyright © 2005, Oracle. Todos los derechos reservados.

Vistas de Rendimiento Dinámico


La base de datos Oracle también mantiene un juego de datos más dinámico en cuanto al
funcionamiento y rendimiento de la instancia de base de datos. Estas vistas de rendimiento
dinámico se basan en tablas virtuales que se generan a partir de estructuras de memoria del
servidor de base de datos. Es decir, no son tablas convencionales que residen en una base de
datos. Por este motivo, algunas de ellas pueden mostrar datos antes de que se monte o abra una
base de datos.
Las vistas de rendimiento dinámico incluyen información sobre lo siguiente:
• Sesiones
• Estados de archivo
• Progreso de trabajos y tareas
• Bloqueos
• Estado de copia de seguridad
• Asignación y uso de la memoria
• Parámetros del sistema y de sesión
• Ejecución de SQL
• Estadísticas y métrica
Nota: Las vistas DICT y DICT_COLUMNS también contienen los nombres de estas vistas de
rendimiento dinámico.

Base de Datos Oracle 10g: Taller de Administración I 4-32


Vistas de Rendimiento Dinámico:
Ejemplos de Uso

SQL> SELECT sql_text, executions FROM v$sql


a
WHERE cpu_time > 200000;

SQL> SELECT * FROM v$session WHERE machine =


b

Oracle Internal & Oracle Academy Use Only


'EDRSR9P1' and logon_time > SYSDATE - 1;

SQL> SELECT sid, ctime FROM v$lock WHERE


c
block > 0;

Copyright © 2005, Oracle. Todos los derechos reservados.

Vistas de Rendimiento Dinámico: Ejemplos de Uso


Enterprise Manager utiliza con frecuencia estas vistas, aunque los usuarios pueden consultarlas
siempre que sea necesario. Los tres ejemplos mostrados en la diapositiva contestan a las
siguientes preguntas:
a. ¿Cuáles son las sentencias SQL y su número asociado de ejecuciones en las que el tiempo
de CPU empleado es superior a 200.000 microsegundos?
b. ¿Qué sesiones se conectaron desde la computadora EDRSR9P1 el último día?
c. ¿Cuáles son los identificadores de sesión de las sesiones que actualmente retienen un
bloqueo que está bloqueando a otro usuario y cuánto tiempo se ha retenido ese bloqueo?

Base de Datos Oracle 10g: Taller de Administración I 4-33


Vistas de Rendimiento Dinámico:
Consideraciones

• Estas vistas son propiedad del usuario SYS.


• Las vistas disponibles son diferentes en
momentos distintos:
– Si se ha iniciado la instancia.
– Si se ha montado la base de datos.

Oracle Internal & Oracle Academy Use Only


– Si se ha abierto la base de datos.
• Puede consultar V$FIXED_TABLE para ver todos
los nombres de vistas.
• Estas vistas a menudo se denominan “vistas con
formato v-$”.
• En estas vistas no se garantiza la consistencia de
lectura porque los datos son dinámicos.

Copyright © 2005, Oracle. Todos los derechos reservados.

Vistas de Rendimiento Dinámico: Consideraciones


Algunas vistas dinámicas contienen datos que no se aplican a todos los estados de una instancia
o de una base de datos. Por ejemplo, si se acaba de iniciar una instancia, pero no se ha montado
ninguna base de datos, puede consultar V$BGPROCESS para ver la lista de los procesos en
segundo plano que se están ejecutando. Sin embargo, no puede consultar V$DATAFILE para ver
el estado de los archivos de datos de la base de datos ya que es el montaje de una base de datos el
que lee el archivo de control para averiguar los archivos de datos asociados a una base de datos.

Base de Datos Oracle 10g: Taller de Administración I 4-34


Resumen
En esta lección, debe haber aprendido lo siguiente:
• Iniciar y parar la base de datos Oracle y sus
componentes
• Utilizar Enterprise Manager y describir su
funcionalidad de alto nivel
• Acceder a una base de datos con SQL*Plus e
iSQL*Plus

Oracle Internal & Oracle Academy Use Only


• Modificar los parámetros de inicialización de la base
de datos
• Describir las etapas de inicio de la base de datos
• Describir las opciones de cierre de la base de datos
• Visualizar el log de alertas
• Acceder a vistas de rendimiento dinámico

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 4-35


Visión General de la Práctica:
Gestión de la Instancia de Oracle

En esta práctica se abordan los siguientes temas:


• Navegación por Enterprise Manager
• Visualización y modificación de parámetros de
inicialización
• Parada e inicio de la instancia de base de datos

Oracle Internal & Oracle Academy Use Only


• Visualización del log de alertas
• Conexión a la base de datos mediante el uso de
SQL*Plus e iSQL*Plus

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 4-36


Gestión de Estructuras de
Almacenamiento de Bases de Datos

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.
Objetivos

Al finalizar esta lección, debería estar capacitado para lo


siguiente:
• Describir cómo se almacenan en bloques los datos
de fila de tabla
• Definir el objetivo de tablespaces y archivos de datos

Oracle Internal & Oracle Academy Use Only


• Crear y gestionar tablespaces
• Obtener información de tablespaces
• Describir las funcionalidades y conceptos principales
de Gestión Automática de Almacenamiento (ASM)

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 5-2


Estructuras de Almacenamiento
Lógicas Físicas

Base de datos

Archivo del
Tablespace
sistema operativo

Oracle Internal & Oracle Academy Use Only


Segmento

Extensión

Bloque de datos Bloque del


de Oracle sistema operativo

Copyright © 2005, Oracle. Todos los derechos reservados.

Estructuras de Almacenamiento
Una base de datos se divide en unidades lógicas de almacenamiento denominadas tablespaces.
Cada tablespace se compone de muchos bloques lógicos de datos de Oracle. El parámetro
DB_BLOCK_SIZE especifica el tamaño que tiene un bloque lógico. El rango de tamaño de un
bloque lógico es de 2 KB a 32 KB. El tamaño por defecto es 8 KB. Un número determinado de
bloques lógicos contiguos constituye una extensión. Un juego de extensiones que se asignan
según una estructura lógica concreta constituye un segmento. Un bloque de datos de Oracle
representa la unidad más pequeña de E/S lógica.

Base de Datos Oracle 10g: Taller de Administración I 5-3


Almacenamiento de Datos de Tabla

Columnas Bloques

Tabla A Tabla B

Filas

Segmento Segmento

Oracle Internal & Oracle Academy Use Only


Tabla
Tablespace

Parte de una fila Extensión

Copyright © 2005, Oracle. Todos los derechos reservados.

Almacenamiento de Datos de Tabla


Al crear una tabla, se crea un segmento para contener los datos. Un tablespace contiene una
recopilación de segmentos. Desde el punto de vista lógico, una tabla contiene filas de valores de
columna. En última instancia, una fila se almacena en una base de datos en forma de una parte de
una fila. Se denomina parte de una fila porque en determinadas circunstancias puede que la fila
entera no se almacene en un solo lugar. Esta situación se produce cuando una fila insertada es
demasiado grande para caber en un solo bloque o cuando una actualización hace que el espacio
actual de una fila existente se quede pequeño.

Base de Datos Oracle 10g: Taller de Administración I 5-4


Anatomía de un Bloque de Base de Datos

Cabecera de bloque
Crecimiento
Espacio libre

Oracle Internal & Oracle Academy Use Only


Datos de fila

Copyright © 2005, Oracle. Todos los derechos reservados.

Bloque de Base de Datos: Contenido


Los bloques de datos de Oracle se componen de:
• Cabecera de bloque: La cabecera de bloque contiene el tipo de segmento (como tabla o
índice), la dirección de bloque de datos, el directorio de la tabla, el directorio de la fila y las
ranuras de transacción de 23 bytes cada una que se utilizan cuando se llevan a cabo
modificaciones en filas del bloque. La cabecera de bloque crece de arriba a abajo desde la
parte superior.
• Datos de fila: Éstos son los datos reales para las filas del bloque. El espacio para los datos
de fila crece de abajo a arriba desde la base.
• Espacio libre: El espacio libre está en la parte central del bloque. Esto permite el
crecimiento del espacio de la cabecera y de los datos de fila cuando sea necesario. Los
datos de fila ocupan espacio libre conforme se insertan nuevas filas o las columnas de filas
existentes se actualizan con valores mayores. Algunos ejemplos de eventos que provocan el
crecimiento de la cabecera se dan cuando el directorio de la fila necesita más entradas de
fila o cuando se necesitan más ranuras de transacción de las que se configuraron en un
principio. En principio, el espacio libre de un bloque es contiguo. Sin embargo, las
supresiones y actualizaciones pueden fragmentar el espacio libre del bloque. El servidor de
Oracle fusiona el espacio libre en el bloque cuando es necesario.

Base de Datos Oracle 10g: Taller de Administración I 5-5


Tablespaces y Archivos de Datos

La base de datos Oracle almacena datos de forma


lógica en tablespaces y de forma física en archivos de
datos.
• Tablespaces:
– Sólo pueden pertenecer a una base de datos
– Constan de uno o más archivos de datos

Oracle Internal & Oracle Academy Use Only


– Se dividen en unidades lógicas de almacenamiento
• Archivos de datos: Base de datos
– Pueden pertenecer sólo a un Tablespace
tablespace y una base de datos
– Son un repositorio para datos
de objetos de esquema Archivos de datos

Copyright © 2005, Oracle. Todos los derechos reservados.

Tablespaces y Archivos de Datos


Las bases de datos, tablespaces y archivos de datos están estrechamente relacionados pero
presentan importantes diferencias:
• Una base de datos Oracle consta de una o más unidades lógicas de almacenamiento
denominadas tablespaces, que en conjunto almacenan todos los datos de la base de datos.
• Cada tablespace de una base de datos Oracle se compone de uno o más archivos
denominados archivos de datos, que son estructuras físicas que se ajustan al sistema
operativo en el que se está ejecutando el software de Oracle.
• Los datos de una base de datos se almacenan en conjunto en los archivos de datos que
constituyen cada tablespace de la base de datos. Por ejemplo, la base de datos Oracle más
simple tendría dos tablespaces (los tablespaces obligatorios SYSTEM y SYSAUX), cada
uno de ellos con un archivo de datos. Otra base de datos puede tener tres tablespaces,
compuestos cada uno por dos archivos de datos (un total de seis archivos de datos).
Una única base de datos puede tener hasta 65.534 archivos de datos.

Base de Datos Oracle 10g: Taller de Administración I 5-6


Oracle Managed Files (OMF)
Especificar operaciones de archivos en función de los
objetos de base de datos en lugar de los nombres de
archivos.
Parámetro Descripción

DB_CREATE_FILE_DEST Define la ubicación del directorio


del sistema de archivos por
defecto para los archivos de datos
y los archivos temporales

Oracle Internal & Oracle Academy Use Only


DB_CREATE_ONLINE_LOG_DEST_n Define la ubicación para la
creación de archivos de control y
archivos redo log
DB_RECOVERY_FILE_DEST Define la ubicación para las copias
de seguridad de RMAN
Ejemplo:
SQL> ALTER SYSTEM SET DB_CREATE_FILE_DEST = '/u01/oradata';
SQL> CREATE TABLESPACE tbs_1;

Copyright © 2005, Oracle. Todos los derechos reservados.

Oracle Managed Files (OMF)


Oracle Managed Files (OMF) elimina la necesidad de gestionar directamente los archivos del
sistema operativo que forman una base de datos Oracle. Especifique operaciones en función de
los objetos de base de datos en lugar de los nombres de archivos. La base de datos utiliza
internamente las interfaces del sistema de archivos estándar para crear y suprimir archivos según
lo necesiten las siguientes estructuras de la base de datos:
• Tablespaces
• Archivos redo log
• Archivos de control
• Archive logs
• Archivos de seguimiento de cambios de bloque
• Logs de flashback
• Copias de seguridad de RMAN
La base de datos puede disponer tanto de archivos Oracle Managed Files como de archivos no
gestionados. Ya debe existir el directorio del sistema de archivos especificado por cualquiera de
estos parámetros, la base de datos no lo crea. El directorio debe tener también permisos para que
la base de datos cree los archivos en el mismo.
El ejemplo muestra que una vez definido DB_CREATE_FILE_DEST, la cláusula DATAFILE
se puede omitir de una sentencia CREATE TABLESPACE. El archivo de datos se crea en la
ubicación especificada por DB_CREATE_FILE_DEST.

Base de Datos Oracle 10g: Taller de Administración I 5-7


Gestión de Espacio en Tablespaces

• Tablespace gestionado localmente:


– Las extensiones libres se gestionan en el
tablespace.
– Se utiliza un bitmap para registrar extensiones
libres.
– Cada bit corresponde a un bloque o grupo de bloques.
– El valor del bit indica libre o usado.

Oracle Internal & Oracle Academy Use Only


– Se recomienda el uso de tablespaces gestionados
localmente.
• Tablespace gestionado por diccionario:
– El diccionario de datos gestiona las extensiones libres.
– Se actualizan las tablas correspondientes cuando se
asignan o se anula la asignación de extensiones.
– Estos tablespaces sólo se soportan para compatibilidad
con versiones anteriores.

Copyright © 2005, Oracle. Todos los derechos reservados.

Gestión de Espacio en Tablespaces


Los tablespaces asignan espacio en extensiones. Los tablespaces se pueden crear para utilizar
uno de los dos siguientes métodos de realización de seguimiento de espacio libre o usado:
• Tablespaces gestionados localmente: Las extensiones se gestionan en el tablespace a
través de bitmaps. Cada bit del bitmap corresponde a un bloque o grupo de bloques.
Cuando una extensión se asigna o se libera para volver a utilizarla, el servidor de Oracle
cambia los valores del bitmap para mostrar el nuevo estado de los bloques.
• Tablespaces gestionados por diccionario: El diccionario de datos gestiona las
extensiones. El servidor de Oracle actualiza las tablas adecuadas del diccionario de datos
siempre que se asigna o se anula la asignación de una extensión. Este método se utiliza
para obtener la compatibilidad con versiones anteriores; se recomienda usar tablespaces
gestionados localmente.

Base de Datos Oracle 10g: Taller de Administración I 5-8


Exploración de la Estructura de
Almacenamiento

Oracle Internal & Oracle Academy Use Only


Haga clic en los enlaces para
visualizar información detallada.

Copyright © 2005, Oracle. Todos los derechos reservados.

Exploración de la Estructura de Almacenamiento


Las estructuras de datos lógicos se almacenan en los archivos físicos de la base de datos.
Enterprise Manager permite visualizar las estructuras lógicas de la base de datos fácilmente.
Si desea obtener información detallada sobre cada una de las estructuras, puede hacer clic en los
enlaces de la región Storage de la página Administration.

Base de Datos Oracle 10g: Taller de Administración I 5-9


Creación de un Nuevo Tablespace

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Creación de un Nuevo Tablespace


Para crear un tablespace, realice los siguientes pasos:
1. Haga clic en el separador Administration y, a continuación, haga clic en Tablespaces
situado bajo la cabecera Storage.
2. Haga clic en Create.
Nota: Si desea crear un tablespace igual que otro ya existente, seleccione a continuación el
tablespace existente y elija Create Like en el menú Actions. Haga clic en Go.
Aparecerá la página Create Tablespace.
3. Introduzca un nombre para el tablespace.
4. Bajo la cabecera Extent Management, seleccione Locally Managed. El servidor de bases de
datos Oracle gestiona eficazmente en el tablespace las extensiones de un tablespace
gestionado localmente. Para un tablespace gestionado por diccionario, debe gestionar de
forma más activa las extensiones y es necesario tener acceso al diccionario de datos para
realizar un seguimiento de las mismas. Los tablespaces gestionados por diccionario están
en desuso. Oracle no recomienda su uso.
5. Bajo la cabecera Type, seleccione Permanent. Los tablespaces permanentes almacenan
objetos de base de datos permanentes creados por el sistema o por los usuarios.

Base de Datos Oracle 10g: Taller de Administración I 5-10


Creación de un Nuevo Tablespace (continuación)
6. Bajo la cabecera Status, seleccione Read Write. El estado de lectura/escritura significa que
los usuarios pueden leer y escribir en el tablespace una vez creado. Éste es el valor por
defecto.
7. En la región Datafiles de la página, haga clic en Add para agregar archivos de datos al
tablespace, un tablespace debe tener al menos un archivo. Los tablespaces de archivo
grande se utilizan con bases de datos muy grandes en las que la Gestión Automática de
Almacenamiento (ASM) de Oracle u otros gestores de volúmenes lógicos soportan la
segmentación o la matriz redundante de discos independientes (RAID), además de
volúmenes lógicos extensibles dinámicamente.
8. En la página Add Datafiles, introduzca un nombre de archivo. Acepte el valor por defecto
para File Directory e introduzca un tamaño de archivo.
9. En la región Storage, puede seleccionar “Automatically extend datafile when full
(AUTOEXTEND)” y, a continuación, especificar una cantidad en el campo Increment.

Oracle Internal & Oracle Academy Use Only


Esto hace que el archivo de datos se amplíe automáticamente cada vez que se quede sin
espacio. Por supuesto, está limitado por el medio físico en el que reside. Deje el valor
Maximum File Size definido en Unlimited. Haga clic en OK. Volverá a la página Create
Tablespace.
10. Haga clic en el separador Storage. Aparecerá la página Edit Tablespace.
11. Acepte todos los valores por defecto de la página Storage.
Nota: Estos pasos están destinados a mostrar cómo crear rápidamente un tablespace para la
mayoría de situaciones. Puede que necesite cambiar algunas opciones en función de sus
requisitos concretos.

Base de Datos Oracle 10g: Taller de Administración I 5-11


Almacenamiento de Tablespaces
Gestionados Localmente

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Almacenamiento de Tablespaces Gestionados Localmente


Las extensiones de un tablespace gestionado localmente se pueden asignar de uno de los dos
modos siguientes:
• Automatic: También denominado asignación automática, especifica que los tamaños de las
extensiones del tablespace los gestiona el sistema. No puede especificar un tamaño de
extensión. No puede especificar Automatic para un tablespace temporal.
• Uniform: Especifica que el tablespace está gestionado con extensiones uniformes con un
tamaño especificado. El tamaño por defecto es 1 MB. Todas las extensiones de tablespaces
temporales son uniformes y presentan ese valor por defecto. No puede especificar Uniform
para un tablespace de deshacer.
La gestión de espacio de segmento en un tablespace gestionado localmente se puede especificar
como:
• Automatic: La base de datos Oracle utiliza bitmaps para gestionar el espacio libre en
segmentos. Un bitmap describe el estado de cada bloque de datos de un segmento con
respecto a la cantidad de espacio del bloque disponible para insertar filas. A medida que hay
más o menos espacio disponible en un bloque de datos, su nuevo estado se refleja en el
bitmap. Con los bitmaps, la base de datos Oracle gestiona el espacio libre de forma más
automática y, por este motivo, este método de gestión de espacio se denomina gestión
automática de espacio de segmento (ASSM).

Base de Datos Oracle 10g: Taller de Administración I 5-12


Almacenamiento de Tablespaces Gestionados Localmente (continuación)
• Manual: Especifica que desea utilizar listas de bloques libres para la gestión de espacio
libre en segmentos. Las listas de bloques libres son listas de bloques de datos que tienen
espacio disponible para la inserción de filas. Esta forma de gestión de espacio en
segmentos se denomina gestión manual de espacio de segmento debido a la necesidad de
especificar y ajustar los parámetros de almacenamiento PCTUSED, FREELISTS y
FREELIST GROUPS para objetos de esquema creados en el tablespace. Se soporta para
obtener la compatibilidad con versiones anteriores; se recomienda utilizar ASSM.
Ventajas de los Tablespaces Gestionados Localmente
Los tablespaces gestionados localmente presentan las siguientes ventajas sobre los gestionados
por diccionario:
• La gestión local evita operaciones recursivas de gestión de espacio. Esto sucede en los
tablespaces gestionados por diccionario si el consumo o la liberación de espacio en una

Oracle Internal & Oracle Academy Use Only


extensión da como resultado otra operación que consume o libera espacio en un segmento
de deshacer o en una tabla de diccionarios de datos.
• Dado que no registran espacio libre en las tablas de diccionarios de datos, los tablespaces
gestionados localmente reducen la contención en estas tablas.
• La gestión local de extensiones realiza automáticamente un seguimiento del espacio libre
adyacente, que elimina la necesidad de fusionar extensiones libres.
• El sistema puede determinar automáticamente los tamaños de las extensiones gestionadas
localmente.
• Los cambios en los bitmaps de extensiones no generan información de deshacer porque no
actualizan tablas del diccionario de datos (excepto en casos especiales como, por ejemplo,
información de cuota de tablespace).
Nota: Si gestiona una base de datos que tiene tablespaces gestionados por diccionario y desea
convertirlos a tablespaces gestionados localmente, utilice el procedimiento
DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL. Para obtener más
información sobre el uso de este procedimiento, consulte PL/SQL Packages and Types Reference
y Database Administrator’s Guide.
Enable logging
Los cambios que se realizan en los objetos en el tablespace se escriben en el redo log. Si el
registro no está activado, la creación de cualquier objeto y las posteriores inserciones de rutas de
acceso de cargas directas realizadas en esos objetos no se escriben en el redo log y, por lo tanto,
dichos objetos son irrecuperables en caso de pérdida de datos. De modo que, cuando un objeto se
crea con el registro desactivado, debe realizar una copia seguridad si desea que sea recuperable.
Para obtener más información sobre la cláusula de registro, consulte la guía Oracle Database
SQL Reference.
Block Information
Esta región muestra el tamaño de bloque que se utiliza para el tablespace que se está creando.
Aquí se muestra como un valor de sólo lectura. Si define alguno de los parámetros alternativos
de inicialización para el tamaño de bloque (DB_nK_CACHE_SIZE), aparecerían aquí otros
valores en forma de opciones. Para obtener más información sobre cómo definir otros tamaños
de bloque, consulte Oracle Database Administrator’s Guide.

Base de Datos Oracle 10g: Taller de Administración I 5-13


Tablespaces en la Base de Datos
Preconfigurada

• SYSTEM • UNDOTBS1
• SYSAUX • USERS
• TEMP • EXAMPLE

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Tablespaces en la Base de Datos Preconfigurada


Los siguientes tablespaces se crean en la base de datos preconfigurada de este curso:
• SYSTEM: El servidor de Oracle utiliza el tablespace SYSTEM para gestionar la base de
datos. Contiene el diccionario de datos y las tablas que incluyen información administrativa
sobre la base de datos. Todos ellos están incluidos en el esquema SYS y sólo el usuario
SYS u otros usuarios administrativos con el privilegio necesario pueden acceder a ellos.
• SYSAUX: Éste es un tablespace auxiliar del tablespace SYSTEM. Algunos componentes y
productos que utilizaban el tablespace SYSTEM o sus propios tablespaces en versiones
anteriores de la base de datos Oracle utilizan ahora el tablespace SYSAUX. Todas las bases
de datos Oracle 10g o versiones posteriores deben tener un tablespace SYSAUX.
En Enterprise Manager, puede ver un gráfico de tarta del contenido de este tablespace.
Para ello, haga clic en Tablespaces en la página Administration. Seleccione SYSAUX y
haga clic en Edit. Después, haga clic en el separador Occupants. Una vez concluida la
creación, se puede controlar el uso del espacio de cada ocupante del tablespace SYSAUX
mediante EM. Si se detecta que un componente ocupa demasiado espacio del tablespace
SYSAUX o si se prevé que lo haga, cabe la posibilidad de moverlo a otro tablespace si se
selecciona uno de los ocupantes y se hace clic en Change Tablespace.

Base de Datos Oracle 10g: Taller de Administración I 5-14


Tablespaces en la Base de Datos Preconfigurada (continuación)
• TEMP: El tablespace temporal se utiliza cuando se ejecuta una sentencia SQL que necesita
la creación de segmentos temporales (como grandes ordenaciones o la creación de un
índice). De la misma forma que a cada usuario se le asigna un tablespace por defecto para
almacenar objetos de datos creados, también se le asigna un tablespace temporal. La
práctica recomendada es definir un tablespace temporal por defecto para la base de datos
que se asignará a cada usuario recién creado, a menos que se especifique lo contrario. En la
base de datos preconfigurada, el tablespace TEMP se especifica como tablespace temporal
por defecto. Esto significa que si no se especifica ningún tablespace temporal al crear la
cuenta de usuario, la base de datos Oracle asigna este tablespace al usuario.
• UNDOTBS1: Éste es el tablespace de deshacer que utiliza el servidor de bases de datos para
almacenar información de deshacer. Si una base de datos utiliza Gestión Automática de
Deshacer (AUM), debe tener exactamente un tablespace de deshacer activo en cualquier
momento. Este tablespace se genera durante la creación de la base de datos.

Oracle Internal & Oracle Academy Use Only


• USERS: Este tablespace se utiliza para almacenar objetos y datos de usuarios permanentes.
En la base de datos preconfigurada, el tablespace USERS es el tablespace por defecto para
todos los objetos creados por usuarios que no son del sistema. Para los usuarios SYS y
SYSTEM (usuarios del sistema), el tablespace permanente por defecto sigue siendo
SYSTEM.
• EXAMPLE: Este tablespace contiene los esquemas de ejemplo que se pueden instalar al
crear la base de datos. Los esquemas de ejemplo proporcionan una plataforma común para
los ejemplos. La documentación y los cursos de Oracle contienen ejemplos basados en los
esquemas de ejemplo.
Nota: Para simplificar la administración es normal tener un tablespace sólo para índices.

Base de Datos Oracle 10g: Taller de Administración I 5-15


Modificación de un Tablespace

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Modificación de un Tablespace
Después de crear un tablespace, puede modificarlo de varios modos a medida que cambian las
necesidades del sistema.
Cambio de nombre: Introduzca un nuevo nombre para el tablespace y haga clic en Apply.
Cambio del estado: Un tablespace puede tener tres estados distintos. Cualquiera de los tres estados
siguientes puede no estar disponible ya que su disponibilidad depende del tipo de tablespace:
• Read Write: El tablespace está online y se puede leer y escribir en él.
• Read Only: Especifique Read Only para poner el tablespace en el modo de sólo lectura de
transición. En este estado, se pueden realizar las transacciones existentes (de confirmación o
de rollback), pero no se permiten otras operaciones de lenguaje de manipulación de datos
(DML) en los objetos del tablespace. El tablespace está online mientras tiene el estado de sólo
lectura. No puede hacer que el tablespace SYSTEM o SYSAUX sea de sólo lectura.

Base de Datos Oracle 10g: Taller de Administración I 5-16


Modificación de un Tablespace (continuación)
• Offline: Puede poner offline un tablespace online para que esta parte de la base de datos no
esté disponible temporalmente para su uso general. El resto de la base de datos está abierta
y disponible para que los usuarios accedan a los datos. Al ponerla offline, puede utilizar las
siguientes opciones:
- Normal: Un tablespace se puede poner offline normalmente si no existe ninguna
condición de error para ninguno de los archivos de datos del tablespace. La base de
datos Oracle garantiza que todos los datos se escriben en el disco al establecer un
punto de control para todos los archivos de datos del tablespace cuando los pone
offline.
- Temporary: Un tablespace se puede poner offline temporalmente, incluso si hay
condiciones de error para uno o más archivos del tablespace. La base de datos Oracle
pone offline los archivos de datos (los que aún no lo estén), al establecer a la vez un
punto de control en los mismos. Si no hay ningún archivo offline, pero utiliza la

Oracle Internal & Oracle Academy Use Only


cláusula temporal, la recuperación del medio físico no es necesaria para volver a
poner el tablespace online. Sin embargo, si uno o más archivos del tablespace están
offline debido a errores de escritura y pone el tablespace offline temporalmente, el
tablespace necesita la recuperación antes de ponerlo de nuevo online.
- Immediate: Un tablespace se puede poner offline inmediatamente, sin que la base de
datos Oracle establezca un punto de control en alguno de los archivos de datos.
Cuando especifica Immediate, es necesaria la recuperación del medio físico para el
tablespace para poner online el tablespace. No puede poner un tablespace offline
inmediatamente si la base de datos se está ejecutando en modo NOARCHIVELOG.
- For Recover: El valor FOR RECOVER ya no se utiliza. Se soporta la sintaxis para la
compatibilidad con versiones anteriores.
Cambio del tamaño: Puede agregar espacio a un tablespace existente, ya sea agregándole
archivos de datos o cambiando el tamaño de un archivo de datos existente.
• Para agregar un nuevo archivo de datos al tablespace, haga clic en Add y rellene la
información sobre el archivo de datos en la página Add Datafile.
• Para cambiar el tamaño de un archivo de datos existente, selecciónelo en la región
Datafiles de la página Edit Tablespace haciendo clic en el nombre del archivo de datos, o
bien seleccione el archivo de datos y haga clic en Edit. A continuación, en la página Edit
Datafile puede cambiar el tamaño del archivo de datos. Puede aumentar o reducir el tamaño
del tablespace. Sin embargo, no puede hacer que un archivo de datos sea más pequeño que
el espacio usado en el archivo; si lo intenta, obtendrá el siguiente error:
ORA-03297: file contains used data beyond requested RESIZE
value
Opciones de almacenamiento: Haga clic en Storage para cambiar el comportamiento de
registro del tablespace.

Base de Datos Oracle 10g: Taller de Administración I 5-17


Modificación de un Tablespace (continuación)
Thresholds: Haga clic en Thresholds para cambiar el punto en el que se alcanza un nivel crítico
o de advertencia en cuanto al uso de espacio en el tablespace. Dispone de tres opciones:
• Use Database Default Thresholds: Utiliza valores por defecto predefinidos y tiene la
opción de definir dichos valores por defecto.
• Specify Thresholds: Permite definir umbrales para este tablespace concreto.
• Disable Thresholds: Desactiva las alertas de uso de espacio para este tablespace.
Nota: Pueden pasar varios minutos hasta que se registre una alerta de umbral.

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g: Taller de Administración I 5-18


Acciones con Tablespaces

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Acciones con Tablespaces


Mediante el menú Actions puede realizar varias tareas con los tablespaces. Seleccione un
tablespace y, a continuación, la acción que desea realizar:
• Add Datafile: Agrega un archivo de datos al tablespace, con lo que se agranda el
tablespace.
• Create Like: Crea otro tablespace utilizando el tablespace como plantilla.
• Generate DDL: Genera la sentencia de lenguaje de definición de datos (DLL) que crea el
tablespace. A continuación se puede copiar y pegar en un archivo de texto para su uso
como archivo de comandos o con fines de documentación.
• Make Locally Managed: Convierte el tablespace en gestionado localmente si, en la
actualidad, el tablespace está gestionado por diccionario. Esta conversión no es reversible.
No puede volver a convertir el tablespace a gestionado por diccionario.
• Make Readonly: Para todas las escrituras en el tablespace. Se permite terminar las
transacciones actuales, pero no se permite iniciar nuevas DML u otras actividades de
escritura en el tablespace. Esta opción aparece sólo si el tablespace no es ya de sólo lectura.
• Make Writable: Permite iniciar DML y otras actividades de escritura en objetos del
tablespace. Esta opción aparece sólo si, actualmente, no se puede escribir en el tablespace.

Base de Datos Oracle 10g: Taller de Administración I 5-19


Acciones con Tablespaces (continuación)
• Place Online: Pone online un tablespace que actualmente está offline
• Reorganize: Inicia el asistente de reorganización, que puede utilizar para mover objetos en
el tablespace con el fin de reclamar espacio que de otro modo tal vez no se utilice. Esta
tarea se debe realizar en los momentos de menor uso de los objetos del tablespace.
• Run Segment Advisor: Inicia el Asesor de Segmentos, que puede utilizar para determinar
si un objeto tiene espacio disponible para la recuperación en función del nivel de
fragmentación de espacio en el objeto. En el nivel de tablespace, se genera un consejo para
cada segmento del tablespace.
• Show Dependencies: Muestra objetos de los que depende este tablespace u objetos que
dependen de este tablespace
• Show Tablespace Contents: Muestra información sobre todos los segmentos del
tablespace, incluido un mapa gráfico de todas las extensiones
• Take Offline: Pone no disponible un tablespace que actualmente está online. El tablespace

Oracle Internal & Oracle Academy Use Only


no se suprime ni borra, simplemente no está disponible.

Base de Datos Oracle 10g: Taller de Administración I 5-20


Borrado de Tablespaces

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Borrado de Tablespaces
Puede borrar un tablespace y su contenido (los segmentos incluidos en el tablespace) de la base
de datos si el tablespace y su contenido ya no son necesarios. Debe tener el privilegio del sistema
DROP TABLESPACE para borrar un tablespace.
Cuando borra un tablespace, se eliminan los punteros al archivo del archivo de control de la base
de datos asociada. Opcionalmente puede indicar al servidor de Oracle que suprima los archivos
del sistema operativo (archivos de datos) que constituyen el tablespace borrado. Si no indica al
servidor de Oracle que suprima los archivos de datos al mismo tiempo que el tablespace, deberá
utilizar posteriormente los comandos adecuados del sistema operativo si desea suprimirlos.
No puede borrar un tablespace que contenga segmentos activos. Por ejemplo, si se está utilizando
actualmente una tabla del tablespace o el tablespace contiene datos de deshacer necesarios para
realizar un rollback de transacciones sin confirmar, no puede borrar el tablespace. El tablespace
puede estar online u offline, pero es mejor que se ponga offline antes de borrarlo.

Base de Datos Oracle 10g: Taller de Administración I 5-21


Visualización de Información de
Tablespaces

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Visualización de Información de Tablespaces


Haga clic en View para ver información sobre el tablespace seleccionado. En la página View
Tablespace, también puede hacer clic en Edit para modificar el tablespace.
También se puede obtener información de tablespaces y archivos de datos consultando lo
siguiente:
• Información de tablespaces:
- DBA_TABLESPACES
- V$TABLESPACE
• Información de archivos de datos:
- DBA_DATA_FILES
- V$DATAFILE
• Información de archivos temporales:
- DBA_TEMP_FILES
- V$TEMPFILE

Base de Datos Oracle 10g: Taller de Administración I 5-22


Recopilación de Información de
Almacenamiento

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Recopilación de Información de Almacenamiento


Para visualizar y modificar información del tablespace en EM, seleccione Administration >
Tablespaces. Utilice los botones o la lista desplegable Actions para navegar hasta su destino.

Base de Datos Oracle 10g: Taller de Administración I 5-23


Visualización de Contenido de
Tablespaces

12061_1_sel_ts_3

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Visualización de Contenido de Tablespaces


En la página Show Tablespace Contents se muestra información detallada sobre el tablespace,
incluida una lista de los segmentos del tablespace, el tipo de cada segmento, el tamaño de
segmento y el número de extensiones que componen cada segmento. Cualquiera de esos cuatro
valores se puede utilizar para ordenar la lista, si hace clic en la cabecera de columna, o para
filtrar la lista si introduce valores en la región Search. Para los tablespaces gestionados por
diccionario se muestran columnas adicionales:
• Max Extents
• Next
• Percent Increase
Para consultar una lista de extensiones, haga clic en el enlace de la columna Extents.
Para visualizar las extensiones de una forma gráfica, amplíe "Extent map" y mueva el cursor
sobre cada extensión. Aparece la siguiente información:
• Nombre del segmento al que pertenece la extensión
• Identificador de extensión
• Identificador de bloque
• Tamaño de la extensión en bloques
• Archivo de datos en el que está almacenada la extensión

Base de Datos Oracle 10g: Taller de Administración I 5-24


Ampliación de la Base de Datos
Puede ampliar la base de datos de las siguientes formas:
• Creando un nuevo tablespace
• Agregando un archivo de datos a un tablespace
existente
• Aumentando el tamaño de un archivo de datos
• Manteniendo el crecimiento dinámico de un archivo
de datos

Oracle Internal & Oracle Academy Use Only


Database

SYSTEM INVENTORY
tablespace tablespace

Copyright © 2005, Oracle. Todos los derechos reservados.

Ampliación de la Base de Datos


Estas actividades se pueden realizar mediante Enterprise Manager o mediante sentencias SQL.
Al final, el tamaño de la base de datos se puede describir como la suma de todos sus tablespaces.

Base de Datos Oracle 10g: Taller de Administración I 5-25


¿Qué es Gestión Automática de
Almacenamiento?

Gestión Automática de Almacenamiento


• Es un sistema de archivos de
cluster portable y de alto Aplicación
rendimiento
• Gestiona archivos de la base Base de datos

Oracle Internal & Oracle Academy Use Only


de datos Oracle
Sistema
• Distribuye los datos entre los de archivos
ASM
discos para equilibrar la carga Gestor de
• Duplica datos volúmenes

• Resuelve muchos retos Sistema operativo


de gestión de almacenamiento

Copyright © 2005, Oracle. Todos los derechos reservados.

¿Qué es Gestión Automática de Almacenamiento?


ASM proporciona una integración vertical del sistema de archivos y del gestor de volúmenes
creado de forma específica para los archivos de las bases de datos Oracle. Además de gestionar
máquinas de multiproceso simétrico (SMP) individuales, ASM soporta Oracle Real Application
Clusters (RAC) y, por lo tanto, permite gestionar varios nodos de un cluster.
ASM distribuye la carga de entrada/salida (E/S) entre todos los recursos disponibles para
optimizar el rendimiento mientras elimina la necesidad de ajuste manual de E/S. ASM ayuda a
los DBA a gestionar los entornos de base de datos dinámicos ya que les permite aumentar el
tamaño de las bases de datos sin tener que cerrarlas a la hora de ajustar la asignación de
almacenamiento.
ASM puede mantener copias redundantes de los datos para ofrecer tolerancia ante fallos o se
puede montar en mecanismos de almacenamiento suministrados por el proveedor. La gestión de
datos se realiza seleccionando las características de fiabilidad y rendimiento deseadas para las
clases de datos en lugar de hacerlo archivo por archivo con la intervención del usuario.
Las capacidades de ASM ahorran tiempo a los DBA al automatizar el almacenamiento manual y,
en consecuencia, les permiten aumentar su capacidad para gestionar bases de datos más grandes
(y en mayor número) con mayor eficiencia.

Base de Datos Oracle 10g: Taller de Administración I 5-26


ASM: Funciones Clave y Ventajas

ASM
• Segmenta los archivos, pero no los volúmenes
lógicos
• Permite la reconfiguración y nuevo equilibrio
dinámico de discos online

Oracle Internal & Oracle Academy Use Only


• Permite ajustar la velocidad de nuevo equilibrio
• Proporciona redundancia por cada archivo
• Sólo soporta archivos de bases de datos Oracle
• Detecta los clusters
• Se instala automáticamente

Copyright © 2005, Oracle. Todos los derechos reservados.

ASM: Funciones Clave y Ventajas


ASM divide los archivos en extensiones (diferentes de las extensiones de archivos de datos
descritas anteriormente) y las distribuye de manera uniforme entre todos los discos. Utiliza una
técnica de índice para realizar el seguimiento de la colocación de cada extensión. Cuando varía
la capacidad de almacenamiento, ASM no vuelve a segmentar todos los datos, sino que mueve
una cantidad de datos proporcional a la cantidad de almacenamiento agregada o eliminada para
redistribuir uniformemente los archivos y mantener una carga equilibrada en los discos. Todo
ello se hace mientras la base de datos permanece activa.
Puede aumentar la velocidad de una operación de nuevo equilibrio para hacer que termine antes
o reducirla para disminuir el impacto en el subsistema de E/S. ASM proporciona protección de
duplicación sin necesidad de adquirir un gestor de volúmenes lógicos de otro fabricante. Una
ventaja exclusiva de ASM radica en que la duplicación se aplica por archivo, no por volumen.
Por lo tanto, un mismo grupo de discos puede contener una combinación de archivos duplicados
y no duplicados.
ASM soporta archivos de datos, archivos log, archivos de control, archive logs, juegos de copia
de seguridad de Recovery Manager (RMAN) y otros tipos de archivos de base de datos Oracle.
ASM soporta RAC y elimina la necesidad de un gestor de volúmenes lógicos de cluster o de un
sistema de archivos de cluster.

Base de Datos Oracle 10g: Taller de Administración I 5-27


ASM: Conceptos

Grupo de
Base de datos
discos de ASM

Archivo Archivo
Tablespace
de datos de ASM

Segmento Disco de ASM

Oracle Internal & Oracle Academy Use Only


Extensión Archivo del Unidad de
sistema de asignación
archivos
o
Bloque de datos
dispositivo raw
de Oracle Bloque
físico

Copyright © 2005, Oracle. Todos los derechos reservados.

ASM: Conceptos
ASM no elimina ninguna de las funciones existentes de la base de datos. Las bases de datos
existentes siguen funcionando como siempre. Puede crear nuevos archivos como archivos de
ASM y dejar que los archivos existentes se administren del modo anterior, o bien puede
migrarlos a ASM.
En el diagrama de la diapositiva se representan las relaciones que existen entre los diversos
componentes de almacenamiento dentro de una base de datos Oracle que utiliza ASM. Las partes
izquierda y central del diagrama muestran las relaciones que existen en versiones anteriores.
En la derecha se encuentran los nuevos conceptos introducidos con ASM.
Los archivos de base de datos se pueden almacenar como archivos de ASM. La cabeza de la
nueva jerarquía la ocupan los grupos de discos de ASM. Todos los archivos de ASM están en un
único grupo de discos. Por el contrario, un grupo de discos puede contener archivos que
pertenezcan a varias bases de datos y una única base de datos puede utilizar almacenamiento de
varios grupos de discos. Como puede observar, un grupo de discos está formado por varios
discos de ASM y cada disco de ASM pertenece a un único grupo de discos. Los archivos de
ASM siempre se distribuyen por todos los discos de ASM del grupo. Los discos de ASM están
particionados en unidades de asignación de un megabyte. La unidad de asignación constituye el
espacio de disco contiguo más pequeño que asigna ASM. ASM no permite dividir un bloque de
Oracle en unidades de asignación.
Nota: El gráfico sólo tiene que ver con un tipo de archivo de ASM: archivo de datos. Sin
embargo, ASM se puede utilizar para almacenar otros tipos de archivos de base de datos.

Base de Datos Oracle 10g: Taller de Administración I 5-28


Resumen

En esta lección, debe haber aprendido lo siguiente:


• Describir cómo se almacenan en bloques los datos
de fila de tabla
• Definir el objetivo de tablespaces y archivos de
datos

Oracle Internal & Oracle Academy Use Only


• Crear y gestionar tablespaces
• Obtener información de tablespaces
• Describir las funcionalidades y conceptos
principales de Gestión Automática de
Almacenamiento (ASM)

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 5-29


Visión General de la Práctica:
Gestión de Estructuras de Almacenamiento de
Bases de Datos

En esta práctica se abordan los siguientes temas:


• Creación de tablespaces
• Recopilación de información sobre tablespaces

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 5-30


Administración de Seguridad del Usuario

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.
Objetivos

Al finalizar esta lección, debería estar capacitado para lo


siguiente:
• Crear y gestionar cuentas de usuario de base de datos
– Autenticar usuarios
– Asignar áreas de almacenamiento por defecto
(tablespaces)

Oracle Internal & Oracle Academy Use Only


• Otorgar y revocar privilegios
• Crear y gestionar roles
• Crear y gestionar perfiles
– Implementar funciones estándar de seguridad de
contraseña
– Controlar el uso de recursos por los usuarios

Copyright © 2005, Oracle. Todos los derechos reservados.

Objetivos
Los siguientes términos están relacionados con la administración de usuarios de base de datos y
le ayudarán a comprender los objetivos:
Una cuenta de usuario de base de datos es un medio de organizar la propiedad y el acceso a
objetos de base de datos.
Una contraseña es una autenticación por parte de la base de datos Oracle.
Un privilegio es un derecho para ejecutar un tipo concreto de sentencia SQL o para acceder a un
objeto de otro usuario.
Un rol es un grupo con nombre de privilegios relacionados que se otorgan a los usuarios o a
otros roles.
Los perfiles imponen un juego con nombre de límites de recursos en cuanto al uso de la base de
datos y de los recursos de la instancia.
La cuota es un espacio asignado en un tablespace determinado. Es uno de los métodos mediante
el cual puede controlar el uso de recursos por parte de los usuarios.

Base de Datos Oracle 10g: Taller de Administración I 6-2


> Usuario
Autenticación
Cuentas de Usuario Privilegio
Rol
de Base de Datos Perfil
Seguridad con
Contraseña
Cuota

Cada cuenta de usuario de base de datos tiene lo


siguiente:
• Nombre de usuario único
• Método de autenticación

Oracle Internal & Oracle Academy Use Only


• Tablespace por defecto
• Tablespace temporal
• Perfil de usuario
• Grupo de consumidores
• Estado de bloqueo

Copyright © 2005, Oracle. Todos los derechos reservados.

Cuentas de Usuario de Base de Datos


Para acceder a la base de datos, un usuario debe especificar una cuenta de usuario de base de
datos válida y autenticarse correctamente según los requisitos de dicha cuenta de usuario. Cada
usuario de base de datos tiene su propia cuenta de base de datos. Esta es la práctica recomendada
por Oracle para evitar posibles agujeros en la seguridad y proporcionar datos significativos para
ciertas actividades de auditoría. Sin embargo, en algunos casos, los usuarios comparten una
cuenta de base de datos común. En este caso, el sistema operativo y las aplicaciones deben
proporcionar la seguridad adecuada para la base de datos. Cada cuenta de usuario tiene lo
siguiente:
• Nombre de usuario único: Los nombres de usuario no pueden superar los 30 bytes ni
contener caracteres especiales y deben empezar por una letra.
• Método de autenticación: El método de autenticación más común es una contraseña, pero
la base de datos Oracle 10g soporta otros métodos de autenticación, entre los que se
incluyen la autenticación biométrica, mediante certificado y mediante elemento.
• Tablespace por defecto: Éste es el lugar en el que el usuario creará objetos si no
especifica ningún otro tablespace. Tenga en cuenta que disponer de un tablespace por
defecto no implica que el usuario tenga el privilegio de crear objetos en dicho tablespace,
ni tampoco que tenga una cuota de espacio en dicho tablespace en la que crear objetos.
Ambos se otorgan por separado.

Base de Datos Oracle 10g: Taller de Administración I 6-3


Cuentas de Usuario de Base de Datos (continuación)
• Tablespace temporal: Es un lugar en el que el usuario puede crear objetos temporales
como, por ejemplo, ordenaciones y tablas temporales.
• Perfil de usuario: Es un juego de restricciones de recurso y contraseña asignadas al
usuario.
• Grupo de consumidores: Es una opción utilizada por el gestor de recursos.
• Estado de bloqueo: Los usuarios sólo pueden acceder a las cuentas “desbloqueadas”.

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g: Taller de Administración I 6-4


Cuentas Predefinidas: SYS y SYSTEM

• La cuenta SYS:
– Tiene el rol DBA otorgado
– Tiene todos los privilegios con ADMIN OPTION
– Es necesaria para el inicio, el cierre y para algunos
comandos de mantenimiento

Oracle Internal & Oracle Academy Use Only


– Es propietaria del diccionario de datos
– Es propietaria del repositorio de carga de trabajo
automática (AWR)
• La cuenta SYSTEM tiene otorgado el rol DBA.
• Estas cuentas no se utilizan para operaciones
rutinarias.

Copyright © 2005, Oracle. Todos los derechos reservados.

Cuentas Predefinidas: SYS y SYSTEM


Las cuentas SYS y SYSTEM tienen otorgado por defecto el rol de administrador de base de datos
(DBA).
La cuenta SYS tiene además todos los privilegios con la opción ADMIN OPTION y es propietaria
del diccionario de datos. Para conectarse a la cuenta SYS es necesario utilizar la cláusula AS
SYSDBA. Cualquier usuario al que se le otorgue el privilegio SYSDBA puede conectarse a la
cuenta SYS mediante la cláusula AS SYSDBA. Sólo los usuarios con “privilegios”, a los que se
les otorga el privilegio SYSDBA o SYSOPER, pueden iniciar y cerrar la instancia de base de
datos.
A la cuenta SYSTEM se le otorga el rol DBA por defecto, pero no el privilegio SYSDBA.
Práctica recomendada: Debido a la aplicación del principio de privilegio más bajo, estas
cuentas no se utilizan para operaciones rutinarias. Los usuarios que necesiten privilegios DBA
tienen cuentas separadas a las que se les otorgan los privilegios necesarios. Por ejemplo, Jim
tiene una cuenta de privilegio bajo denominada jim y una cuenta con privilegios denominada
jim_dba. Este método permite aplicar el principio de privilegio más bajo, elimina la necesidad
de compartir cuentas y permite auditar acciones individuales.
Las cuentas SYS y SYSTEM son cuentas necesarias en la base de datos. No se pueden eliminar.

Base de Datos Oracle 10g: Taller de Administración I 6-5


Creación de un Usuario

Oracle Internal & Oracle Academy Use Only


Seleccionar Administration > Schema > Users &
Privileges > Users y, a continuación, hacer clic en el
botón Create.

Copyright © 2005, Oracle. Todos los derechos reservados.

Creación de un Usuario
En Enterprise Manager, puede gestionar la lista de usuarios de base de datos que pueden acceder
a la base de datos actual mediante la página Users. Puede utilizar esta página para crear, suprimir
y modificar los valores de un usuario.
Para crear un usuario de base de datos, realice los siguientes pasos:
1. En Enterprise Manager Database Control, seleccione Administration > Schema > Users &
Privileges > Users.
2. Haga clic en el botón Create.
Proporcione la información necesaria. Los elementos obligatorios, como Name, aparecen
marcados con un asterisco.
Las siguientes páginas le proporcionan más información sobre la autenticación. Los perfiles se
tratarán más adelante en esta lección.
Asigne un tablespace por defecto y un tablespace temporal a cada usuario. De esta forma puede
controlar dónde se crean sus objetos, en el caso de que los usuarios no especifiquen un
tablespace durante la creación de un objeto.
Si no selecciona un tablespace por defecto, se utiliza el permanente por defecto definido por el
sistema. Lo mismo sucede con el tablespace temporal: si no especifica ninguno, se utiliza el
tablespace temporal definido por el sistema.

Base de Datos Oracle 10g: Taller de Administración I 6-6


Usuario
> Autenticación
Autenticación de Usuarios Privilegio
Rol
Perfil
Seguridad con
Contraseña
Cuota
• Password
• External
• Global

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Autenticación de Usuarios
La autenticación significa verificar la identidad de alguien (un usuario, dispositivo u otra
entidad) que desea utilizar datos, recursos o aplicaciones. La validación de dicha identidad
establece una relación de confianza para una mayor interacción. La autenticación también
permite establecer responsabilidades al posibilitar el enlace de acceso y acciones con
identidades concretas. Tras la autenticación, los procesos de autorización pueden permitir o
limitar los niveles de acceso y acción permitidos para dicha entidad.
Al crear un usuario, debe decidir la técnica de autenticación que se va a utilizar y que se podrá
modificar posteriormente.
Password: También denominada autenticación por la base de datos Oracle. Cree cada usuario
con una contraseña asociada que se debe proporcionar cuando el usuario intente establecer una
conexión. Al configurar una contraseña, puede establecer que venza inmediatamente, lo que
obliga al usuario a cambiar la contraseña después de la primera conexión. Si decide utilizar el
vencimiento de contraseñas de usuario, asegúrese de que los usuarios pueden cambiar la
contraseña. Algunas aplicaciones no tienen esta función.
Las contraseñas siempre se cifran de forma automática y transparente durante las conexiones de
red (cliente/servidor y servidor/servidor) mediante un algoritmo modificado Data Encryption
Standard (DES) antes de enviarlas por la red.

Base de Datos Oracle 10g: Taller de Administración I 6-7


Autenticación de Usuarios (continuación)
External: También se denomina autenticación por el sistema operativo. Los usuarios se
pueden conectar a la base de datos Oracle sin especificar un nombre de usuario o contraseña.
Con la autenticación externa, la base de datos confía en el servicio de autenticación de red o
del sistema operativo subyacente para restringir el acceso a cuentas de base de datos. No se
utiliza ninguna contraseña de base de datos para este tipo de conexión. Si el servicio de red o
del sistema operativo lo permite, éste podrá autenticar usuarios. Si es así, defina el parámetro
de inicialización OS_AUTHENT_PREFIX y utilice este prefijo en los nombres de usuario
Oracle. El parámetro OS_AUTHENT_PREFIX define un prefijo que la base de datos Oracle
agrega al principio del nombre de cuenta de sistema operativo de cada usuario. El valor por
defecto de este parámetro es OPS$ para la compatibilidad con versiones anteriores del
software de Oracle. La base de datos Oracle compara el nombre de usuario con prefijo con los
nombres de usuario Oracle de la base de datos cuando un usuario intenta conectarse. Por
ejemplo, suponga que OS_AUTHENT_PREFIX se ha definido de la siguiente forma:

Oracle Internal & Oracle Academy Use Only


OS_AUTHENT_PREFIX=OPS$
Si un usuario con una cuenta de sistema operativo denominada tsmith se tiene que conectar
a una base de datos Oracle y lo va a autenticar el sistema operativo, la base de datos Oracle
comprueba si hay un usuario de base de datos OPS$tsmith correspondiente y, si es así,
permite al usuario conectarse. Todas las referencias a un usuario autenticado por el sistema
operativo deben incluir el prefijo, como se ve en OPS$tsmith.
Nota: El texto del parámetro de inicialización OS_AUTHENT_PREFIX es sensible a
mayúsculas/minúsculas en algunos sistemas operativos. Consulte la documentación de Oracle
específica para el sistema operativo si desea más información sobre este parámetro de
inicialización.
Global: Mediante la opción Oracle Advanced Security, la autenticación global (que es una
autenticación potente) permite identificar usuarios mediante biométrica, certificados X509,
dispositivos de elemento y Oracle Internet Directory. Para obtener más información sobre
métodos de autenticación avanzados, consulte el curso Oracle Enterprise Identity
Management.

Base de Datos Oracle 10g: Taller de Administración I 6-8


Autenticación de Administradores
Seguridad del Sistema Operativo
• Los DBA deben tener privilegios del sistema operativo
para crear y suprimir archivos.
• Los usuarios típicos de base de datos no deben tener
privilegios del sistema operativo para crear o suprimir
archivos de base de datos.
Seguridad del Administrador

Oracle Internal & Oracle Academy Use Only


• Las conexiones SYSBA y SYSOPER se autorizan mediante
un archivo de contraseñas o el sistema operativo.
– La autenticación del archivo de contraseñas registra el
usuario DBA por el nombre.
– La autenticación del sistema operativo no registra el usuario
concreto.
– La autenticación del sistema operativo tiene prioridad sobre
la autenticación del archivo de contraseñas para SYSDBA y
SYSOPER.

Copyright © 2005, Oracle. Todos los derechos reservados.

Autenticación de Administradores
Seguridad del Sistema Operativo: En UNIX y Linux, por defecto, los DBA pertenecen al
grupo del sistema operativo install, que posee los privilegios necesarios para crear y
suprimir archivos de base de datos.
Seguridad del Administrador: Las conexiones SYSBA y SYSOPER se autorizan únicamente
después de la verificación con el archivo de contraseñas o con los privilegios y los permisos
del sistema operativo. Si se utiliza la autenticación del sistema operativo, la base de datos no
utiliza el nombre de usuario y contraseña proporcionados. La autenticación del sistema
operativo se utiliza si no existe archivo de contraseñas, si el nombre de usuario o la contraseña
proporcionados no están en ese archivo o si no se proporciona ningún nombre de usuario y
contraseña.
No obstante, si la autenticación se produce mediante el archivo de contraseñas, la conexión se
registra con el nombre de usuario. Si la autenticación se produce a través del sistema
operativo, entonces es una conexión CONNECT / que no registra el usuario concreto.
Nota: La autenticación del sistema operativo tiene prioridad sobre la autenticación del archivo
de contraseñas. En concreto, si es miembro del grupo OSDBA u OSOPER del sistema
operativo y se conecta como SYSDBA o SYSOPER, lo hará con los privilegios administrativos
asociados independientemente del nombre de usuario y contraseña que especifique.

Base de Datos Oracle 10g: Taller de Administración I 6-9


Desbloqueo de Cuentas de Usuario y
Restablecimiento de Contraseñas

Oracle Internal & Oracle Academy Use Only


Seleccionar el usuario y hacer clic en Unlock User.

Copyright © 2005, Oracle. Todos los derechos reservados.

Desbloqueo de Cuentas de Usuario y Restablecimiento de Contraseñas


Durante la instalación y la creación de la base de datos puede desbloquear y restablecer muchas
de las cuentas de usuario de base de datos proporcionadas por Oracle. Si no ha seleccionado
desbloquear las cuentas de usuario en ese momento, puede desbloquear los usuarios y restablecer
las contraseñas si selecciona el usuario en la página Users y hace clic en Unlock User.
Como alternativa, en la página Edit Users puede realizar los siguientes pasos:
1. Introduzca la nueva contraseña en los campos Enter Password y Confirm Password.
2. Active la casilla de control Unlocked.
3. Haga clic en Apply para restablecer la contraseña y desbloquear la cuenta de usuario.

Base de Datos Oracle 10g: Taller de Administración I 6-10


Usuario
Autenticación
Privilegios > Privilegio
Rol
Perfil
Seguridad con
Hay dos tipos de privilegios de usuario: Contraseña
Cuota
• Sistema: Permite a los usuarios realizar
acciones concretas en la base de datos
• Objeto: Permite a los usuarios acceder y
manipular un objeto concreto

Oracle Internal & Oracle Academy Use Only


HR_DBA

Privilegio de objeto: Privilegio del sistema:


Actualizar empleados. Crear sesión.

Copyright © 2005, Oracle. Todos los derechos reservados.

Privilegios
Un privilegio es un derecho para ejecutar un tipo concreto de sentencia SQL o para acceder a un
objeto de otro usuario. La base de datos Oracle le permite controlar lo que los usuarios pueden o
no pueden hacer en la base de datos. Los privilegios se dividen en dos categorías:
• Privilegios del sistema: Cada privilegio del sistema permite a un usuario realizar una
operación de base de datos concreta o una clase de operaciones de base de datos. Por
ejemplo, el privilegio para crear tablespaces es un privilegio del sistema. Estos privilegios
los puede otorgar el administrador o alguien a quién se le haya proporcionado
explícitamente permiso para administrar el privilegio. Existe más de cien privilegios del
sistema distintos. Muchos de ellos contienen la cláusula ANY.
• Privilegios de objeto: Los privilegios de objeto permiten a un usuario realizar una acción
concreta en un objeto determinado, como una tabla, una vista, una secuencia, un
procedimiento, una función o un paquete. Sin el permiso concreto, los usuarios sólo pueden
acceder a sus propios objetos. Estos privilegios los puede otorgar el propietario de un
objeto, el administrador o alguien al que se le haya proporcionado explícitamente permiso
para otorgar privilegios sobre el objeto.

Base de Datos Oracle 10g: Taller de Administración I 6-11


Privilegios del Sistema

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Privilegios del Sistema


Para otorgar privilegios del sistema, haga clic en el separador Systems Privileges de la página
Edit User. Seleccione los privilegios apropiados de la lista de privilegios disponibles y muévalos
a la lista Selected System Privileges haciendo clic en la flecha Move.
Otorgar un privilegio con la cláusula ANY significa que el privilegio traspasa las líneas del
esquema. Por ejemplo, el privilegio CREATE TABLE le permite crear una tabla, pero sólo en su
propio esquema. El privilegio SELECT ANY TABLE le permite realizar selecciones en tablas
propiedad de otros usuarios.
Si se activa la casilla de control Admin Option, podrá administrar el privilegio del sistema y
otorgarlo a otros usuarios.
Considere detenidamente los requisitos de seguridad antes de otorgar permisos del sistema.
Algunos privilegios del sistema se suelen otorgar sólo a los administradores:
• RESTRICTED SESSION: Este privilegio le permite conectarse incluso si la base de datos
se ha abierto en modo restringido.

Base de Datos Oracle 10g: Taller de Administración I 6-12


Privilegios del Sistema (continuación)
• SYSDBA y SYSOPER: Estos privilegios le permiten cerrar, iniciar y realizar una operación
de recuperación y demás tareas administrativas en la base de datos. SYSOPER permite a un
usuario realizar tareas operativas básicas pero sin la capacidad de ver los datos de usuarios.
Incluye los siguientes privilegios del sistema:
- STARTUP y SHUTDOWN
- CREATE SPFILE
- ALTER DATABASE OPEN/MOUNT/BACKUP
- ALTER DATABASE ARCHIVELOG
- ALTER DATABASE RECOVER (Sólo recuperación completa. Cualquier tipo de
recuperación incompleta, como UNTIL TIME|CHANGE|CANCEL|CONTROLFILE,
necesita una conexión como SYSDBA.)
- RESTRICTED SESSION

Oracle Internal & Oracle Academy Use Only


El privilegio del sistema SYSDBA autoriza además la recuperación incompleta y la
supresión de una base de datos. De hecho, el privilegio del sistema SYSDBA permite a un
usuario conectarse como usuario SYS.
• DROP ANY object: El privilegio DROP ANY le permite suprimir objetos propiedad de
otros usuarios de esquema.
• CREATE, MANAGE, DROP y ALTER TABLESPACE: Estos privilegios permiten la
administración de tablespaces, incluida la creación, el borrado y el cambio de sus atributos.
• CREATE ANY DIRECTORY: La base de datos Oracle permite a los desarrolladores llamar
a código externo (por ejemplo, una biblioteca C) desde PL/SQL. Como medida de
seguridad, el directorio del sistema operativo en el que reside el código debe estar enlazado
a un objeto de directorio Oracle virtual. Con el privilegio CREATE ANY DIRECTORY,
podría llamar a objetos de código no seguros.
El privilegio CREATE ANY DIRECTORY permite a un usuario crear un objeto de directorio
(con acceso de lectura y escritura) en cualquier directorio al que el propietario del software
de Oracle pueda acceder. Esto significa que el usuario puede acceder a procedimientos
externos en esos directorios. El usuario puede intentar leer y escribir cada archivo de base
de datos directamente, ya sean archivos de datos, redo logs y logs de auditoria. Asegúrese
de que su organización posee una estrategia de seguridad que evita que se haga un uso
incorrecto de privilegios potentes como éste.
• GRANT ANY OBJECT PRIVILEGE: Este privilegio le permite otorgar permisos sobre
objetos que no le pertenecen.
• ALTER DATABASE y ALTER SYSTEM: Estos privilegios son muy potentes y le permiten
modificar la base de datos y la instancia de Oracle como, por ejemplo, cambiar el nombre
de un archivo de datos o vaciar la caché de buffers.

Base de Datos Oracle 10g: Taller de Administración I 6-13


Privilegios de Objeto

Oracle Internal & Oracle Academy Use Only


Para otorgar privilegios de
objeto, realice estas tareas:
1. Seleccione el tipo de objeto.
2. Seleccione objetos.
3. Seleccione privilegios.

Copyright © 2005, Oracle. Todos los derechos reservados.

Privilegios de Objeto
Para otorgar privilegios de objeto, haga clic en el separador Object Privileges de la página Edit
User. Seleccione el tipo de objeto para el que desea otorgar los privilegios y haga clic en el botón
Add. Para seleccionar los objetos para los que desea otorgar privilegios, introduzca
<nombre_usuario.nombre_objeto> o selecciónelos en la lista.
A continuación, seleccione los privilegios adecuados de la lista Available Privileges y haga clic
en el botón Move. Cuando termine de seleccionar los privilegios, haga clic en OK.
De nuevo en la página Edit User, active la casilla de control Grant si este usuario puede otorgar
el mismo acceso a otros usuarios.

Base de Datos Oracle 10g: Taller de Administración I 6-14


Revocación de Privilegios del Sistema
con ADMIN OPTION
DBA Jeff Emi
Usuario

OTORGAR
Privilegio

Objeto

Oracle Internal & Oracle Academy Use Only


DBA Jeff Emi
REVOCAR

REVOKE CREATE
TABLE FROM jeff;

Copyright © 2005, Oracle. Todos los derechos reservados.

Revocación de Privilegios del Sistema


Los privilegios del sistema, que se han otorgado directamente con un comando GRANT, se
pueden revocar mediante la sentencia SQL REVOKE. Los usuarios con el privilegio del sistema
ADMIN OPTION pueden revocar el privilegio de cualquier otro usuario de la base de datos. El
usuario que lleva a cabo la revocación no tiene que ser el mismo que inicialmente otorgó el
privilegio.
No hay ningún efecto en cascada cuando se revoca un privilegio del sistema,
independientemente de si se le aplica el privilegio ADMIN OPTION.
Lea los siguientes pasos que ilustran este caso:
Supuestos
1. El DBA otorga el privilegio del sistema CREATE TABLE a Jeff con ADMIN OPTION.
2. Jeff crea una tabla.
3. Jeff otorga el privilegio del sistema CREATE TABLE a Emi.
4. Emi crea una tabla.
5. El DBA revoca el privilegio del sistema CREATE TABLE a Jeff.
Resultado
La tabla de Jeff aún existe, pero no se pueden crear nuevas tablas.
La tabla de Emi aún existe y todavía posee el privilegio del sistema CREATE TABLE.

Base de Datos Oracle 10g: Taller de Administración I 6-15


Revocación de Privilegios de Objeto
con GRANT OPTION
Bob Jeff Emi
OTORGAR

Oracle Internal & Oracle Academy Use Only


REVOCAR Bob Jeff Emi

Copyright © 2005, Oracle. Todos los derechos reservados.

Revocación de Privilegios de Objeto


Se pueden observar efectos en cascada cuando se revoca un privilegio del sistema relacionado
con una operación de lenguaje de manipulación de datos (DML). Por ejemplo, si se otorga el
privilegio SELECT ANY TABLE a un usuario y ese usuario ha creado procedimientos que
utilizan la tabla, todos los procedimientos contenidos en el esquema del usuario se tienen que
recompilar antes de que se puedan utilizar de nuevo.
La revocación de privilegios de objeto también produce efectos en cascada mediante WITH
GRANT OPTION.
Lea los siguientes pasos que ilustran este caso:
Supuestos
1. A Jeff se le otorga el privilegio de objeto SELECT sobre EMPLOYEES con GRANT
OPTION.
2. Jeff otorga el privilegio SELECT sobre EMPLOYEES a Emi.
3. A continuación, a Jeff se le revoca el privilegio SELECT. Esta revocación tiene un efecto
en cascada y se aplica también a Emi.

Base de Datos Oracle 10g: Taller de Administración I 6-16


Usuario
Autenticación
Ventajas de los Roles Privilegio
> Rol
Perfil
Seguridad con
Contraseña
Cuota
• Gestión de privilegios más sencilla
• Gestión de privilegios dinámica
• Disponibilidad selectiva de privilegios

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Ventajas de los Roles


• Gestión de privilegios más sencilla: Utilice roles para simplificar la gestión de privilegios.
En lugar de otorgar el mismo juego de privilegios a varios usuarios, puede otorgar los
privilegios a un rol y, a continuación, otorgar dicho rol a cada usuario.
• Gestión de privilegios dinámica: Si se modifican los privilegios asociados a un rol, todos
los usuarios a los que se haya otorgado dicho rol adquieren los privilegios modificados de
forma automática e inmediata.
• Disponibilidad selectiva de privilegios: Los roles se pueden activar o desactivar para
activar o desactivar privilegios temporalmente. La activación de un rol también se puede
utilizar para verificar si se ha otorgado dicho rol a un usuario.

Base de Datos Oracle 10g: Taller de Administración I 6-17


Asignación de Privilegios a Roles y de
Roles a Usuarios

Usuarios
Jenny David Rachel

Roles HR_CLERK

Oracle Internal & Oracle Academy Use Only


HR_MGR

Privilegios Suprimir Seleccionar Actualizar


empleados. empleados. empleados.

Insertar
empleados.

Copyright © 2005, Oracle. Todos los derechos reservados.

Asignación de Privilegios a Roles y de Roles a Usuarios


En la mayoría de sistemas, se tarda demasiado en otorgar los privilegios necesarios a cada
usuario de forma individual y hay muchas posibilidades de que se produzca un error. El software
de Oracle permite una gestión de privilegios sencilla y controlada mediante roles. Los roles son
grupos con nombre de privilegios relacionados que se otorgan a los usuarios o a otros roles. Los
roles están diseñados para facilitar la administración de privilegios en la base de datos y, por lo
tanto, mejorar la seguridad.
Características de los Roles
• Se otorgan y revocan privilegios de los roles como si el rol fuera un usuario.
• Se pueden otorgar y revocar roles de usuarios o de otros roles como si fueran privilegios
del sistema.
• Un rol puede constar de privilegios del sistema y de objeto.
• Un rol se puede activar o desactivar para cada usuario al que se le otorgue dicho rol.
• Un rol puede necesitar la activación de una contraseña.
• Los roles no son propiedad de nadie y no están en ningún esquema.
En el ejemplo de la diapositiva, al rol HR_CLERK se le otorgan privilegios SELECT y UPDATE
en la tabla employees. Al rol HR_MGR se le otorgan los privilegios DELETE e INSERT en la
tabla employees y el rol HR_CLERK. Se otorga el rol HR_MGR al superior y éste puede ahora
realizar selecciones, supresiones, inserciones y actualizaciones en la tabla employees.

Base de Datos Oracle 10g: Taller de Administración I 6-18


Roles Predefinidos

CONNECT CREATE SESSION

RESOURCE CREATE CLUSTER, CREATE INDEXTYPE,


CREATE OPERATOR, CREATE PROCEDURE,
CREATE SEQUENCE, CREATE TABLE, CREATE
TRIGGER, CREATE TYPE
SCHEDULER_ CREATE ANY JOB, CREATE EXTERNAL JOB,

Oracle Internal & Oracle Academy Use Only


ADMIN CREATE JOB, EXECUTE ANY CLASS, EXECUTE
ANY PROGRAM, MANAGE SCHEDULER
DBA Tiene la mayoría de privilegios del sistema,
otros muchos roles. No otorgar a usuarios que
no sean administradores.
SELECT_ No tiene privilegios del sistema, pero sí
CATALOG_ HS_ADMIN_ROLE y más de 1.700 privilegios de
ROLE objeto en el diccionario de datos

Copyright © 2005, Oracle. Todos los derechos reservados.

Roles Predefinidos
Existen varios roles definidos automáticamente para bases de datos Oracle al ejecutar los
archivos de comandos de creación de bases de datos. CONNECT se otorga automáticamente a
cualquier usuario creado con Enterprise Manager. En versiones anteriores de la base de datos
(antes de la base de datos Oracle 10g Versión 2), el rol CONNECT incluía más privilegios, como
CREATE TABLE y CREATE DATABASE LINK, que se han eliminado por motivos de seguridad.
Nota: Tenga en cuenta que al otorgar el rol RESOURCE también se otorga el privilegio
UNLIMITED TABLESPACE.
Roles Funcionales
Se crean otros roles que le autorizan a administrar funciones especiales, cuando se instala esta
función. Por ejemplo, XDBADMIN contiene los privilegios necesarios para administrar la base de
datos XML (Extensible Markup Language) si esta función está instalada.
AQ_ADMINISTRATOR_ROLE proporciona privilegios para administrar el servicio de gestión de
colas avanzada. HS_ADMIN_ROLE incluye los privilegios necesarios para administrar servicios
heterogéneos. No debe modificar los privilegios otorgados a estos roles funcionales sin la ayuda
de los Servicios de Soporte Oracle porque podría desactivar involuntariamente funciones
necesarias.

Base de Datos Oracle 10g: Taller de Administración I 6-19


Creación de un Rol

Oracle Internal & Oracle Academy Use Only


Seleccionar Administration > Schema > Users & Privileges > Roles.

Copyright © 2005, Oracle. Todos los derechos reservados.

Creación de un Rol
Un rol es un grupo con nombre de privilegios relacionados que se otorgan a los usuarios o a
otros roles. Un DBA gestiona los privilegios mediante roles.
Para crear un rol, realice los siguientes pasos:
1. En Enterprise Manager Database Control, seleccione Administration > Schema > Users &
Privileges > Roles.
2. Haga clic en el botón Create.

Base de Datos Oracle 10g: Taller de Administración I 6-20


Roles Seguros
• Los roles pueden no ser roles por defecto.
SET ROLE vacationdba;

• Los roles se pueden proteger mediante la autenticación.

Oracle Internal & Oracle Academy Use Only


• Los roles también se pueden proteger mediante
programación.
CREATE ROLE secure_application_role
IDENTIFIED USING <nombre_procedimiento_seguridad>;

Copyright © 2005, Oracle. Todos los derechos reservados.

Roles Seguros
Los roles se suelen activar por defecto, lo que significa que si un rol se otorga a un usuario,
dicho usuario puede ejercer los privilegios asignados al rol. Es posible:
• Hacer que un rol no sea por defecto. Cuando el rol se otorga a un usuario, desactive la
casilla de control DEFAULT. El usuario debe ahora activar explícitamente el rol para
poder ejercer los privilegios de dicho rol.
• Exigir la autenticación adicional de un rol. La autenticación por defecto de un rol es None,
pero es posible exigir la autenticación adicional del rol para poder definirlo.
• Crear roles de aplicación seguros que se puedan activar sólo mediante la ejecución correcta
de un procedimiento PL/SQL. El procedimiento PL/SQL puede comprobar varias cosas
como, por ejemplo, la dirección de red del usuario, qué programa está ejecutando el
usuario, la hora del día o cualquier otro elemento necesario para proteger de forma
adecuada un grupo de permisos.

Base de Datos Oracle 10g: Taller de Administración I 6-21


Asignación de Roles a Usuarios

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Asignación de Roles a Usuarios


Un rol es un juego de privilegios que se pueden otorgar a usuarios o a otros roles. Puede utilizar
los roles para administrar privilegios de base de datos. Puede agregar privilegios a un rol y,
a continuación, otorgar dicho rol a un usuario. El usuario puede activar el rol y ejercer los
privilegios otorgados por el mismo. Un rol contiene todos los privilegios otorgados a dicho rol
y todos los privilegios de otros roles que se le hayan asignado.
Por defecto, Enterprise Manager otorga automáticamente el rol CONNECT a los usuarios nuevos.
De esta forma, los usuarios se pueden conectar a la base de datos y crear objetos de base de datos
en sus propios esquemas.
Para asignar un rol a un usuario, realice los siguientes pasos:
1. En Enterprise Manager Database Control, seleccione Administration > Schema > Users &
Privileges > Users.
2. Seleccione el usuario y haga clic en el botón Edit.
3. Haga clic en el separador Roles y, a continuación, en el botón Edit List.
4. Seleccione el rol deseado en Available Roles y muévalo hasta Selected Roles.
5. Cuando haya asignado todos los roles adecuados, haga clic en el botón OK.

Base de Datos Oracle 10g: Taller de Administración I 6-22


Usuario
Autenticación
Perfiles y Usuarios Privilegio
Rol
> Perfil
Seguridad con
Contraseña
Cuota
A los usuarios sólo
se les asigna un perfil
en un momento
determinado.
Perfiles:

Oracle Internal & Oracle Academy Use Only


• Controlan el
consumo de
recursos
• Gestionan el
estado de las
cuentas y el
vencimiento de
las contraseñas

Copyright © 2005, Oracle. Todos los derechos reservados.

Perfiles y Usuarios
Los perfiles imponen un juego con nombre de límites de recursos en cuanto al uso de la base de
datos y de los recursos de la instancia. Los perfiles también gestionan el estado de las cuentas y
establecen limitaciones en cuanto a las contraseñas de usuarios (longitud, fecha de vencimiento,
etc.). Cada uno de los usuarios se asigna a un perfil y puede pertenecer sólo a un perfil en un
momento determinado. Si los usuarios ya se han conectado cuando cambia su perfil, el cambio no
se aplica hasta la siguiente conexión.
El perfil por defecto sirve como base para todos los demás perfiles. Como se ilustra en la diapositiva,
las limitaciones para un perfil pueden estar especificadas implícitamente (como en CPU/Session),
ser ilimitadas (como en CPU/Call) o hacer referencia al valor del perfil por defecto (como en
Connect Time).
Los perfiles no pueden imponer limitaciones de recursos a los usuarios a menos que el parámetro de
inicialización RESOURCE_LIMIT esté definido en TRUE. Si RESOURCE_LIMIT tiene su valor
por defecto FALSE, se ignoran las limitaciones del perfil.
Los perfiles permiten al administrador controlar los siguientes recursos del sistema:
• CPU: Los recursos de CPU pueden estar limitados por sesión o por llamada. Una limitación de
CPU/Session de 1.000 significa que si una sesión concreta que utiliza este perfil consume más
de 10 segundos de tiempo de CPU (las limitaciones de tiempo de CPU se miden en centésimas
de segundo), dicha sesión recibe un error y se desconecta:
ORA-02392: exceeded session limit on CPU usage, you are being
logged off

Base de Datos Oracle 10g: Taller de Administración I 6-23


Perfiles y Usuarios (continuación)
Una limitación por llamada tiene el mismo efecto, pero en lugar de limitar la sesión general
del usuario, evita que cualquier comando individual consuma demasiada CPU. Si CPU/Call
está limitada y el usuario supera la limitación, se abortará el comando y el usuario obtendrá
un mensaje de error como el siguiente:
ORA-02393: exceeded call limit on CPU usage
• Red/Memoria: Cada sesión de base de datos consume recursos de memoria del sistema y
(si la sesión es desde un usuario no local al servidor) recursos de red. Puede especificar lo
siguiente:
- Connect Time: Indica cuántos minutos puede estar conectado un usuario antes de que
se le desconecte automáticamente.
- Idle Time: Indica cuántos minutos puede permanecer inactiva la sesión de un usuario
antes de que se le desconecte automáticamente. El tiempo de inactividad se calcula
sólo para el proceso de servidor. No tiene en cuenta la actividad de la aplicación. El

Oracle Internal & Oracle Academy Use Only


límite IDLE_TIME no se ve afectado por consultas de larga duración ni otras
operaciones.
- Concurrent Sessions: Indica cuántas sesiones simultáneas se pueden crear mediante
una cuenta de usuario de base de datos
- Private SGA: Limita la cantidad de espacio consumido en el Área Global del Sistema
(SGA) para ordenación, fusión de bitmaps, etc. Esta restricción sólo tiene efecto si la
sesión utiliza un servidor compartido. (Los servidores compartidos se tratan en la
lección titulada “Configuración del Entorno de Red de Oracle”.)
• E/S de disco: Limita la cantidad de datos que un usuario puede leer en el nivel de sesión o
de llamada. Reads/Session y Reads/Call ponen una limitación en el número total de
lecturas de la memoria y del disco. Esto se puede llevar a cabo para asegurarse de que
ninguna sentencia que genere mucha entrada/salida (E/S) utilice demasiada memoria o
discos.
Los perfiles también permiten un límite compuesto. Los límites compuestos se basan en una
combinación ponderada de CPU/Session, Reads/Session, Connect Time y Private SGA. Los
límites compuestos se tratan más detalladamente en Oracle Database Security Guide.
Para crear un perfil, seleccione Administration > Schema > Users & Privileges > Profiles y haga
clic en el botón Create.
Nota: El Gestor de Recursos es una alternativa para muchos de los valores de perfil. Para
obtener más información sobre el Gestor de Recursos, consulte Oracle Database Administrator’s
Guide.

Base de Datos Oracle 10g: Taller de Administración I 6-24


Usuario
Autenticación
Implementación de las Funciones Privilegio
Rol
de Seguridad con Contraseña Perfil
> Seguridad con
Contraseña
Cuota

Verificación de la
Historial de complejidad de
contraseñas las contraseñas

Oracle Internal & Oracle Academy Use Only


Usuario Configuración
de perfiles

Antigüedad y Bloqueo de
vencimiento de cuentas
contraseñas
Nota: No utilice perfiles que provoquen el vencimiento de las
contraseñas SYS, SYSMAN, y DBSNMP y el bloqueo de las cuentas.

Copyright © 2005, Oracle. Todos los derechos reservados.

Implementación de las Funciones de Seguridad con Contraseña


La gestión de contraseñas de Oracle se implementa con perfiles de usuario. Los perfiles pueden
proporcionar varias funciones estándar de seguridad, incluidas las siguientes:
Bloqueo de cuentas: Permite el bloqueo automático de cuentas durante un período definido
cuando los usuarios no han podido conectarse al sistema en el número especificado de intentos.
• Los parámetros FAILED_LOGIN_ATTEMPTS especifican el número de intentos fallidos de
conexión antes del bloqueo de la cuenta.
• El parámetro PASSWORD_LOCK_TIME especifica el número de días que se bloqueará la
cuenta tras un número concreto de intentos fallidos de conexión.
Antigüedad y vencimiento de contraseñas: Permite a las contraseñas de usuario tener una
duración concreta, tras la cual vencen y se deben cambiar.
• El parámetro PASSWORD_LIFE_TIME determina la duración en días tras la que vencerá la
contraseña.
• El parámetro PASSWORD_GRACE_TIME especifica un período de gracia en días para
cambiar la contraseña después de la primera conexión correcta una vez que haya vencido la
contraseña.
Nota: El vencimiento de las contraseñas y el bloqueo de las cuentas SYS, SYSMAN, y DBSNMP
impiden que Enterprise Manager funcione adecuadamente. Las aplicaciones deben detectar el
mensaje de advertencia de contraseña vencida y manejar el cambio de contraseña. De lo contrario,
el período de gracia vence y se bloquea el usuario sin que este sepa la razón.

Base de Datos Oracle 10g: Taller de Administración I 6-25


Implementación de las Funciones de Seguridad con Contraseña (continuación)
Historial de contraseñas: Comprueba la nueva contraseña para garantizar que ésta no se
vuelve a utilizar durante un período especificado o un número concreto de cambios de
contraseña. Estas comprobaciones se pueden implementar de una de las siguientes formas:
• PASSWORD_REUSE_TIME: Especifica que un usuario no puede volver a utilizar una
contraseña durante un número de días determinado.
• PASSWORD_REUSE_MAX: Especifica el número de cambios de contraseña necesarios
antes de que se pueda volver a utilizar la contraseña actual.
Estos dos parámetros se excluyen mutuamente, por lo que cuando uno de los parámetros se
define en un valor que no sea UNLIMITED (o DEFAULT si el valor del perfil DEFAULT está
definido en UNLIMITED), el otro parámetro se debe definir en UNLIMITED.
Verificación de la complejidad de las contraseñas: Realiza una comprobación de la
complejidad de la contraseña para verificar que cumple determinadas reglas. La comprobación

Oracle Internal & Oracle Academy Use Only


se debe asegurar que la contraseña es lo suficientemente compleja para proporcionar
protección contra intrusos que puedan intentar entrar en el sistema adivinando la contraseña.
El parámetro PASSWORD_VERIFY_FUNCTION asigna una función PL/SQL que realiza una
comprobación de la complejidad de las contraseñas antes de asignar una. Las funciones de
verificación de contraseñas deben ser propiedad del usuario SYS y deben devolver un valor
booleano (TRUE o FALSE).

Base de Datos Oracle 10g: Taller de Administración I 6-26


Creación de un Perfil de Contraseña

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Creación de un Perfil de Contraseña


Para crear un perfil de contraseña, seleccione Administration > Schema > Users & Privileges >
Profiles y haga clic en el botón Create.
Se pueden seleccionar de una lista los valores comunes para cada una de las opciones (haga clic
en el icono de linterna para examinar) o bien puede introducir un valor personalizado.
Todos los períodos de tiempo están expresados en días, pero también se pueden expresar como
fracciones. Hay 1.440 minutos en un día, por lo tanto 5/1440 son cinco minutos.
Enterprise Manager también se puede utilizar para editar perfiles de contraseña existentes.
Borrado de un Perfil de Contraseña
En Enterprise Manager, no se puede borrar un perfil utilizado por usuarios. Sin embargo, si borra
un perfil con la opción CASCADE (en SQL*Plus, por ejemplo), a todos los usuarios con ese
perfil se les asigna de forma automática el perfil DEFAULT.

Base de Datos Oracle 10g: Taller de Administración I 6-27


Función de Verificación de Contraseñas
Proporcionadas: VERIFY_FUNCTION

La función de verificación de contraseñas proporcionadas


aplica las siguientes restricciones de contraseña:
• La longitud mínima es de cuatro caracteres.
• La contraseña no puede ser igual que el nombre de
usuario.

Oracle Internal & Oracle Academy Use Only


• La contraseña debe tener al menos un carácter
alfabético, uno numérico y uno especial.
• La contraseña debe ser diferente de la contraseña
anterior en al menos tres letras.
Consejo: Utilice esta función como plantilla para crear
su propia verificación de contraseñas personalizada.

Copyright © 2005, Oracle. Todos los derechos reservados.

Función de Verificación de Contraseñas Proporcionadas: VERIFY_FUNCTION


El servidor de Oracle proporciona una función de verificación de la complejidad de las
contraseñas denominada VERIFY_FUNCTION. Esta función se crea con el archivo de
comandos <oracle_home>/rdbms/admin/utlpwdmg.sql. La función de verificación
de la complejidad de las contraseñas se debe crear en el esquema SYS. Se puede utilizar como
plantilla para su verificación de contraseñas personalizada.
Además de crear VERIFY_FUNCTION, el archivo de comandos utlpwdmg también cambia el
perfil DEFAULT con el siguiente comando ALTER PROFILE:
ALTER PROFILE default LIMIT
PASSWORD_LIFE_TIME 60
PASSWORD_GRACE_TIME 10
PASSWORD_REUSE_TIME 1800
PASSWORD_REUSE_MAX UNLIMITED
FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME 1/1440
PASSWORD_VERIFY_FUNCTION verify_function;
Recuerde que cuando se crean usuarios, se les asigna el perfil DEFAULT a menos que se
especifique otro.

Base de Datos Oracle 10g: Taller de Administración I 6-28


Usuario
Autenticación
Asignación de Cuota Privilegio
Rol
a Usuarios Perfil
Seguridad con
Contraseña
> Cuota

Se debe asignar una cuota a los usuarios que no


tienen el privilegio del sistema UNLIMITED
TABLESPACE para que puedan crear objetos en un
tablespace. Las cuotas pueden ser:
• Un valor concreto en megabytes o kilobytes

Oracle Internal & Oracle Academy Use Only


• Ilimitadas

Copyright © 2005, Oracle. Todos los derechos reservados.

Asignación de Cuota a Usuarios


La cuota es un espacio asignado en un tablespace determinado. Por defecto, un usuario no tiene
ninguna cuota en ningún tablespace. Dispone de tres opciones para proporcionar una cuota de
usuario en un tablespace.
• Unlimited: Permite al usuario utilizar todo el espacio disponible en el tablespace.
• Value: Es un número de kilobytes o megabytes que el usuario puede utilizar. Esto no
garantiza que el espacio se reserve para el usuario. Este valor puede ser mayor o menor que
el espacio actual disponible en el tablespace.
• Privilegio del sistema UNLIMITED TABLESPACE: Este privilegio del sistema sustituye
a todas las cuotas de tablespace individuales y proporciona al usuario una cuota ilimitada
en todos los tablespaces, incluidos SYSTEM y SYSAUX. Este privilegio se debe otorgar con
cautela.
Nota: Tenga en cuenta que al otorgar el rol RESOURCE también se otorga este privilegio.
No debe proporcionar cuota a los usuarios en el tablespace SYSTEM o SYSAUX. Normalmente,
sólo los usuarios SYS y SYSTEM deben poder crear objetos en el tablespace SYSTEM o
SYSAUX.
No necesita cuota en un tablespace temporal asignado ni en ningún tablespace de deshacer.

Base de Datos Oracle 10g: Taller de Administración I 6-29


Asignación de Cuota a Usuarios (continuación)
• ¿Cuándo utiliza cuotas la instancia de Oracle?
Las cuotas se utilizan cuando un usuario crea o amplía un segmento.
• ¿Qué actividades no cuentan para la cuota?
Las actividades que no utilizan espacio en el tablespace asignado no afectan a la cuota,
como la creación de vistas o el uso de tablespaces temporales.
• ¿Cuándo se repone una cuota?
La cuota se repone cuando los objetos propiedad del usuario se borran con la cláusula
PURGE o los objetos de la papelera de reciclaje se depuran automáticamente.

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g: Taller de Administración I 6-30


Resumen

En esta lección, debe haber aprendido lo siguiente:


• Crear y gestionar cuentas de usuario de base de datos
– Autenticar usuarios
– Asignar áreas de almacenamiento por defecto

Oracle Internal & Oracle Academy Use Only


(tablespaces)
• Otorgar y revocar privilegios
• Crear y gestionar roles
• Crear y gestionar perfiles
– Implementar funciones estándar de seguridad con
contraseña
– Controlar el uso de recursos por los usuarios

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 6-31


Visión General de la Práctica:
Administración de Usuarios

En esta práctica se abordan los siguientes temas:


• Creación de un perfil para limitar el consumo de
recursos
• Creación de dos roles:
– HRCLERK

Oracle Internal & Oracle Academy Use Only


– HRMANAGER
• Creación de cuatro usuarios nuevos:
– Un superior y dos oficinistas
– Un usuario de esquema para la próxima sesión
práctica

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 6-32


Gestión de Objetos de Esquema

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.
Objetivos

Al finalizar esta lección, debería estar capacitado para lo


siguiente:
• Definir objetos de esquema y tipos de dato
• Crear y modificar tablas
• Definir restricciones

Oracle Internal & Oracle Academy Use Only


• Visualizar las columnas y el contenido de una tabla
• Crear índices
• Crear vistas
• Crear secuencias
• Explicar el uso de tablas temporales
• Usar el diccionario de datos

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 7-2


> Esquema
¿Qué es un Esquema? Restricciones
Índices
Vistas
Secuencias
Tablas Temporales
Diccionario de Datos

Oracle Internal & Oracle Academy Use Only


propietario de

Esquema HR
Usuario HR

Copyright © 2005, Oracle. Todos los derechos reservados.

¿Qué es un Esquema?
Un esquema es una recopilación de objetos de base de datos propiedad de un usuario en
particular. Normalmente, en una base de datos de producción, este usuario no representa una
persona, sino una aplicación. Un esquema tiene el mismo nombre que el usuario propietario del
esquema. Los objetos de esquema son estructuras lógicas que hacen referencia directa a datos de
la base de datos. Los objetos de esquema incluyen estructuras como tablas, vistas e índices.
Puede crear y manipular objetos de esquema mediante SQL o Enterprise Manager. Cuando
utiliza Enterprise Manager, el SQL subyacente se genera automáticamente.
Nota: Un esquema no tiene que estar relacionado necesariamente de forma directa con un
tablespace. Puede definir configuraciones de modo que los objetos de un esquema puedan estar
en diferentes tablespaces, y un tablespace pueda contener objetos de diferentes esquemas.

Base de Datos Oracle 10g: Taller de Administración I 7-3


¿Qué es un Esquema? (continuación)
Al crear la base de datos, se crean automáticamente varios esquemas. Hay dos de especial
importancia:
• Esquema SYS: Contiene el diccionario de datos, como se describe en la sección titulada
“Administración de Seguridad del Usuario”.
• Esquema SYSTEM: Contiene tablas y vistas adicionales en las que se almacena
información administrativa. Se describe en la lección titulada “Administración de
Seguridad del Usuario”.
Durante una instalación completa de una base de datos Oracle, se instalan automáticamente
esquemas de ejemplo. Los esquemas de ejemplo sirven para proporcionar una plataforma común
para ejemplos de la documentación y el plan de estudios de Oracle. Son un juego de esquemas
entrelazados destinados a proporcionar ejemplos de diferentes niveles de complejidad e incluyen
lo siguiente:

Oracle Internal & Oracle Academy Use Only


• HR: El esquema Human Resources es un esquema sencillo para introducir temas básicos.
Una extensión de este esquema da soporte a las demostraciones de Oracle Internet
Directory.
• OE: El esquema Order Entry se emplea en asuntos de complejidad intermedia. Hay una
gran variedad de tipos de dato disponibles en el esquema OE. El subesquema OC (Online
Catalog) es una recopilación de objetos de base de datos objeto-relacional incorporados en
el esquema OE.
• PM: El esquema Product Media está dedicado a tipos de dato multimedia.
• QS: El esquema Queued Shipping contiene un juego de esquemas que se utilizan para
demostrar las capacidades de Oracle Advanced Queuing.
• SH: El esquema Sales History permite demostraciones con cantidades mayores de datos.
Una extensión de este esquema proporciona soporte para el procesamiento analítico
avanzado.

Base de Datos Oracle 10g: Taller de Administración I 7-4


Acceso a Objetos de Esquema

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Acceso a Objetos de Esquema


Puede acceder rápidamente a varios tipos de objetos de esquema desde la región Schema de la
página Database Administration.
Después de hacer clic en uno de los enlaces, se mostrará la página Results. En la región Search
de la página, puede introducir un nombre de esquema y un nombre de objeto para buscar un
objeto concreto. Además, puede buscar otros tipos de objetos en la región Search seleccionando
el tipo de objeto en la lista desplegable. La lista desplegable incluye tipos de objetos adicionales
que no se muestran como enlaces en la página Database Administration.

Base de Datos Oracle 10g: Taller de Administración I 7-5


Nomenclatura de Objetos de Base de Datos

• Los nombres deben tener de 1 a 30 bytes de longitud


con las siguientes excepciones:
– Los nombres de bases de datos se limitan a 8 bytes.
– Los nombres de enlaces de base de datos pueden tener
hasta 128 bytes de longitud.

Oracle Internal & Oracle Academy Use Only


• Los nombres sin entrecomillar no pueden ser
palabras reservadas de Oracle.
• Los nombres sin entrecomillar deben empezar por un
carácter alfabético del juego de caracteres de la base
de datos.
• No se recomiendan nombres entre
comillas.

Copyright © 2005, Oracle. Todos los derechos reservados.

Nomenclatura de Objetos de Base de Datos


Al asignar un nombre a un objeto de la base de datos, puede introducir el nombre con comillas
dobles (“”). Si lo hace, puede romper varias reglas de nomenclatura mencionadas en la
diapositiva. Sin embargo, no se recomienda esta operación porque si asigna un nombre a un
objeto de esta forma, siempre debe hacer referencia a él con el nombre entre comillas. Por
ejemplo, si asigna a una tabla el nombre “Local Temp”, debe realizar lo siguiente:
SQL> select * from "Local Temp";
TEMP_DATE LO_TEMP HI_TEMP
--------- ---------- ----------
01-DEC-03 30 41
Si no introduce adecuadamente el nombre en mayúsculas o minúsculas, recibirá un error:
SQL> select * from "local temp";
select * from "local temp"
*
ERROR at line 1:
ORA-00942: table or view does not exist
Los nombres sin entrecomillar se almacenan en mayúscula y no son sensibles a
mayúsculas/minúsculas. Cuando se procesa una sentencia SQL, los nombres sin entrecomillar se
convierten a mayúsculas.

Base de Datos Oracle 10g: Taller de Administración I 7-6


Nomenclatura de Objetos de Base de datos (continuación)
Los identificadores sin entrecomillar sólo pueden incluir caracteres alfanuméricos del juego de
caracteres de la base de datos y el carácter de subrayado (_), el signo del dólar ($) y el signo de
almohadilla numérica (#). Los enlaces de base de datos también pueden contener puntos (.) y el
signo de arroba (@). No se recomienda el uso de $ y # en identificadores sin entrecomillar.
Los identificadores entre comillas pueden incluir cualquier carácter y signo de puntuación, así
como espacios. Sin embargo, ni los identificadores entre comillas ni los sin entrecomillar pueden
contener comillas dobles.

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g: Taller de Administración I 7-7


Especificación de Tipos de Dato en Tablas
Tipos de dato comunes:
• CHAR(size [BYTE|CHAR]): Datos de tipo carácter
de longitud fija en bytes o caracteres especificada
por size
• VARCHAR2(size [BYTE|CHAR]): Cadena de
caracteres de longitud variable con una longitud
máxima en bytes o caracteres especificada por

Oracle Internal & Oracle Academy Use Only


size
• DATE: Rango de fechas válido del 1 de enero de
4712 AC hasta el 31 de diciembre de 9999 DC
• NUMBER(p,s): Número con precisión p y escala s

Copyright © 2005, Oracle. Todos los derechos reservados.

Especificación de Tipos de Dato en Tablas


Al crear una tabla, debe especificar un tipo de dato para cada una de sus columnas. Al crear un
procedimiento o función, debe especificar un tipo de dato para cada uno de sus argumentos.
Estos tipos de dato definen el dominio de valores que puede incluir cada columna o que puede
tener cada argumento.
Entre los tipos de dato incorporados en la base de datos Oracle se incluyen los siguientes:
• CHAR: Datos de tipo carácter de longitud fija en bytes o caracteres especificada por size.
El tamaño máximo es 2.000 bytes o caracteres, y el tamaño por defecto y mínimo es 1 byte.
- BYTE indica que la semántica de la columna es de longitud en byte.
- CHAR indica que la semántica de la columna es de caracteres.
• VARCHAR2: Cadena de caracteres de longitud variable con una longitud en bytes o
caracteres especificada por size. El tamaño máximo es 4.000 bytes. Debe especificar el
tamaño para VARCHAR2.
• DATE: Rango de fechas válido del 1 de enero de 4712 AC hasta el 31 de diciembre de
9999 DC. También almacena el tiempo: horas, minutos y segundos.
• NUMBER: Número que tiene precisión p y escala s. El rango de precisión es de 1 a 38. El
rango de escala es de -84 a 127.

Base de Datos Oracle 10g: Taller de Administración I 7-8


Especificación de Tipos de Dato en Tablas (continuación)
• BINARY_FLOAT: Es un número de coma flotante de 32 bits. Este tipo de dato necesita
5 bytes, incluido el byte de longitud.
• BINARY_DOUBLE: Es un número de coma flotante de 64 bits. Este tipo de dato necesita
9 bytes.
• FLOAT(p): Es un tipo de dato ANSI (American National Standards Institute). El tipo de
dato FLOAT es un número de coma flotante con precisión p binaria. La precisión por
defecto para este tipo de dato es 126 binaria o 38 decimal.
• INTEGER: Equivale a NUMBER(p,0).
• NCHAR(length): El tipo de dato NCHAR es sólo Unicode. Cuando crea una tabla con
una columna NCHAR, define la longitud de la columna en caracteres. El juego de caracteres
nacional se define al crear la base de datos. La longitud máxima de una columna viene
determinada por la definición del juego de caracteres nacional. Las especificaciones de
ancho del tipo de dato NCHAR hacen referencia al número de caracteres. El tamaño

Oracle Internal & Oracle Academy Use Only


máximo de columna permitido es 2.000 bytes. Si inserta un valor menor que la longitud de
columna, la base de datos Oracle rellena en blanco el valor hasta alcanzar la longitud de la
columna. No puede insertar un valor CHAR en una columna NCHAR, ni insertar un valor
NCHAR en una columna CHAR.
• NVARCHAR2(size [BYTE|CHAR]): El tipo de dato NVARCHAR2 es sólo Unicode.
Es como NCHAR, excepto en que la longitud máxima es 4.000 bytes y que no se rellena en
blanco.
• LONG: Es un dato de carácter de longitud variable, hasta 2 GB o 231 -1 bytes. El tipo de
dato LONG está obsoleto; utilice en su lugar el tipo de dato de objeto grande (LOB).
• LONG RAW: Son datos binarios raw de longitud variable, hasta 2 GB.
• RAW(size): Son datos binarios raw con una longitud en bytes especificada por size.
El tamaño máximo es 2.000 bytes. Debe especificar el tamaño para un valor RAW.
• ROWID: Es una cadena de base 64 que representa la dirección única de una fila en su tabla
correspondiente. Este tipo de dato es principalmente para valores devueltos por la
pseudocolumna ROWID.
• UROWID: Es una cadena de base 64 que representa la dirección lógica de una fila de una
tabla organizada por índices. El tamaño opcional es el de una columna de tipo UROWID.
El tamaño máximo y por defecto es 4.000 bytes.
• BLOB: Es un objeto grande binario.
• CLOB: Es un objeto grande de caracteres que contiene caracteres de un solo byte o
multibyte. Se soportan los juegos de caracteres de ancho fijo y variable y ambos utilizan el
juego de caracteres de la base de datos CHAR.

Base de Datos Oracle 10g: Taller de Administración I 7-9


Especificación de Tipos de Dato en Tablas (continuación)
• NCLOB: Es un objeto grande de caracteres que contiene caracteres Unicode. Se soportan
los juegos de caracteres de ancho fijo y variable y ambos utilizan el juego de caracteres de
la base de datos NCHAR. Almacena datos del juego de caracteres nacional.
Nota: El tamaño máximo para todos los tipos de dato LOB (BLOB, CLOB y NCLOB) es:
(4 GB - 1) * (el valor de CHUNK).
CHUNK es un atributo opcional que se puede establecer al definir un LOB. Especifica el
número de bytes que se van a asignar para la manipulación de LOB. Si el tamaño no es un
múltiplo del tamaño del bloque de base de datos, la base de datos redondea en bytes hasta
el siguiente múltiplo. Por ejemplo, si el tamaño del bloque de base de datos es 2.048 y el
tamaño de CHUNK es 2.050, la base de datos asigna 4.096 bytes (2 bloques). El valor
máximo es 32.768 (32 K), que es el mayor tamaño del bloque de base de datos Oracle
permitido. El tamaño de CHUNK por defecto es un bloque de base de datos Oracle.
• BFILE: El tipo de dato BFILE contiene un localizador a un archivo binario grande

Oracle Internal & Oracle Academy Use Only


almacenado fuera de la base de datos. Permite el acceso de E/S de flujo de bytes a LOB
externos que residen en el servidor de bases de datos. El tamaño máximo es 4 GB.
• TIMESTAMP(fractional_seconds_precision): Con este tipo de dato, puede
especificar los valores de fecha (año, mes y día), así como los valores de tiempo (hora,
minuto y segundo), donde fractional_seconds_precision es el número de
dígitos en la parte fraccional de un segundo. Los valores aceptados son 0 y 9. El valor por
defecto es 6.
Para obtener una lista completa de los tipos de dato incorporados y los tipos definidos por el
usuario, consulte Oracle Database SQL Reference.

Base de Datos Oracle 10g: Taller de Administración I 7-10


Creación y Modificación de Tablas

Especificar el nombre
de la tabla y el esquema.

Especificar los nombres de

Oracle Internal & Oracle Academy Use Only


columna, los tipos de dato
y las longitudes.

Copyright © 2005, Oracle. Todos los derechos reservados.

Creación y Modificación de Tablas


Las tablas son las unidades básicas de almacenamiento de datos en una base de datos Oracle.
Contienen todos los datos a los que pueden acceder los usuarios. Cada tabla tiene columnas y
filas.
Creación de una Tabla
Para crear una tabla mediante Enterprise Manager, realice los siguientes pasos:
1. Haga clic en Tables en la región Schema de la página Administration. Aparecerá la página
Tables.
2. Si conoce el nombre del esquema, introdúzcalo completo o en parte en el campo Schema de
la región Search. Si no sabe el nombre del esquema, haga clic en el icono de linterna situado
junto al campo Schema. Aparecerá la ventana Search and Select: Schema. Puede examinar
los nombres de esquema y seleccionar el que esté buscando.
3. Haga clic en Create. Aparecerá la página Create Table: Table Organization.
4. Acepte el valor por defecto Standard, Heap Organized haciendo clic en Continue. Aparecerá
la página Create Table.
5. Introduzca el nombre de la tabla en el campo Name.
6. Introduzca el nombre del esquema en el campo Schema o haga clic en el icono de linterna
para llamar a la función de búsqueda.

Base de Datos Oracle 10g: Taller de Administración I 7-11


Creación y Modificación de Tablas (continuación)
7. Introduzca el nombre del tablespace en el campo Tablespace o haga clic en el icono de
linterna para llamar a la función de búsqueda.
8. En la región Columns, introduzca el nombre de columna y los tipos de dato.
9. Haga clic en OK. Aparecerá un mensaje de actualización que indica que la tabla se ha
creado correctamente.
Modificación de una Tabla
Puede modificar una tabla con Enterprise Manager tal como se describe en los pasos siguientes.
En este ejemplo, se agrega una columna a la tabla.
1. En la página Tables, seleccione la tabla en la lista de resultados y haga clic en Edit.
2. En la página Edit Table, haga clic en el botón Add 5 Table Columns. Aparecerá una lista
de columnas editables.
3. Introduzca el nombre de columna, el tipo de dato y el tamaño.

Oracle Internal & Oracle Academy Use Only


4. Haga clic en Apply. Aparecerá un mensaje de actualización que indica que la tabla se ha
modificado correctamente.

Base de Datos Oracle 10g: Taller de Administración I 7-12


Esquema
> Restricciones
Descripción de la Índices
Vistas
Integridad de los Datos Secuencias
Tablas Temporales
Diccionario de Datos

JOB_HISTORY DEPARTMENTS LOCATIONS


EMPLOYEE_ID DEPARTMENT_ID (PK) LOCATION_ID (PK)
(PK,FK) EMPLOYEES DEPARTMENT_NAME STREET_ADDRESS
START_DATE (PK) EMPLOYEE_ID (PK) MANAGER_ID POSTAL_CODE
END_DATE FIRST_NAME LOCATION_ID (FK) CITY
JOB_ID (FK) LAST_NAME STATE_PROVINCE
DEPARTMENT_ID (FK) EMAIL COUNTRY_ID (FK)
PHONE_NUMBER

Oracle Internal & Oracle Academy Use Only


HIRE_DATE
JOB_ID (FK)
SALARY
COMMISION_PCT
MANAGER_ID (FK)
DEPARTMENT_ID (FK) COUNTRIES
COUNTRY_ID (PK)
JOBS COUNTRY_NAME
JOB_ID (PK) REGION_ID (FK)
JOB_TITLE
MIN_SALARY
MAX_SALARY

REGIONS
REGION_ID (PK)
REGION_NAME

Copyright © 2005, Oracle. Todos los derechos reservados.

Descripción de la Integridad de los Datos


Puede utilizar las siguientes restricciones de integridad para imponer limitaciones en la entrada
de valores de columna:
• NOT NULL: Por defecto, todas las columnas de una tabla permiten valores nulos. Nulo
significa la ausencia de un valor. Una restricción NOT NULL necesita que una columna de
una tabla no contenga ningún valor nulo. Por ejemplo, puede definir una restricción NOT
NULL para exigir que se introduzca un valor en la columna LAST_NAME de todas las filas
de la tabla EMPLOYEES.
• Clave UNIQUE: Una restricción de integridad de clave UNIQUE necesita que todos los
valores de una columna o juego de columnas (clave) sean únicos; es decir, que no haya dos
filas de una tabla con valores duplicados en una columna o juego de columnas concreto.
Por ejemplo, se define una restricción de clave UNIQUE en la columna
DEPARTMENT_NAME de la tabla DEPARTMENTS para no permitir filas con nombres de
departamento duplicados. Salvo en casos especiales, esta restricción se aplica con un índice
único.
• PRIMARY KEY: Todas las tablas de la base de datos pueden tener como máximo una
restricción PRIMARY KEY. Los valores del grupo de una o más columnas sujetas a esta
restricción constituyen el identificador único de la fila. En efecto, cada fila se denomina
por sus valores de clave primaria.

Base de Datos Oracle 10g: Taller de Administración I 7-13


Descripción de la Integridad de los Datos (continuación)
La implementación de la restricción de integridad PRIMARY KEY del servidor de Oracle
garantiza que se cumplan las dos condiciones siguientes:
- No puede haber dos filas de una tabla que tengan valores duplicados en la columna o
juego de columnas especificado.
- Las columnas de clave primaria no permiten valores nulos. Es decir, debe existir un
valor para las columnas de clave primaria en cada fila.
En circunstancias normales, la base de datos aplica las restricciones PRIMARY KEY
utilizando índices. La restricción de clave primaria creada para la columna
DEPARTMENT_ID de la tabla DEPARTMENTS se aplica mediante la creación implícita de
lo siguiente:
- Un índice único en dicha columna
- Una restricción NOT NULL para dicha columna

Oracle Internal & Oracle Academy Use Only


• Restricciones de integridad referencial: Distintas tablas de una base de datos relacional
se pueden relacionar por columnas comunes y se deben mantener las reglas que rigen la
relación de las columnas. Las reglas de integridad referencial garantizan que se mantengan
estas relaciones.
Una restricción de integridad referencial necesita que para cada fila de una tabla, el valor
de la clave ajena coincida con un valor de una clave principal.
Por ejemplo, se define una clave ajena en la columna DEPARTMENT_ID de la tabla
EMPLOYEES. De esta forma se garantiza que todos los valores de esta columna coincidan
con un valor de la clave primaria de la tabla DEPARTMENTS. Por lo tanto, no pueden
existir números de departamento erróneos en la columna DEPARTMENT_ID de la tabla
DEPARTMENTS.
Otro tipo de restricción de integridad referencial se denomina restricción de integridad de
autorreferencia. Este tipo de clave ajena hace referencia a una clave principal de la misma
tabla.
• Restricciones de control: Una restricción de integridad CHECK en una columna o juego de
columnas necesita que una condición concreta se cumpla o sea desconocida para todas las
filas de la tabla. Si una sentencia de lenguaje de manipulación de datos (DML) tiene como
resultado que la condición de la restricción CHECK se evalúe como falsa, se realizará un
rollback de la sentencia.

Base de Datos Oracle 10g: Taller de Administración I 7-14


Definición de Restricciones

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Definición de Restricciones
Para agregar una restricción a una tabla con Enterprise Manager, realice los siguientes pasos:
1. Seleccione la tabla en la página Tables y haga clic en Edit.
2. Haga clic en Constraints. Se mostrará la página Constraints con todas las restricciones
definidas en la tabla.
3. Seleccione el tipo de restricción que desea agregar en la lista desplegable y haga clic en Add.
4. Introduzca la información adecuada para el tipo de restricción que está definiendo. Haga clic
en OK.

Base de Datos Oracle 10g: Taller de Administración I 7-15


Violaciones de Restricciones
Algunos ejemplos de cómo se puede violar una
restricción son:
• Inserción de un valor de clave primaria duplicado
• Supresión del principal de una fila secundaria en
una restricción de integridad referencial
• Actualización de una columna a un valor que esté
fuera de los límites de una restricción de control

Oracle Internal & Oracle Academy Use Only


ID AGE
101 … X …

22
49
–30
102 …
101
103 … … 16
… 5

Copyright © 2005, Oracle. Todos los derechos reservados.

Violaciones de Restricciones
La violación de una restricción tiene lugar cuando se ejecuta DML, y éste no cumple la
restricción. Las violaciones de las restricciones pueden adoptar muchas formas, por ejemplo:
• Unicidad: Se realiza el intento de tener valores duplicados en una columna que tiene una
restricción única, como el caso en que una columna es la clave primaria o está indexada de
forma única.
• Integridad referencial: Se viola la regla de que cada fila secundaria tiene una fila
principal.
• Control: Se realiza el intento de almacenar un valor en una columna que no sigue las
reglas definidas para ella. Por ejemplo, una columna AGE podría tener una restricción de
control de modo que al aplicarla sea un número positivo.

Base de Datos Oracle 10g: Taller de Administración I 7-16


Estados de Restricciones

DISABLE DISABLE ENABLE ENABLE


NOVALIDATE VALIDATE NOVALIDATE VALIDATE

Oracle Internal & Oracle Academy Use Only


No DML

Datos nuevos

Datos existentes

Copyright © 2005, Oracle. Todos los derechos reservados.

Estados de Restricciones
Para abordar mejor las situaciones en las que los datos deben estar temporalmente en estado de
violación de una restricción, puede designar que una restricción tenga diversos estados. Una
restricción de la integridad se puede activar (ENABLE) o desactivar (DISABLE). Si una
restricción está activada, los datos se comprueban conforme se introducen o actualizan en la base
de datos. Se impide la entrada de los datos que no se ajustan a la regla de la restricción. Si una
restricción está desactivada, los datos que no guardan conformidad con la regla se pueden
introducir en la base de datos. Una restricción de la integridad puede tener uno de los siguientes
estados:
• DISABLE NOVALIDATE
• DISABLE VALIDATE
• ENABLE NOVALIDATE
• ENABLE VALIDATE

Base de Datos Oracle 10g: Taller de Administración I 7-17


Estados de Restricciones (continuación)
DISABLE NOVALIDATE: Puede que tanto los datos nuevos como los ya existentes no se
ajusten a la restricción porque no se han comprobado. Este estado se usa con frecuencia cuando
los datos provienen de un origen ya validado y la tabla es de sólo lectura, de modo que no se
introduce ningún dato nuevo en la tabla.
DISABLE VALIDATE: Si una restricción tiene este estado, no se permite ninguna modificación
de las columnas restringidas porque no sería coherente haber validado los datos existentes y
luego permitir que en la tabla se introduzcan datos sin comprobar. Este estado se usa con
frecuencia cuando los datos existentes se deben validar pero los datos no se van a modificar y el
índice ya no es necesario para el rendimiento.
ENABLE NOVALIDATE: Los datos nuevos se ajustan a la restricción pero los existentes están en
un estado desconocido. Este estado se usa con frecuencia para que se puedan corregir las
violaciones de restricciones existentes y, al mismo tiempo, no se permita que se introduzcan

Oracle Internal & Oracle Academy Use Only


nuevas violaciones en el sistema.
ENABLE VALIDATE: Los datos nuevos y existentes se ajustan a la restricción. Éste es el estado
habitual y por defecto de una restricción.

Base de Datos Oracle 10g: Taller de Administración I 7-18


Comprobación de Restricciones
Las restricciones se comprueban en el momento de:
• Ejecución de la sentencia, en el caso de
restricciones sin diferir
• COMMIT, para restricciones diferidas
Caso: Sentencia DML, seguida de COMMIT

Oracle Internal & Oracle Academy Use Only


1 Restricciones sin diferir
comprobadas
2 COMMIT emitida

3 Restricciones sin diferir


comprobadas
4 COMMIT terminada

Copyright © 2005, Oracle. Todos los derechos reservados.

Comprobación de Restricciones
Puede diferir la comprobación de la validez de las restricciones hasta que termine la transacción.
Restricciones sin diferir, conocidas también como restricciones inmediatas, se aplican al final
de las sentencias DML. La violación de una restricción ocasiona el rollback de la sentencia. Si
una restricción provoca una acción, por ejemplo, delete cascade, ésta se lleva a cabo como
parte de la sentencia que la ha ocasionado. Las restricciones definidas como no diferibles no se
pueden cambiar a diferibles.
Las restricciones diferidas son aquellas que solo se comprueban cuando se confirma una
transacción. Si en el momento de la confirmación (COMMIT) se detecta alguna violación de
restricción, se produce el rollback de toda la transacción. Estas restricciones son útiles
principalmente cuando las filas principal y secundaria de una relación de clave ajena se
introducen al mismo tiempo, como en el caso de un sistema de entrada de pedidos en el que el
pedido y los artículos del pedido se introducen a la vez.
Las restricciones definidas como diferibles se pueden especificar de dos maneras:
• Initially immediate, especifica que, por defecto, debe funcionar como restricción
inmediata a menos que se establezca explícitamente lo contrario.
• Initially deferred, especifica que, por defecto, la restricción sólo se debe aplicar al
final de la transacción.

Base de Datos Oracle 10g: Taller de Administración I 7-19


Creación de Restricciones con SQL:
Ejemplos
ALTER TABLE countries
a
ADD (UNIQUE(country_name) ENABLE NOVALIDATE);

ALTER TABLE employees ADD CONSTRAINT pk PRIMARY KEY


b
(employee_id)

Oracle Internal & Oracle Academy Use Only


CREATE TABLE t1 (pk NUMBER PRIMARY KEY, fk NUMBER, c1 NUMBER,
c2 NUMBER,
c
CONSTRAINT ri FOREIGN KEY (fk) REFERENCES t1, CONSTRAINT ck1
CHECK (pk > 0 and c1 > 0));

Copyright © 2005, Oracle. Todos los derechos reservados.

Creación de Restricciones con SQL: Ejemplos


En la diapositiva se muestran tres ejemplos de creación de restricciones:
a. Una vez que se ejecuta esta sentencia, las inserciones o actualizaciones realizadas en la
tabla COUNTRIES tienen que tener un valor COUNTRY_NAME que sea único. Sin
embargo, es posible que cuando se emite esta sentencia, ya existan valores
COUNTRY_NAME en la tabla que no son únicos. La palabra clave NOVALIDATE indica
que se deben ignorar. Sólo se restringen las nuevas filas.
b. Esta sentencia agrega una clave primaria a la tabla EMPLOYEE. El nombre de la restricción
es PK y la clave primaria es la columna EMPLOYEE_ID.
c. Esta sentencia define restricciones en el momento de crearse la tabla en lugar de usar
posteriormente una sentencia ALTER TABLE. La restricción RI impone que los valores de
la columna FK deben estar presentes en la columna de clave primaria de la tabla T1. La
restricción CK1 impone que las columnas PK y C1 sean mayores que cero.
Nota: Toda restricción tiene un nombre. Si no se proporciona uno en la sentencia DDL,
el sistema asigna un nombre, que empieza por SYS_.

Base de Datos Oracle 10g: Taller de Administración I 7-20


Visualización de las Columnas de una Tabla

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Visualización de las Columnas de una Tabla


Para visualizar los atributos de una tabla mediante Enterprise Manager, realice los siguientes
pasos:
1. Haga clic en el enlace Tables en la región Schema de la página Database Administration
2. Seleccione una tabla de la lista de resultados y haga clic en el botón View para ver los
atributos de la tabla.

Base de Datos Oracle 10g: Taller de Administración I 7-21


Visualización del Contenido de una Tabla

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Visualización del Contenido de una Tabla


Para visualizar las filas de una tabla mediante Enterprise Manager, realice los siguientes pasos:
1. Seleccione la tabla en la página Tables.
2. Seleccione View Data en el menú Actions y haga clic en Go.
Aparecerá la página View Data for Table. Los datos de fila para la tabla se mostrarán en la
región Result. El recuadro Query muestra la consulta SQL ejecutada para producir los resultados.
En esta página, puede hacer clic en cualquier nombre de columna y ordenar los datos de la
columna en orden ascendente o descendente. Si desea cambiar la consulta, haga clic en el botón
Refine Query. En la página Refine Query for Table, puede seleccionar las columnas que desea
ver y especificar una cláusula WHERE para la sentencia SQL con el fin de limitar los resultados.
Para obtener más información sobre las cláusulas WHERE de las sentencias SQL, consulte Oracle
Database SQL Reference.

Base de Datos Oracle 10g: Taller de Administración I 7-22


Acciones con Tablas

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Acciones con Tablas


Puede seleccionar una tabla y, a continuación, realizar acciones en ella. Aquí se presentan
algunas de esas acciones:
• Create Like: Con esta acción puede crear una tabla que tenga la misma estructura que la
seleccionada. Deberá cambiar los nombres de las restricciones. Puede agregar o suprimir
columnas y realizar otros cambios en la estructura de la tabla antes de crearla.
• Create Index: Utilice esta opción para crear índices de una tabla.
• Generate DDL: Se genera el DDL que representa la tabla que ya existe. A continuación se
puede copiar en un archivo de texto para su uso como archivo de comandos o con fines de
documentación.
• Grant Privileges: Por defecto, cuando se crea una tabla, sólo el propietario puede realizar
acciones en ella. El propietario debe otorgar privilegios a los demás usuarios para que
puedan ejecutar DML o DDL en la tabla.
• Show Dependencies: Muestra objetos de los que depende esta tabla u objetos que
dependen de esta tabla.
• View Data: Selecciona y muestra datos de la tabla en modo de sólo lectura.

Base de Datos Oracle 10g: Taller de Administración I 7-23


Borrado de una Tabla

El borrado de una tabla elimina:


• Datos DROP TABLE hr.employees PURGE;
• Estructura de tabla
• Disparadores de base de datos
• Índices correspondientes

Oracle Internal & Oracle Academy Use Only


• Privilegios de objeto asociados
Cláusulas opcionales de la sentencia DROP TABLE:
• CASCADE CONSTRAINTS: Restricciones de
integridad referencial dependientes
• PURGE: No es posible el flashback

Copyright © 2005, Oracle. Todos los derechos reservados.

Borrado de una Tabla


Sintaxis:
DROP TABLE [schema.] table [CASCADE CONSTRAINTS] [PURGE]
El comando DROP TABLE elimina los datos, la estructura de la tabla y los privilegios de objeto
asociados. Algunos aspectos acerca de DROP TABLE que se deben tener en cuenta son:
• Sin la cláusula PURGE, la definición de tabla, los índices asociados y los disparadores se
colocan en una papelera de reciclaje. Los datos de la tabla permanecen, pero no resultan
accesibles sin la definición de tabla. Si borra una tabla a través de Enterprise Manager, la
cláusula PURGE no se utiliza.
• Utilice el comando FLASHBACK TABLE para recuperar objetos de esquema de la papelera
de reciclaje. El comando PURGE RECYCLEBIN vacía la papelera de reciclaje.
• La opción CASCADE CONSTRAINTS es necesaria para suprimir todas las restricciones de
integridad referencial dependientes.
Nota: Si no utiliza la opción PURGE, el espacio que ocupa la tabla y sus índices sigue contando
en la cuota permitida del usuario para los tablespaces implicados. Es decir, todavía se considera
que ese espacio se está utilizando.

Base de Datos Oracle 10g: Taller de Administración I 7-24


Truncamiento de una Tabla

TRUNCATE TABLE hr.employees;

• El truncamiento de una tabla hace que sus datos


de fila dejen de estar disponibles y,
opcionalmente, libera el espacio utilizado.

Oracle Internal & Oracle Academy Use Only


• Los índices correspondientes se truncan.

Copyright © 2005, Oracle. Todos los derechos reservados.

Truncamiento de una Tabla


Sintaxis:
TRUNCATE TABLE [schema.] table [{DROP | REUSE} STORAGE]
Los efectos de utilizar este comando son los siguientes:
• La tabla se marca como vacía definiendo el límite superior al principio de la tabla, con lo
que sus filas dejan de estar disponibles.
• No se generan datos de deshacer y el comando se confirma implícitamente porque
TRUNCATE TABLE es un comando DDL.
• Los índices correspondientes también se truncan.
• No se pueden truncar las tablas a las que una clave ajena hace referencia.
• Los disparadores de supresión no se activan cuando se utiliza este comando.
Normalmente esto es mucho más rápido que emitir una sentencia DELETE para suprimir todas
las filas de la tabla debido a los siguientes motivos:
• La base de datos Oracle restablece el límite superior de la tabla en lugar de procesar cada
fila como una operación DELETE.
• No se genera ningún dato de deshacer.

Base de Datos Oracle 10g: Taller de Administración I 7-25


Esquema
Índices Restricciones
> Índices
Vistas
Secuencias
Tablas Temporales
Diccionario de Datos
… WHERE key = 22

Puntero
Clave de fila

Oracle Internal & Oracle Academy Use Only


22

22

Índice Tabla

Copyright © 2005, Oracle. Todos los derechos reservados.

Índices
Los índices son estructuras opcionales asociadas a las tablas. Se pueden crear para mejorar el
rendimiento de la recuperación y actualización de los datos. Un índice de Oracle proporciona
una ruta de acceso directo a una fila de datos.
Los índices se pueden crear en una o más columnas de una tabla. Una vez creado un índice,
el servidor de Oracle lo mantiene y utiliza automáticamente. Las actualizaciones de datos de una
tabla, como la adición de nuevas filas, la actualización de filas o la supresión de filas, se
propagan automáticamente a todos los índices relevantes con completa transparencia para los
usuarios.

Base de Datos Oracle 10g: Taller de Administración I 7-26


Tipos de Índices

Existen varios tipos de estructuras de índices


disponibles, según las necesidades:
• Los índices de árbol B tienen la forma de un árbol
binario y son el tipo por defecto.
• Los índices de bitmap tienen un bitmap para cada

Oracle Internal & Oracle Academy Use Only


uno de los distintos valores indexados, y cada
posición de bit representa una fila que puede o no
contener dichos valores. Es adecuado para
columnas de baja cardinalidad.

Copyright © 2005, Oracle. Todos los derechos reservados.

Tipos de Índices
Éstos son los tipos de índices más comunes:
• Árbol B
• Bitmap
Un índice de árbol B tiene almacenados sus valores clave en un árbol equilibrado, lo que permite
búsquedas binarias rápidas.
Un índice de bitmap tiene un bipmap para cada valor clave distinto indexado. En cada bitmap,
hay un juego de bits contiguos para cada fila de la tabla indexada. Esto permite búsquedas
rápidas cuando hay pocos valores distintos, es decir, la columna indexada tiene baja
cardinalidad. Un ejemplo sería un indicador de género. Sólo puede tener los valores de “M” y
“F”. De modo que solo se pueden buscar dos bitmaps. Por ejemplo, si se utilizara un índice de
bitmap para una columna phone_number, habría que gestionar tantos bitmaps que la
búsqueda resultaría muy poco eficaz. Utilice índices de bitmap en columnas de baja
cardinalidad.

Base de Datos Oracle 10g: Taller de Administración I 7-27


Índice de Árbol B

Entrada de índice

Raíz

Oracle Internal & Oracle Academy Use Only


Rama

Cabecera de entrada de índice


Hoja Longitud de columna clave
Valor de columna clave
ROWID

Copyright © 2005, Oracle. Todos los derechos reservados.

Índice de Árbol B
Estructura de un índice de árbol B
Al principio del índice está la raíz, que contiene entradas que apuntan al siguiente nivel del
índice. En el siguiente nivel están los bloques rama, que su vez apuntan a los bloques del
siguiente nivel del índice. En el nivel inferior están los nodos hoja, que contienen las entradas de
índice que apuntan a las filas de la tabla. Los bloques hoja están enlazados doblemente para
facilitar la búsqueda de los valores clave del índice en orden ascendente y descendente.
Formato de las entradas de hojas del índice
Una entrada de índice está formada por los siguientes componentes:
• Una cabecera de entrada, que almacena el número de columnas y la información de
bloqueo
• Pares longitud-valor de columna clave, que definen el tamaño de una columna en la clave
seguida por el valor de la columna (el número de estos pares es el número máximo de
columnas del índice)
• ROWID de una fila que contiene los valores clave

Base de Datos Oracle 10g: Taller de Administración I 7-28


Índice de Árbol B (continuación)
Características de las entradas de hojas del índice
En un índice de árbol B de una tabla no particionada:
• Si hay varias filas con la misma clave los valores clave se repiten a no ser que el índice esté
comprimido.
• No existen entradas de índice correspondientes a una fila cuyas columnas de clave tengan
todas el valor NULL. Por lo tanto, una cláusula WHERE que especifique NULL siempre dará
lugar a una exploración de tabla completa.
• El ROWID restringido se utiliza para apuntar a las filas de la tabla, dado que todas las filas
pertenecen al mismo segmento.
Efecto de las operaciones DML en índices
El servidor de Oracle mantiene todos los índices cuando las operaciones DML se realizan en la
tabla. A continuación se muestra una explicación del efecto de un comando DML en un índice:

Oracle Internal & Oracle Academy Use Only


• Las operaciones de inserción dan como resultado la inserción de una entrada de índice en el
bloque adecuado.
• La supresión de una fila produce una supresión lógica de la entrada de índice. El espacio
que utiliza la fila suprimida no estará disponible para las nuevas entradas hasta que todas
las entradas del bloque se supriman.
• Las actualizaciones de las columnas clave dan como resultado una supresión lógica y una
inserción en el índice. El valor PCTFREE no tiene efecto alguno en el índice excepto en el
momento de la creación. Se puede agregar una nueva entrada en el bloque de índice incluso
si cuenta con menos espacio que el especificado en PCTFREE.

Base de Datos Oracle 10g: Taller de Administración I 7-29


Índices de Bitmap

Tabla Archivo 3
Bloque 10

Bloque 11

Índice Bloque 12

Oracle Internal & Oracle Academy Use Only


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 © 2005, Oracle. Todos los derechos reservados.

Índices de Bitmap
Los índices de bitmap ofrecen más ventajas que los índices de árbol B en determinadas
situaciones:
• Cuando una tabla tiene millones de filas y las columnas de clave poseen baja cardinalidad,
es decir, tienen pocos valores distintos. Por ejemplo, los índices de bitmap pueden ser
preferibles a los de árbol B para las columnas de género y estado marital de una tabla que
contenga registros de pasaporte.
• Cuando es frecuente que las consultas utilicen una combinación de varias condiciones
WHERE relacionadas con el operador OR.
• Cuando hay actividad de sólo lectura o de actualización baja en las columnas de clave.
Estructura de un índice de bitmap
El índice de bitmap también está organizado como un árbol B, pero el nodo hoja almacena un
bitmap para cada valor clave en lugar de una lista de ROWID. Cada bit del bitmap corresponde a
un posible ROWID, y si este bit está definido, significa que la fila con el ROWID correspondiente
contiene el valor clave.
Como se muestra en el diagrama, el nodo hoja de un índice de bitmap contiene lo siguiente:
• Una cabecera de entrada, que contiene el número de columnas y la información de
bloqueo.

Base de Datos Oracle 10g: Taller de Administración I 7-30


Índices de Bitmap (continuación)
Estructura de un índice de bitmap (continuación)
• Los valores clave constan de pares de longitud y valor para cada columna de clave. En el
ejemplo, la clave está formada por una columna, y la primera entrada tiene un valor clave
de Blue.
• ROWID inicial, que en el ejemplo especifica el número de bloque diez, el número de fila
cero y el número de archivo tres.
• ROWID final, que en el ejemplo especifica el número de bloque doce, el número de fila
ocho y el número de archivo tres.
• Un segmento de bitmap consta de una cadena de bits. (El bit se define cuando la fila
correspondiente contiene el valor clave y se anula su definición cuando no lo contiene. El
servidor de Oracle usa una técnica de compresión patentada para almacenar segmentos de
bitmap.)

Oracle Internal & Oracle Academy Use Only


El ROWID inicial es el ROWID de la primera fila a la que apunta el segmento de bitmap del
bitmap, es decir, el primer bit del bitmap corresponde a ese ROWID, el segundo a la siguiente fila
del bloque y el ROWID final es un puntero a la última fila de la tabla incluida en el segmento de
bitmap. Los índices de bitmap son ROWID restringidos.
Uso de un índice de bitmap
El árbol B se utiliza para localizar los nodos hoja que contienen segmentos de bitmap para un
valor dado de la clave. El ROWID inicial y los segmentos de bitmap se utilizan para localizar las
filas que contienen el valor clave.
Cuando se realizan cambios en la columna de clave de la tabla, se deben modificar los bitmaps.
El resultado es que se bloquean los segmentos de bitmap relevantes. Como los bloqueos se
adquieren en todo el segmento de bitmap, otras transacciones no pueden actualizar una fila
incluida en el bitmap hasta que termine la primera transacción.

Base de Datos Oracle 10g: Taller de Administración I 7-31


Opciones de Índice

• Un índice único garantiza que todo valor indexado


es único.
• Un índice puede tener almacenados sus valores
clave en orden ascendente o descendente.
• Un índice de clave inversa tiene almacenados sus
bytes de valores clave en orden inverso.

Oracle Internal & Oracle Academy Use Only


• Un índice compuesto es aquel basado en más de
una columna.
• Un índice basado en funciones es un índice
basado en el valor de retorno de una función.
• Un índice comprimido es aquel del que se han
eliminado valores clave repetidos.

Copyright © 2005, Oracle. Todos los derechos reservados.

Opciones de Índice
Para facilitar la recuperación, puede resultar ventajoso contar con un índice que almacene las
claves en orden descendente. Esta decisión se debe tomar en función de cómo se acceda a los
datos normalmente.
Un índice de clave inversa tiene almacenados los bytes del valor indexado en orden inverso.
Esto puede reducir la actividad en un punto conflictivo determinado del índice. Si muchos
usuarios están procesando datos en el mismo orden, las partes de prefijo de los valores clave
(actualmente procesándose) se aproximan en un momento dado. Como consecuencia, hay mucha
actividad en esa área de la estructura del índice. Los índices de clave inversa reparten esa
actividad entre la estructura del índice indexando una versión de byte inverso de los valores
clave.
Los índices creados por la combinación de más de una columna se denominan índices
compuestos. Por ejemplo, puede crear un índice basado en el apellido y nombre de una persona:
CREATE INDEX name_ix ON employees
(last_name, first_name);

Base de Datos Oracle 10g: Taller de Administración I 7-32


Opciones de Índice (continuación)
Los índices basados en funciones indexan el valor de retorno de una función. Esta función
puede ser una función SQL incorporada, una función PL/SQL proporcionada o una función
escrita por el usuario. De esta manera, el servidor deja de tener que llamar a la función por
cada valor clave dado que se realiza una búsqueda en la expresión indexada. En el siguiente
ejemplo se indexa el volumen del árbol devuelto que calcula la función, según la especie,
altura y volumen (que son columnas de la tabla TREES):
CREATE INDEX tree_vol_ix ON
TREES(volume(species,height,circumference));
Luego, toda consulta que contenga la expresión
volume(species,height,circumference) en la cláusula WHERE podría
aprovechar las ventajas de este índice y ejecutarse de manera mucho más rápida porque el
cálculo del volumen ya se ha realizado para cada árbol. Los índices basados en funciones se
mantienen automáticamente, igual que los índices normales.

Oracle Internal & Oracle Academy Use Only


Puede utilizar un índice comprimido para reducir el consumo de disco en tiempo de ejecución.
Como se eliminan los valores clave repetidos, pueden caber más entradas de índice en una
cantidad dada de espacio en disco y, como consecuencia, se pueden leer más entradas en el
disco en la misma cantidad de tiempo. La compresión y la descompresión se deben realizar,
respectivamente, para la escritura y la lectura del índice.

Base de Datos Oracle 10g: Taller de Administración I 7-33


Creación de Índices

Oracle Internal & Oracle Academy Use Only


CREATE INDEX my_index ON
employees(last_name, first_name);

Copyright © 2005, Oracle. Todos los derechos reservados.

Creación de Índices
Puede hacer clic en el enlace Indexes situado bajo la cabecera Schema de la página
Administration para ver la página Indexes. Puede ver atributos de índice o utilizar el menú
Actions para ver dependencias de un índice.
Los índices se pueden crear explícita o implícitamente mediante restricciones que se colocan en
una tabla. Un ejemplo de un índice creado implícitamente es la definición de una clave primaria,
en cuyo caso se crearía automáticamente un índice único para reforzar la unicidad en la columna.

Base de Datos Oracle 10g: Taller de Administración I 7-34


Esquema
¿Qué es una Vista? Restricciones
Índices
> Vistas
Tabla LOCATION …

Tabla COUNTRY
Vista

Oracle Internal & Oracle Academy Use Only


CREATE VIEW v AS SELECT location_id, country_name FROM
locations l, countries c
WHERE l.country_id = c.country_id AND c.country_id in
('AU','BR');

Copyright © 2005, Oracle. Todos los derechos reservados.

¿Qué es una Vista?


Las vistas son representaciones personalizadas de datos de una o más tablas u otras vistas.
Se pueden considerar como consultas almacenadas dado que pueden ocultar condiciones muy
complejas, uniones y otras expresiones y construcciones SQL complejas. Las vistas en realidad
no contienen datos, sino que derivan sus datos de las tablas en las que se basan. Estas tablas se
denominan tablas base de la vista.

Base de Datos Oracle 10g: Taller de Administración I 7-35


Creación de Vistas

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Creación de Vistas
Al igual que con las tablas, se pueden realizar consultas, actualizaciones, inserciones y
supresiones en las vistas, pero con algunas restricciones. Todas las operaciones realizadas en una
vista en realidad afectan a las tablas base de la vista. Las vistas proporcionan un nivel adicional
de seguridad al restringir el acceso a un juego predeterminado de filas y columnas de una tabla.
También pueden ocultar la complejidad de los datos y almacenar consultas complejas.
Para ver las vistas definidas en la base de datos, haga clic en el enlace Views situado bajo la
cabecera Schema de la página Administration.

Base de Datos Oracle 10g: Taller de Administración I 7-36


Esquema
Secuencias Restricciones
Índices
Vistas
> Secuencias
Tablas Temporales
Una secuencia es un mecanismo para Diccionario de Datos
generar automáticamente enteros que
siguen un patrón.
• Una secuencia tiene un nombre, que es 1
2
3
la forma en que se hace referencia a ella 4
5
cuando se solicita el siguiente valor.

Oracle Internal & Oracle Academy Use Only


• Una secuencia no está asociada a ninguna
tabla o columna en especial.
• La progresión puede ser ascendente o descendente.
• El intervalo entre números puede ser de cualquier
tamaño.
• Una secuencia puede crear un ciclo cuando se
alcanza un límite.

Copyright © 2005, Oracle. Todos los derechos reservados.

Secuencias
Para recuperar el siguiente valor de una secuencia, se hace referencia a ella por su nombre;
no existe asociación alguna de una secuencia con una tabla o columna.
Una vez emitido un número determinado, no se volverá a emitir, a menos que la secuencia
se defina como cíclica. En ocasiones, una aplicación solicita que un valor no deje nunca de
utilizarse o de almacenarse en la base de datos. Esto puede dar lugar a intervalos vacíos en
los números que residen en la tabla en la que se están almacenando.
El almacenamiento en caché de los números de secuencia mejora el rendimiento ya que se asigna
previamente un juego de números en la memoria para un acceso más rápido. En caso de fallo de
la instancia, los números de secuencia almacenados en caché no se utilizan, lo que da lugar a
intervalos vacíos.
Nota: Si una aplicación necesita que no haya intervalos vacíos, la aplicación debe implementar
un generador de números personalizados. No obstante, este método puede producir un
rendimiento muy deficiente. Si utiliza una tabla para almacenar un valor, y ese valor lo
incrementa y actualiza la tabla para cada solicitud, ese proceso supondría un cuello de botella
en todo el sistema. Éste es el motivo por el que cada sesión tendría que esperar ese mecanismo,
el cual, para garantizar que no haya duplicados ni intervalos vacíos, sólo gestiona una solicitud
a la vez.

Base de Datos Oracle 10g: Taller de Administración I 7-37


Creación de una Secuencia

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Creación de una Secuencia


Puede ver y crear secuencias con Enterprise Manager haciendo clic en el enlace Sequences
situado bajo la cabecera Schema de la página Administration. Éste es un resumen de las opciones
de creación de secuencias:
• Name: Es el nombre de la secuencia, con el que se hace referencia a ella.
• Schema: Es el propietario de la secuencia.
• Maximum Value: Especifique el valor máximo que puede generar la secuencia. Este valor
entero puede tener 28 dígitos o menos. Debe ser mayor que el valor de Minimum Value y
de Initial. Unlimited indica un valor máximo de 1027 para una secuencia ascendente, o de
-1 para una secuencia descendente. El valor por defecto es Unlimited.
• Minimum Value: Especifique el valor mínimo de la secuencia. Este valor entero puede
tener 28 dígitos o menos. Debe ser menor o igual que el valor de Initial y menor que
Maximum Value. Unlimited indica un valor mínimo de 1 para una secuencia ascendente,
o de -1026 para una secuencia descendente. El valor por defecto es Unlimited.

Base de Datos Oracle 10g: Taller de Administración I 7-38


Creación de una Secuencia (continuación)
• Interval: Especifique el intervalo entre números de secuencia. Este valor entero puede ser
cualquier entero positivo o negativo, pero no puede ser cero. Puede tener 28 dígitos o
menos. El valor por defecto es uno.
• Initial: Especifique el primer número de secuencia que se va a generar. Utilice esta
cláusula para iniciar una secuencia ascendente en un valor mayor que su mínimo o para
iniciar una secuencia descendente en un valor menor que su máximo.
• Cycle Values: Después de que una secuencia ascendente alcance su valor máximo, genera
su valor mínimo. Después de que una secuencia descendente alcance su mínimo, genera su
valor máximo. Si no selecciona esta opción, se devolverá un error si intenta recuperar un
valor después de que la secuencia se haya agotado.
• Order Values: Garantiza que los números de secuencia se generan en orden de solicitud.
Esta cláusula es útil si utiliza números de secuencia como registros de hora. Garantizar el
orden no suele ser importante con las secuencias utilizadas para generar claves primarias.

Oracle Internal & Oracle Academy Use Only


Esta opción es necesaria sólo para garantizar la generación ordenada si utiliza la base de
datos Oracle con Real Application Clusters.
• Cache Options: Especifique cuántos valores de la secuencia preasigna y mantiene la base
de datos Oracle en la memoria para un acceso más rápido. Este valor entero puede tener
28 dígitos o menos. El valor mínimo para este parámetro es 2. Para secuencias en ciclos,
este valor debe ser inferior al número de valores del ciclo. No puede almacenar en caché
más valores de los que se ajustarán en un ciclo determinado de números de secuencia.

Base de Datos Oracle 10g: Taller de Administración I 7-39


Uso de una Secuencia

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Uso de una Secuencia


Haga referencia a valores de secuencia en sentencias SQL con las siguientes pseudocolumnas:
• CURRVAL: Devuelve el valor actual de una secuencia
• NEXTVAL: Incrementa la secuencia y devuelve el siguiente valor
Debe cualificar a CURRVAL y NEXTVAL con el nombre de la secuencia:
sequence.CURRVAL
sequence.NEXTVAL
La primera referencia a NEXTVAL devuelve el valor inicial de la secuencia. Las referencias
posteriores a NEXTVAL aumentan el valor de secuencia con el incremento definido y devuelven
el nuevo valor. Cualquier referencia a CURRVAL siempre devuelve el valor actual de la
secuencia, que es el valor devuelto por la última referencia a NEXTVAL.

Base de Datos Oracle 10g: Taller de Administración I 7-40


Esquema
Tablas Temporales Restricciones
Índices
Vistas
Secuencias
> Tablas Temporales
Diccionario de Datos
Una tabla temporal:
• Proporciona almacenamiento de datos que se
limpian automáticamente al terminar la sesión o
transacción
• Proporciona almacenamiento privado de datos en
cada sesión

Oracle Internal & Oracle Academy Use Only


• Se puede utilizar en todas las sesiones sin que
afecte a los datos privados de las demás

Copyright © 2005, Oracle. Todos los derechos reservados.

Tablas Temporales
Puede aprovechar las tablas temporales cuando necesite almacenar datos de forma privada con el
fin de realizar una tarea y desee que los datos se limpien una vez terminada ésta, al final de una
transacción o sesión. Las tablas temporales ofrecen esta funcionalidad pero además le liberan de
las responsabilidades de ocultar los datos de otras sesiones y eliminan los datos generados
cuando ha terminado. Los únicos datos de la tabla temporal visibles para una sesión son los datos
que ha insertado la sesión.
Una tabla temporal puede ser específica de una transacción o de una sesión. En el caso de las
tablas temporales específicas de una transacción, los datos se conservan lo que dura la
transacción, y en el segundo caso lo que dura la sesión. En ambos casos, los datos que inserta
una sesión son privados para la sesión. Cada sesión sólo puede ver y modificar sus propios datos.
Como resultado, nunca se adquieren bloqueos DML en los datos de las tablas temporales. Las
siguientes cláusulas controlan la duración de las filas:
• ON COMMIT DELETE ROWS: Para especificar que la duración de las filas insertadas
equivale a lo que dura la transacción.
• ON COMMIT PRESERVE ROWS: Para especificar que la duración de las filas insertadas
equivale a lo que dura la sesión.

Base de Datos Oracle 10g: Taller de Administración I 7-41


Tablas Temporales (continuación)
La sentencia CREATE GLOBAL TEMPORARY TABLE crea una tabla temporal. Puede crear
índices, vistas y disparadores en tablas temporales, y también puede utilizar Export e Import o
Data Pump para exportar e importar la definición de una tabla temporal. No obstante, no se
exportará ningún dato aunque utilice la opción ROWS.
Además de los casos ya mencionados que provocan la supresión de los datos, puede forzar la
eliminación de éstos de manera eficaz con el comando TRUNCATE TABLE. Este comando
elimina todos los datos insertados, y resulta más eficaz que utilizar el comando DELETE.
Puede crear índices, vistas y disparadores en tablas temporales.
Las tablas temporales se pueden crear mediante Enterprise Manager haciendo clic en la opción
Temporary en la página Create Table: Table Organization. Haga clic en Continue. La siguiente
página le permite especificar si la tabla temporal es específica de la sesión o de la transacción. El
campo Tablespace está desactivado dado que una tabla temporal siempre se crea en el tablespace
temporal del usuario; no se puede especificar ningún otro tablespace.

Oracle Internal & Oracle Academy Use Only


Nota: La palabra clave GLOBAL se basa en la terminología especificada en el estándar ISO
(Organización Internacional de Normalización) para SQL.

Base de Datos Oracle 10g: Taller de Administración I 7-42


Tablas Temporales: Consideraciones

• Utilice la cláusula GLOBAL TEMPORARY para crear


tablas temporales:
CREATE GLOBAL TEMPORARY TABLE employees_temp
ON COMMIT PRESERVE ROWS
AS SELECT * FROM employees;

Oracle Internal & Oracle Academy Use Only


• Utilice el comando TRUNCATE TABLE para suprimir
el contenido de la tabla.
• Puede crear los siguientes elementos en tablas
temporales:
– Índices
– Vistas
– Disparadores

Copyright © 2005, Oracle. Todos los derechos reservados.

Tablas Temporales: Consideraciones


La sentencia CREATE GLOBAL TEMPORARY TABLE crea una tabla temporal. Puede crear
índices, vistas y disparadores en tablas temporales, y también puede utilizar Export e Import o
Data Pump para exportar e importar la definición de una tabla temporal. No obstante, no se
exportará ningún dato aunque utilice la opción ROWS.
Además de los casos ya mencionados que provocan la supresión de los datos, puede forzar la
eliminación de éstos de manera eficaz con el comando TRUNCATE TABLE. Este comando
elimina todos los datos insertados, y resulta más eficaz que utilizar el comando DELETE.
Nota: La palabra clave GLOBAL se basa en la terminología especificada en el estándar ISO
(Organización Internacional de Normalización) para SQL.

Base de Datos Oracle 10g: Taller de Administración I 7-43


Esquema
Diccionario de Datos: Restricciones
Índices
Visión General Vistas
Secuencias
Tablas Temporales
> Diccionario de Datos
Tablas
Índices
Vistas
Usuarios
Esquemas

Oracle Internal & Oracle Academy Use Only


Procedimientos
etc.

SELECT * FROM dictionary;

Copyright © 2005, Oracle. Todos los derechos reservados.

Diccionario de Datos: Visión General


El diccionario de datos de Oracle es la descripción de una base de datos. Contiene los nombres
y atributos de todos los objetos de la base de datos. La creación o modificación de un objeto
provoca la actualización del diccionario de datos para reflejar dichos cambios. Esta información
se almacena en las tablas base mantenidas por la base de datos Oracle, pero puede acceder a
estas tablas mediante vistas predefinidas en lugar de leer las tablas directamente.
El diccionario de datos:
• Lo utiliza el servidor de base de datos Oracle para encontrar información acerca de
usuarios, objetos, restricciones y almacenamiento
• Lo mantiene el servidor de base de datos Oracle a medida que las estructuras o definiciones
de objetos se modifican
• Lo puede utilizar cualquier usuario para consultar información acerca de la base de datos
• Es propiedad del usuario SYS
• No se debe modificar directamente mediante SQL
Nota: La vista del diccionario de datos DICTIONARY, o su sinónimo DICT, contiene los
nombres y las descripciones de todo lo que hay en el diccionario de datos. Utilice la vista
DICT_COLUMNS para ver las columnas de vista y sus definiciones. Para obtener definiciones
completas de cada vista, consulte la documentación Oracle Database Reference.

Base de Datos Oracle 10g: Taller de Administración I 7-44


Vistas del Diccionario de Datos
Quién Contenido Subjuego Notas
Puede de
Consultar
DBA_ DBA Todo N/A Podría tener columnas
adicionales diseñadas
únicamente para el uso
de DBA
ALL_ Todos Todo para lo Vistas Todo lo que el usuario
que el DBA_ posee

Oracle Internal & Oracle Academy Use Only


usuario tiene
privilegios de
visualización
USER_ Todos Incluye los Vistas Normalmente es igual que
propios ALL_ ALL_ excepto por la
objetos del columna OWNER que falta.
usuario Algunas vistas tienen
nombres abreviados como
sinónimos PUBLIC.

Copyright © 2005, Oracle. Todos los derechos reservados.

Vistas del Diccionario de Datos


Los prefijos de la vista indican qué o cuántos datos puede ver un usuario determinado. A la vista
global de todo sólo acceden los usuarios con privilegios DBA, mediante el prefijo DBA_. El
siguiente nivel de privilegios está en el nivel de prefijo ALL_, que representa todos los objetos
para los que el usuario que consulta tiene privilegios de vista, tanto si es o no su propietario.
Por ejemplo, si USER_A tiene permiso para acceder a una tabla propiedad de USER_B, USER_A
ve esa tabla en todas las vistas ALL_ relacionadas con nombres de tabla. El prefijo USER_
representa el ámbito de visibilidad más pequeño. Sólo se muestran aquellos objetos cuyo
propietario es el usuario que consulta, es decir, los que están presentes en su propio esquema.

Base de Datos Oracle 10g: Taller de Administración I 7-45


Vistas del Diccionario de Datos (continuación)
Por lo general, cada juego de vistas es un subjuego del juego de vistas con los privilegios más
altos, que tiene en cuenta las filas y columnas. No todas las vistas de un juego de vistas dado
tienen una vista correspondiente en los demás juegos de vistas. Depende de la naturaleza de
la información de la vista. Por ejemplo, existe una vista DBA_LOCK, pero no una vista
ALL_LOCK. Esto se debe a que sólo un DBA tendría interés en los datos sobre bloqueos. Se
debe asegurar de elegir el juego de vistas adecuado a sus necesidades. Si tiene privilegios para
acceder a las vistas DBA, es posible que aún desee consultar sólo la versión USER de la vista
porque sabe que es algo que tiene y no desea que otros objetos se agreguen a su juego de
resultados.
Las vistas DBA_ pueden ser consultadas por los usuarios con el privilegio SYSDBA o
SELECT ANY DICTIONARY.

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g: Taller de Administración I 7-46


Diccionario de Datos: Ejemplos de Uso

a
SELECT table_name, tablespace_name FROM
user_tables;

SELECT sequence_name, min_value, max_value,


b increment_by FROM all_sequences WHERE

Oracle Internal & Oracle Academy Use Only


sequence_owner IN ('MDSYS','XDB');

c SELECT USERNAME, ACCOUNT_STATUS FROM


dba_users WHERE ACCOUNT_STATUS = 'OPEN';

d DESCRIBE dba_indexes;

Copyright © 2005, Oracle. Todos los derechos reservados.

Diccionario de Datos Estático: Ejemplos de Uso


En los ejemplos de la diapositiva se muestran consultas que responden a estas preguntas:
a. ¿Cuáles son los nombres de las tablas (junto con el nombre del tablespace donde residen)
que se han creado en el esquema?
b. ¿Cuál es la información importante acerca de las secuencias de la base de datos a la que ha
accedido?
c. ¿Qué usuarios de esta base de datos se pueden conectar actualmente?
d. ¿Cuáles son las columnas de la vista DBA_INDEXES? Esto le muestra la información que
puede ver acerca de todos los índices de la base de datos. A continuación se muestra una
salida parcial de este comando:
SQL> DESCRIBE dba_indexes;
Name Null? Type
--------------- -------- -------------
OWNER NOT NULL VARCHAR2(30)
INDEX_NAME NOT NULL VARCHAR2(30)
INDEX_TYPE VARCHAR2(27)
TABLE_OWNER NOT NULL VARCHAR2(30)
TABLE_NAME NOT NULL VARCHAR2(30)

Base de Datos Oracle 10g: Taller de Administración I 7-47


Resumen

En esta lección, debe haber aprendido lo siguiente:


• Definir objetos de esquema y tipos de dato
• Crear y modificar tablas
• Definir restricciones
• Visualizar las columnas y el contenido de una tabla

Oracle Internal & Oracle Academy Use Only


• Crear índices
• Crear vistas
• Crear secuencias
• Explicar el uso de tablas temporales
• Usar el diccionario de datos

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 7-48


Visión General de la Práctica:
Administración de Objetos de Esquema

En esta práctica se abordan los siguientes temas:


• Creación de tablas con columnas
• Creación de restricciones:
– Clave primaria
– Clave ajena

Oracle Internal & Oracle Academy Use Only


– Restricción de control
• Creación de índices

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 7-49


Oracle Internal & Oracle Academy Use Only
Gestión de Datos y Simultaneidad

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.
Objetivos

Al finalizar esta lección, debería estar capacitado para


lo siguiente:
• Gestionar datos mediante el uso de SQL
• Identificar y administrar objetos PL/SQL
• Describir los disparadores y los eventos

Oracle Internal & Oracle Academy Use Only


disparadores
• Controlar y resolver conflictos de bloqueo

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 8-2


Manipulación de Datos mediante SQL > SQL
.
PL/SQL
Bloqueos

SQL> INSERT INTO employees VALUES


2 (9999,'Bob','Builder','bob@abc.net',NULL,SYSDATE,
3 'IT_PROG',NULL,NULL,100,90);

1 row created.

Oracle Internal & Oracle Academy Use Only


SQL> UPDATE employees SET SALARY=6000
2 WHERE EMPLOYEE_ID = 9999;

1 row updated.

SQL> DELETE from employees


2 WHERE EMPLOYEE_ID = 9999;

1 row deleted.

Copyright © 2005, Oracle. Todos los derechos reservados.

Manipulación de Datos mediante SQL


Las sentencias básicas del lenguaje de manipulación de datos (DML) son el modo en que se
manipulan los datos en la base de datos. Aunque estas sentencias se mencionaron brevemente en
la lección con el título “Movimiento de Datos”, se tratarán más detalladamente en esta lección.

Base de Datos Oracle 10g: Taller de Administración I 8-3


Comando INSERT

• Crear filas de una en una.


• Insertar varias filas de otra tabla.

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Comando INSERT
La sentencia básica INSERT crea filas de una en una. Mediante lo que se denomina
subselección, puede hacer que el comando INSERT copie filas de una tabla a otra. Este método
también se denomina sentencia INSERT SELECT. El ejemplo de la diapositiva es el siguiente
comando INSERT:
insert into dept_80 (select * from employees
where department_id = 80);
En este caso la tabla dept_80 tiene exactamente la misma estructura que la tabla employees.
Si este no es el caso, puede nombrar las columnas de cada tabla. Los valores seleccionados en la
sentencia SELECT se asocian a las columnas de la tabla en la que se insertan, respectivamente.
Los valores de columna coinciden en el orden especificado en las sentencias INSERT y
SELECT. Todo lo que se necesita es que los tipos de dato coincidan. Por ejemplo:
insert into just_names (first, last)
(select first_name, last_name from employees);
Aquí, la tabla just_names sólo tiene dos columnas que tienen el mismo tipo de dato que las
columnas first_name y last_name de la tabla employees.
El uso del método INSERT SELECT es un modo de cargar datos en bloque de una o más tablas
en otra tabla.

Base de Datos Oracle 10g: Taller de Administración I 8-4


Comando UPDATE

Utilice el comando UPDATE para cambiar cero o más


filas de una tabla.

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Comando UPDATE
El comando UPDATE se utiliza para modificar filas existentes de una tabla. El número de filas
modificadas por el comando UPDATE depende de la condición WHERE. Si se omite la cláusula
WHERE, se cambian todas las filas. Si ninguna fila cumple la condición WHERE, no se realizarán
modificaciones.

Base de Datos Oracle 10g: Taller de Administración I 8-5


Comando DELETE

Utilice el comando DELETE para eliminar cero o más


filas de una tabla.

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Comando DELETE
El comando DELETE se utiliza para eliminar filas existentes de una tabla. El número de filas
modificadas por el comando DELETE depende de la condición WHERE. Si se omite la cláusula
WHERE, se eliminan todas las filas. Si ninguna fila cumple la condición WHERE, no se eliminará
ninguna fila. Tenga en cuenta en el ejemplo que cuando no se suprime ninguna fila, no es un
error; el mensaje devuelto sólo indica que se han eliminado cero filas de la tabla.

Base de Datos Oracle 10g: Taller de Administración I 8-6


Comando MERGE

Utilice el comando MERGE para realizar las acciones de


INSERT y UPDATE con un único comando.

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Comando MERGE
El comando MERGE realiza las acciones de UPDATE e INSERT en el mismo comando. Puede
fusionar datos de un origen de datos con otro, insertar de manera opcional filas nuevas y
actualizar columnas específicas si ya existe una fila.
Considere este ejemplo: Algunos datos de la tabla JOBS tienen el siguiente aspecto:

JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY


---------- -------------- ---------- ----------
AD_PRES President 20000 40000
FI_ACCOUNT Accountant 4200 9000
ST_CLERK Stock Clerk 2000 5000
IT_PROG Programmer 4000 10000

Base de Datos Oracle 10g: Taller de Administración I 8-7


Comando MERGE (continuación)
A continuación se muestra el contenido de la tabla JOBS_ACQUISITION:

JOB_ID JOB_TITLE MIN_SALARY MAX_SALARY


---------- -------------- ---------- ----------
AD_PRES VP 20000 40000
DBA DB Admin 4200 9000
SA Sys Admin 2000 5000

El comando MERGE inserta en la tabla JOBS cualquier fila con un JOB_ID nuevo y actualiza
las filas JOBS existentes con JOB_TITLE, si ya existe JOB_ID. El resultado es que el cargo
“President” se cambia por “VP” y se agregan los trabajos nuevos “SA” y “DBA”.

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g: Taller de Administración I 8-8


Comandos COMMIT y ROLLBACK

Los siguientes comandos se utilizan para terminar una


transacción:
• COMMIT: Hace que el cambio sea permanente
• ROLLBACK: Deshace el cambio

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Comandos COMMIT y ROLLBACK


Por defecto, cada comando DML que se introduce no está confirmado. Varias herramientas
(incluida iSQL*Plus) tienen opciones que se pueden definir para confirmar cada comando o un
grupo de comandos.
Antes de emitir COMMIT o ROLLBACK, los cambios tienen un estado pendiente. Sólo el usuario
que ha realizado el cambio puede ver los datos cambiados. Otros usuarios pueden seleccionar los
mismos datos, pero los verán como estaban antes de realizar cualquier cambio. Ningún otro
usuario puede emitir DML en los mismos datos que otro usuario ha cambiado.
Por defecto, un usuario que intente realizar un cambio en la misma fila que otro usuario tiene
que esperar a que el primer usuario confirme el cambio o realice un rollback. El mecanismo de
bloqueo de la base de datos Oracle controla esta operación de forma automática. Puesto que el
mecanismo de bloqueo está incorporado en la propia fila, es imposible que la base de datos se
quede sin bloqueos.

Base de Datos Oracle 10g: Taller de Administración I 8-9


PL/SQL SQL
> PL/SQL
Bloqueos

La extensión de lenguaje de procedimiento para SQL


(PL/SQL) de Oracle es un lenguaje de programación de
cuarta generación (4GL). Proporciona:
• Extensiones de procedimiento a SQL
• Portabilidad entre plataformas y productos

Oracle Internal & Oracle Academy Use Only


• Mayor nivel de seguridad y de protección de la
integridad de los datos
• Soporte para programación orientada a objetos

Copyright © 2005, Oracle. Todos los derechos reservados.

PL/SQL
PL/SQL es un lenguaje de programación de cuarta generación propietario de Oracle que
proporciona extensiones de procedimiento a SQL. PL/SQL proporciona un entorno de
programación común para las aplicaciones y las bases de datos Oracle independientemente
del sistema operativo o de la plataforma de hardware.
Con PL/SQL, puede manipular datos con sentencias SQL y controlar el flujo de programas
con estructuras de procedimientos como IF-THEN, CASE y LOOP. También puede declarar
constantes y variables, definir procedimientos y funciones, utilizar recopilaciones y tipos de
objetos, e interrumpir errores de tiempo de ejecución. El programa PL/SQL también puede
llamar a programas escritos en otros lenguajes como C, C++ y Java.
PL/SQL también proporciona protección de los datos. El emisor necesita conocer las estructuras
de datos que se están leyendo o manipulando para realizar la llamada. Asimismo, también
necesita tener permiso para acceder a esos objetos; si el emisor tiene permiso para ejecutar el
programa PL/SQL, es todo lo que necesita. De manera opcional, existe otro modo de permisos
para llamar a PL/SQL en el que el emisor tiene que disponer de permiso para ejecutar cada
sentencia que se ejecute durante el programa llamado.

Base de Datos Oracle 10g: Taller de Administración I 8-10


PL/SQL (continuación)
Puesto que se ejecuta en la base de datos, el código PL/SQL es muy eficaz para las operaciones
que utilizan muchos datos y minimiza el tráfico de red en las aplicaciones.
Para obtener más información sobre estructuras de procedimientos y usos de PL/SQL, consulte la
documentación PL/SQL User’s Guide and Reference.

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g: Taller de Administración I 8-11


Administración de Objetos PL/SQL

Los administradores de la base de datos deberían


estar capacitados para:
• Identificar problemas de objetos PL/SQL
• Recomendar el uso adecuado de PL/SQL
• Cargar objetos PL/SQL en la base de datos

Oracle Internal & Oracle Academy Use Only


• Ayudar a los desarrolladores de PL/SQL a
solucionar problemas

Copyright © 2005, Oracle. Todos los derechos reservados.

Administración de Objetos PL/SQL


Como DBA, normalmente no es responsable de cargar el código PL/SQL en la base de datos
ni de ayudar a los desarrolladores a solucionar problemas. En general tampoco se espera
que escriba aplicaciones mediante el uso de PL/SQL, pero debería estar suficientemente
familiarizado con los diferentes objetos PL/SQL para realizar recomendaciones a los
desarrolladores de aplicaciones e identificar objetos con problemas.
En Database Control, puede acceder a objetos PL/SQL si hace clic en el separador
Administration situado bajo Schema. Al hacer clic en el tipo de objeto, puede visualizar,
modificar y crear el tipo de objeto PL/SQL seleccionado.

Base de Datos Oracle 10g: Taller de Administración I 8-12


Objetos PL/SQL

Existen muchos tipos de objetos de base de datos


PL/SQL:
• Paquete
• Cuerpo del paquete
• Cuerpo del tipo

Oracle Internal & Oracle Academy Use Only


• Procedimiento
• Función
• Disparador

Copyright © 2005, Oracle. Todos los derechos reservados.

Objetos PL/SQL
• Paquete: Un paquete es una recopilación de procedimientos y funciones que están
relacionados lógicamente. Esta parte del paquete también se denomina especificación
y describe la interfaz para las aplicaciones; declara los tipos, variables, constantes,
excepciones, cursores y subprogramas disponibles para su uso.
• Cuerpo del paquete: El cuerpo define totalmente los cursores y subprogramas, y de este
modo implementa la especificación. El cuerpo contiene los detalles de implementación y
las declaraciones privadas, que están ocultas para el emisor.
• Cuerpo del tipo: Es una recopilación de métodos (procedimientos y funciones) asociados
a los tipos de dato definidos por el usuario. Para obtener más información sobre los tipos de
dato definidos por el usuario, consulte Oracle Database Application Developer’s Guide –
Object Relational Features.
• Procedimiento: Un procedimiento es un bloque PL/SQL que realiza una acción concreta.
• Función: Una función es un bloque PL/SQL que devuelve un único valor mediante el
comando PL/SQL RETURN. Es un procedimiento que tiene un valor de retorno.
• Disparador: Un disparador es un bloque PL/SQL que se ejecuta cuando se produce un
evento concreto en la base de datos. Estos eventos se pueden basar en una tabla, por
ejemplo, cuando se inserta una fila en la tabla. También pueden ser eventos de base de
datos, como cuando un usuario se conecta a la base de datos.

Base de Datos Oracle 10g: Taller de Administración I 8-13


Funciones

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Funciones
Las funciones PL/SQL se utilizan normalmente para calcular un valor. Existen muchas funciones
incorporadas como SYSDATE, SUM, AVG y TO_DATE. Los desarrolladores también crean sus
propias funciones al escribir aplicaciones. El código para una función PL/SQL debe contener una
sentencia RETURN. Para crear funciones PL/SQL hay que introducir un nombre, un esquema y
un código de origen, como se muestra en la diapositiva.
La función compute_tax mostrada en la diapositiva se crea con el siguiente comando SQL:
CREATE OR REPLACE FUNCTION compute_tax (salary NUMBER)
RETURN NUMBER
AS
BEGIN
IF salary<5000 THEN
RETURN salary*.15;
ELSE
RETURN salary*.33;
END IF;
END;
/

Base de Datos Oracle 10g: Taller de Administración I 8-14


Procedimientos

Los procedimientos se utilizan para realizar una


acción concreta. Estos procedimientos:
• Transfieren valores de entrada y salida mediante
una lista de argumentos
• Se llaman con el comando CALL

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Procedimientos
Los procedimientos PL/SQL realizan una acción concreta. Al igual que las funciones, los
procedimientos pueden aceptar valores de entrada y realizar sentencias condicionales como
IF-THEN, CASE y LOOP.

Base de Datos Oracle 10g: Taller de Administración I 8-15


Paquetes

Los paquetes son recopilaciones de funciones y


procedimientos. Cada paquete debe constar de
dos objetos:
• Especificación del paquete
• Cuerpo del paquete

Oracle Internal & Oracle Academy Use Only


Especificación del paquete

Copyright © 2005, Oracle. Todos los derechos reservados.

Paquetes
Los paquetes son recopilaciones de funciones y procedimientos. Existen ventajas de rendimiento
y mantenimiento al agrupar funciones y procedimientos en un único paquete. Cada paquete debe
estar formado por dos objetos de base de datos compilados por separado:
• Especificación del paquete: Este objeto (en ocasiones denominado cabecera del paquete)
tiene un tipo de objeto PACKAGE y sólo contiene la definición de los procedimientos,
funciones y variables del paquete.
• Cuerpo del paquete: Este objeto tiene un tipo de objeto PACKAGE BODY y contiene el
código real de los subprogramas definidos en la especificación del paquete.
Los procedimientos y funciones que se llaman desde un paquete se llaman mediante una
notación de puntos:
nombre_paquete.nombre_procedimiento o nombre_función
En el paquete que se muestra en la diapositiva, los subprogramas se pueden llamar de la
siguiente forma:
SQL> SELECT money.compute_tax(salary) FROM hr.employees
WHERE employee_id=107;
SQL> EXECUTE money.give_raise_to_all;

Base de Datos Oracle 10g: Taller de Administración I 8-16


Especificación y Cuerpo del Paquete

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Cuerpo del Paquete


Los cuerpos de paquetes:
• Están separados de las especificaciones del paquete. Por este motivo, el código del cuerpo
se puede cambiar y recompilar, y otros objetos que son dependientes de la especificación
no se marcan como no válidos.
• Contienen el código para los subprogramas definidos en la especificación del paquete.
Aquí es dónde se realiza el trabajo. La especificación muestra cómo llamar a los
subprogramas del paquete; el cuerpo es la sección de código.
• No se pueden compilar a menos que la especificación del paquete ya se haya compilado.
Puede crear una especificación sin cuerpo, pero no puede crear un cuerpo sin
especificación.
• Se pueden ajustar para ocultar detalles del código. Wrap es un programa autónomo que
oculta código de origen PL/SQL de manera que puede entregar aplicaciones PL/SQL sin
exponer este código de origen. Para obtener más información sobre el uso de Wrap,
consulte PL/SQL User’s Guide and Reference.

Base de Datos Oracle 10g: Taller de Administración I 8-17


Paquetes Incorporados

• La base de datos Oracle tiene más de 350 paquetes


PL/SQL incorporados que proporcionan:
– Utilidades de administración y mantenimiento
– Funciones ampliadas
• Utilice el comando DESCRIBE para visualizar los
subprogramas.

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Paquetes Incorporados
Los paquetes PL/SQL incorporados que se proporcionan con la base de datos Oracle
proporcionan acceso a funciones ampliadas de la base de datos, como el servicio de gestión de
colas avanzadas, el cifrado y la entrada/salida (E/S) de archivos. También incluyen muchas
utilidades de administración y de mantenimiento.
Los paquetes que utiliza un administrador dependen del tipo de aplicaciones que sirve la base
de datos. A continuación se muestran algunos de los paquetes de administración y de
mantenimiento más comunes:
• DBMS_STATS: Recopilación, visualización y modificación de estadísticas del optimizador
• DBMS_OUTPUT: Generación de salida de PL/SQL
• DBMS_SESSION: Acceso PL/SQL a las sentencias ALTER SESSION y SET ROLE
• DBMS_RANDOM: Generación de números aleatorios
• DBMS_UTILITY: Obtención de la hora, hora de la CPU y la información de versión;
cálculo de un valor hash y realización de otras muchas funciones
• DBMS_SCHEDULER: Planificación de funciones y procedimientos que se pueden llamar
desde PL/SQL
• DBMS_CRYPTO: Cifrado y descifrado de datos de la base de datos
• UTL_FILE: Lectura y escritura en los archivos del sistema operativo desde PL/SQL
Nota: Para obtener más información sobre estos y otros paquetes incorporados, consulte el
manual PL/SQL Packages and Types Reference.

Base de Datos Oracle 10g: Taller de Administración I 8-18


Disparadores

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Disparadores
Los disparadores son objetos de código PL/SQL que se almacenan en la base de datos y que se
ejecutan o “arrancan” automáticamente cuando sucede algo. La base de datos Oracle permite que
muchas acciones sirvan como eventos disparadores, entre las que se incluyen una inserción en
una tabla, la conexión de un usuario a la base de datos y el intento de borrar una tabla o el
cambio de valores de auditoría.
Los disparadores pueden llamar a otros procedimientos o funciones. Lo más recomendable es
acortar todo lo posible el código del disparador y colocar todo aquello que necesite un código
más largo en un paquete independiente.
Los DBA utilizan disparadores para ayudar en las auditorías basadas en valores (se tratará en
la lección titulada “Implementación de Seguridad de la Base de Datos Oracle”), para aplicar
restricciones complejas y para automatizar muchas tareas. Por ejemplo, el disparador
SECURE_EMPLOYEES que se muestra en la diapositiva registra todas las sentencias DML
en una tabla de mantenimiento.

Base de Datos Oracle 10g: Taller de Administración I 8-19


Eventos Disparadores

Tipo de Evento Ejemplos de Eventos


DML INSERT, UPDATE, DELETE
DDL CREATE, DROP, ALTER, GRANT, REVOKE,
RENAME
Base de datos LOGON, LOGOFF, STARTUP, SHUTDOWN,

Oracle Internal & Oracle Academy Use Only


SERVERERROR

Copyright © 2005, Oracle. Todos los derechos reservados.

Eventos Disparadores
Existen muchos eventos que se pueden utilizar para arrancar un disparador y se dividen en tres
categorías.
• Los disparadores de eventos DML se arrancan cuando las sentencias modifican los datos.
• Los disparadores de eventos DDL se arrancan cuando las sentencias crean un objeto o lo
modifican de alguna forma.
• Los disparadores de evento de base de datos se arrancan cuando suceden ciertos eventos en
la base de datos.
Se puede especificar que la mayoría de los disparadores arranquen antes o después de que se
produzca el evento. Con los eventos DML, el disparador se puede diseñar para que se arranque
una vez con la sentencia o con cada fila que se modifique.

Base de Datos Oracle 10g: Taller de Administración I 8-20


Bloqueos SQL
PL/SQL
> Bloqueos

• Los bloqueos evitan que varias sesiones cambien


los mismos datos al mismo tiempo.
• Se obtienen automáticamente en el nivel más bajo
posible para una sentencia determinada.
• No escalan.

Oracle Internal & Oracle Academy Use Only


Transacción 1 Transacción 2

SQL> UPDATE employees SQL> UPDATE employees


2 SET salary=salary+100 2 SET salary=salary*1.1
3 WHERE employee_id=100; 3 WHERE employee_id=100;

Copyright © 2005, Oracle. Todos los derechos reservados.

Bloqueos
Para que la base de datos permita que una sesión modifique datos, la sesión debe bloquear
primero los datos que se van a modificar. Un bloqueo ofrece a la sesión el control exclusivo
sobre los datos, para que ninguna otra transacción pueda modificar los datos bloqueados hasta
que se libera el bloqueo.
Las transacciones pueden bloquear filas individuales de datos, varias filas o incluso tablas
completas. La base de datos Oracle 10g soporta tanto bloqueo manual como el automático.
Los bloqueos adquiridos automáticamente eligen siempre el nivel de bloqueo más bajo posible
para minimizar posibles conflictos con otras transacciones.

Base de Datos Oracle 10g: Taller de Administración I 8-21


Mecanismo de Bloqueo

• Alto nivel de simultaneidad de datos:


– Bloqueos de nivel de fila para inserciones,
actualizaciones y supresiones
– No se necesita ningún bloqueo en las consultas
• Gestión automática de la cola
• Bloqueos retenidos hasta que finaliza la transacción

Oracle Internal & Oracle Academy Use Only


(con la operación COMMIT o ROLLBACK)

Transacción 1 Transacción 2

SQL> UPDATE employees SQL> UPDATE employees


2 SET salary=salary+100 2 SET salary=salary*1.1
3 WHERE employee_id=100; 3 WHERE employee_id=101;

Copyright © 2005, Oracle. Todos los derechos reservados.

Mecanismo de Bloqueo
El mecanismo de bloqueo está diseñado para proporcionar el máximo grado posible de
simultaneidad de datos en la base de datos. Las transacciones que modifican datos adquieren
bloqueos de nivel de fila en lugar de bloqueos de nivel de tabla o de bloque. Las modificaciones
de objetos (como movimientos de tabla) obtienen bloqueos de nivel de objeto en lugar de
bloqueos de todo el esquema o base de datos.
Las consultas de datos no necesitan ningún bloqueo y una consulta se realiza correctamente
aunque los datos estén bloqueados (mostrando siempre el original, el valor previo al bloqueo
reconstruido a partir de información de deshacer).
Cuando varias transacciones necesitan bloquear el mismo recurso, la primera transacción que
solicita el bloqueo lo obtiene. Las demás transacciones esperan hasta que termina la primera
transacción. El mecanismo de cola es automático y no necesita la interacción del administrador.
Todos los bloqueos se liberan al final de una transacción. Las transacciones se completan cuando
se emite un comando COMMIT o ROLLBACK. En caso de una transacción fallida, el mismo
proceso en segundo plano que automáticamente realiza un rollback de los cambios de la
transacción fallida libera todos los bloqueos retenidos por esa transacción.

Base de Datos Oracle 10g: Taller de Administración I 8-22


Simultaneidad de Datos

Hora: Transacción 1 UPDATE hr.employees


SET salary=salary+100
WHERE employee_id=100;
Transacción 2 UPDATE hr.employees
SET salary=salary+100
WHERE employee_id=101;
09:00:00 Transacción 3 UPDATE hr.employees

Oracle Internal & Oracle Academy Use Only


SET salary=salary+100
WHERE employee_id=102;
... ...
Transacción x UPDATE hr.employees
SET salary=salary+100
WHERE employee_id=xxx;

Copyright © 2005, Oracle. Todos los derechos reservados.

Simultaneidad de Datos
El mecanismo de bloqueo es por defecto un modo de bloqueo detallado de nivel de fila. Distintas
transacciones pueden estar actualizando diferentes filas dentro de la misma tabla sin interferir las
unas en las otras.
Aunque el modelo por defecto es el bloqueo en el nivel de fila, la base de datos Oracle soporta el
bloqueo manual en niveles superiores si es necesario:
SQL> LOCK TABLE employees IN EXCLUSIVE MODE;
Table(s) Locked.
Con la sentencia anterior, cualquier otra transacción que intente actualizar una fila de la tabla
bloqueada debe esperar hasta que termine la transacción que emitió la solicitud de bloqueo.
EXCLUSIVE es el modo de bloqueo más absoluto. Los otros modos de bloqueo son los
siguientes:
• ROW SHARE: Permite el acceso simultáneo a la tabla bloqueada, pero prohíbe que las
sesiones bloqueen toda la tabla para un acceso exclusivo.
• ROW EXCLUSIVE: Igual que ROW SHARE, pero también prohíbe el bloqueo en el modo
SHARE. Los bloqueos ROW EXCLUSIVE se obtienen automáticamente al actualizar,
insertar o suprimir datos.

Base de Datos Oracle 10g: Taller de Administración I 8-23


Simultaneidad de Datos (continuación)
• SHARE: Permite consultas simultáneas, pero prohíbe actualizaciones en la tabla bloqueada.
Es necesario un bloqueo SHARE (y se solicita automáticamente) para crear un índice en
una tabla.
• SHARE ROW EXCLUSIVE: Se utiliza para consultar una tabla completa y permitir que
otros consulten filas de la misma, pero prohíbe que los demás bloqueen la tabla en modo
SHARE o actualicen filas.
• EXCLUSIVE: Permite realizar consultas de la tabla bloqueada pero prohíbe las demás
actividades en ella. Es necesario un bloqueo EXCLUSIVE para borrar una tabla.
Como cualquier solicitud de bloqueo, las sentencias de bloqueo manual esperan hasta que todas
las sesiones que ya tienen bloqueos o que los han solicitado con anterioridad liberen sus
bloqueos. El comando LOCK acepta un argumento especial que controla el comportamiento de
espera, NOWAIT.

Oracle Internal & Oracle Academy Use Only


NOWAIT devuelve el control inmediatamente si la tabla especificada ya está bloqueada por otra
sesión:
SQL> LOCK TABLE hr.employees IN SHARE MODE NOWAIT;
LOCK TABLE hr.employees IN SHARE MODE NOWAIT
*
ERROR at line 1:
ORA-00054: resource busy and acquire with NOWAIT specified
Normalmente no es necesario bloquear manualmente los objetos. El mecanismo de bloqueo
automático proporciona la simultaneidad de datos necesaria para la mayoría de las aplicaciones.

Base de Datos Oracle 10g: Taller de Administración I 8-24


Bloqueos de DML

Transacción 1 Transacción 2
SQL> UPDATE employees SQL> UPDATE employees
2 SET salary=salary*1.1 2 SET salary=salary*1.1
3 WHERE employee_id= 107; 3 WHERE employee_id= 106;
1 row updated. 1 row updated.

Oracle Internal & Oracle Academy Use Only


Las transacciones de DML deben adquirir dos bloqueos:
• Bloqueo EXCLUSIVE de fila para la fila o filas que se
van a actualizar
• Bloqueo de nivel de tabla ROW EXCLUSIVE para la
tabla que contiene las filas

Copyright © 2005, Oracle. Todos los derechos reservados.

Bloqueos de DML
Las transacciones de DML obtienen dos bloqueos:
• Bloqueo EXCLUSIVE de fila para la fila o filas que se van a actualizar.
• Bloqueo de nivel de tabla ROW EXCLUSIVE en la tabla que se va a actualizar. Sirve para
evitar que otra sesión bloquee la tabla completa (posiblemente para borrarla o truncarla)
mientras se realiza el cambio.

Base de Datos Oracle 10g: Taller de Administración I 8-25


Mecanismo de Puesta en Cola

El mecanismo de puesta en cola realiza el seguimiento


de lo siguiente:
• Sesiones en espera de bloqueos
• Modo de bloqueo solicitado
• Orden en el que las sesiones solicitaron el bloqueo

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Mecanismo de Puesta en Cola


Las solicitudes de bloqueos se ponen en cola automáticamente. En cuanto termina la transacción
que retiene un bloqueo, la siguiente sesión de la cola recibe el bloqueo.
El mecanismo de puesta en cola realiza el seguimiento del orden en el que se han solicitado los
bloqueos y el modo de bloqueo solicitado.
Las sesiones que ya retienen un bloqueo pueden solicitar convertir dicho bloqueo sin tener que ir
al final de la cola. Por ejemplo, si una sesión retiene un bloqueo SHARE en una tabla, la sesión
puede solicitar convertir el bloqueo SHARE en un bloqueo EXCLUSIVE. Siempre que nadie más
tenga ya un bloqueo EXCLUSIVE o SHARE de la tabla, se otorgará un bloqueo SHARE a la
sesión que retiene el bloqueo EXCLUSIVE sin tener que volver a esperar en la cola.

Base de Datos Oracle 10g: Taller de Administración I 8-26


Conflictos de Bloqueo

Transacción 1 Hora Transacción 2


UPDATE employees SET 9:00:00 UPDATE employees SET
salary=salary+100 WHERE salary=salary+100 WHERE
employee_id=100; employee_id=101;
1 row updated. 1 row updated.
UPDATE employees SET 9:00:05 SELECT sum(salary) FROM
COMMISION_PCT=2 WHERE employees;

Oracle Internal & Oracle Academy Use Only


employee_id=101; SUM(SALARY)
La sesión espera en la cola -----------
debido a un conflicto de bloqueo. 692634
La sesión aún está en espera. Muchas selecciones, inserciones,
16:30:00 actualizaciones y supresiones
durante las últimas 7,5 horas, pero
ninguna confirmación ni rollback.
1 row updated. 16:30:01 commit;
La sesión continúa.

Copyright © 2005, Oracle. Todos los derechos reservados.

Conflictos de Bloqueo
Los conflictos de bloqueo se producen con frecuencia, pero normalmente se resuelven con el
tiempo y el mecanismo de cola. En algunos casos excepcionales, puede que sea necesaria la
intervención del administrador en un conflicto de bloqueo. En el caso de la diapositiva, la
transacción 2 obtiene un bloqueo de una única fila a las 9:00:00 y no se realiza la confirmación,
dejando el bloqueo en su lugar. La transacción 1 intenta actualizar toda la tabla a las 9:00:05, lo
que necesita un bloqueo de todas las filas. La transacción 2 bloquea la transacción 1 hasta que la
transacción 2 realiza la confirmación a las 16:30:01.
El usuario que intenta realizar la transacción 1 se pondría en contacto casi con toda probabilidad
con el administrador para solicitar ayuda en este caso, y el DBA debería detectar y resolver el
conflicto.

Base de Datos Oracle 10g: Taller de Administración I 8-27


Posibles Causas de Conflictos de Bloqueo

• Cambios sin confirmar


• Transacciones con una ejecución muy larga
• Niveles altos de bloqueo innecesarios

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Posibles Causas de Conflictos de Bloqueo


La causa más común de conflictos de bloqueo es un cambio sin confirmar, aunque existen
algunas otras causas posibles:
• Transacciones con una ejecución muy larga: Muchas aplicaciones utilizan el
procesamiento por lotes para realizar actualizaciones en bloque. Estos trabajos por lotes
normalmente se planifican para momentos de baja o ninguna actividad de los usuarios,
pero puede que en algunos casos no hayan terminado o tarden demasiado en ejecutarse
durante el período de baja actividad. Los conflictos de bloqueo son comunes cuando la
transacción y el procesamiento por lotes se están realizando simultáneamente.
• Niveles altos de bloqueo innecesarios: No todas las bases de datos soportan el bloqueo de
nivel de fila (Oracle introdujo el soporte para los bloqueos de nivel de fila en 1988 con la
versión 6). Algunas bases de datos aún realizan bloqueos en el nivel de tabla o de página.
Los desarrolladores que escriben aplicaciones destinadas a ejecutarse en muchas bases de
datos diferentes suelen escribir sus aplicaciones con niveles de bloqueo artificialmente
altos para que la base de datos Oracle se comporte de manera similar a aquellos sistemas
de base de datos con menos posibilidades. Además, los desarrolladores nuevos en Oracle
a veces codifican innecesariamente en niveles de bloqueo más altos de los que necesita la
base de datos Oracle.

Base de Datos Oracle 10g: Taller de Administración I 8-28


Detección de Conflictos de Bloqueo

Seleccione Blocking Sessions en la página Performance.

Oracle Internal & Oracle Academy Use Only


Haga clic en el enlace Session ID para ver información
sobre la sesión bloqueante, que incluye la sentencia
SQL real.

Copyright © 2005, Oracle. Todos los derechos reservados.

Detección de Conflictos de Bloqueo


Utilice la página Blocking Sessions de Enterprise Manager para localizar conflictos de bloqueo.
Las solicitudes de bloqueo en conflicto se muestran con un diseño jerárquico en el que la sesión
que retiene el bloqueo se sitúa en la parte superior, seguidas de todas las sesiones que están en
cola para el bloqueo.
Para cada sesión implicada en el conflicto se proporciona el nombre de usuario, el identificador
de sesión y el número de segundos que la sesión ha estado en espera. Acceda al identificador de
sesión para ver las sentencias SQL reales ejecutadas o solicitadas por la sesión en ese momento.
El monitor de diagnóstico de base de datos automático (ADDM) también detecta de manera
automática los conflictos de bloqueo y puede avisarle de las tendencias de bloqueo ineficaces.

Base de Datos Oracle 10g: Taller de Administración I 8-29


Resolución de Conflictos de Bloqueo

Para resolver un conflicto de bloqueo:


• Haga que la sesión que retiene el bloqueo realice
una confirmación o un rollback
• Termine la sesión que retiene el bloqueo como
último recurso

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Resolución de Conflictos de Bloqueo


Para resolver un conflicto de bloqueo, la sesión que retiene el bloqueo debe liberarlo. El mejor
modo de que la sesión libere el bloqueo es ponerse en contacto con el usuario y pedir que
termine la transacción.
En caso de emergencia, el administrador puede terminar la sesión que retiene el bloqueo
haciendo clic en el botón Kill Session. Recuerde que cuando se mata una sesión todo el trabajo
de la transacción actual se pierde (se realiza un rollback). Un usuario cuya sesión se ha matado
debe volver a conectarse y rehacer todo el trabajo desde la última confirmación de la sesión
matada.
Los usuarios cuyas sesiones se han matado recibirán el siguiente error la siguiente vez que
intenten emitir una sentencia SQL:
ORA-03135: connection lost contact

Base de Datos Oracle 10g: Taller de Administración I 8-30


Resolución de Conflictos de Bloqueo
mediante SQL

Las sentencias SQL se pueden utilizar para determinar


la sesión de bloqueo y matarla.

SQL> select sid, serial#, username


1 from v$session where sid in
(select blocking_session from v$session)

Oracle Internal & Oracle Academy Use Only


Resultado:

2 SQL> alter system kill session '144,8982' immediate;

Copyright © 2005, Oracle. Todos los derechos reservados.

Resolución de Conflictos de Bloqueo mediante SQL


La manipulación de sesiones, al igual que la mayoría del resto de tareas realizadas en Enterprise
Manager, también se puede realizar mediante la emisión de sentencias SQL. La tabla
v$session contiene detalles de todas las sesiones conectadas. blocking_session es el
identificador de sesión de la sesión que se está bloqueando. De esta forma, si consulta el valor
de SID y SERIAL#, donde SID se corresponde con un identificador de sesión de bloqueo,
dispondrá de la información necesaria para realizar la operación kill session.

Base de Datos Oracle 10g: Taller de Administración I 8-31


Interbloqueos

Transacción 1 Transacción 2

UPDATE employees UPDATE employees


SET salary = salary x 1.1 9:00 SET manager = 1342
WHERE employee_id = 1000; WHERE employee_id = 2000;

Oracle Internal & Oracle Academy Use Only


UPDATE employees UPDATE employees
SET salary = salary x 1.1 9:15 SET manager = 1342
WHERE employee_id = 2000; WHERE employee_id = 1000;
ORA-00060:
Deadlock detected while 9:16
waiting for resource

Copyright © 2005, Oracle. Todos los derechos reservados.

Interbloqueos
Un interbloqueo es un ejemplo especial de conflicto de bloqueo. Los interbloqueos surgen
cuando dos o más sesiones esperan los datos que bloquean entre ellas. Puesto que cada una
está esperando a la otra, ninguna puede terminar la transacción para resolver el conflicto.
La base de datos Oracle detecta automáticamente los interbloqueos y termina la sentencia con un
error. La respuesta adecuada a ese error es una acción de confirmación o de rollback, que libera
cualquier otro bloqueo de esa sesión para que la otra sesión pueda continuar con su transacción.
En el ejemplo de la diapositiva, la transacción 1 debe realizar una confirmación o un rollback
como respuesta al error detectado de interbloqueo. Si realiza una confirmación, necesitará
volver a enviar la segunda actualización para terminar su transacción. Si realiza un rollback,
debe volver a enviar ambas sentencias para terminar su transacción.

Base de Datos Oracle 10g: Taller de Administración I 8-32


Resumen

En esta lección, debe haber aprendido lo siguiente:


• Gestionar datos mediante el uso de SQL
• Identificar y administrar objetos PL/SQL
• Describir los disparadores y los eventos
disparadores

Oracle Internal & Oracle Academy Use Only


• Controlar y resolver conflictos de bloqueo

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 8-33


Visión General de la Práctica:
Gestión de Datos y Simultaneidad

En esta práctica se abordan los siguientes temas:


• Identificación de conflictos de bloqueo
• Resolución de conflictos de bloqueo

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 8-34


Gestión de Datos de Deshacer

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.
Objetivos

Al finalizar esta lección, debería estar capacitado para


lo siguiente:
• Explicar DML y la generación de datos de
deshacer
• Controlar y administrar datos de deshacer

Oracle Internal & Oracle Academy Use Only


• Describir la diferencia entre datos de deshacer y
de redo
• Configurar la retención de deshacer
• Garantizar la retención de deshacer
• Utilizar el Asesor de Deshacer

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 9-2


Manipulación de Datos

• El lenguaje de manipulación de datos (DML)


consta de las siguientes sentencias SQL:
– INSERT
– UPDATE
– DELETE

Oracle Internal & Oracle Academy Use Only


– MERGE
• DML siempre se ejecuta como parte de una
transacción, que puede ser:
– Una transacción en la que se ha realizado rollback,
mediante el comando ROLLBACK
– Una transacción confirmada, mediante el comando
COMMIT

Copyright © 2005, Oracle. Todos los derechos reservados.

Manipulación de Datos
Los datos se manipulan, o modifican, mediante la clase DML de sentencias SQL: INSERT,
UPDATE, DELETE y MERGE. Estas sentencias se ejecutan como parte de una transacción,
que se inicia con la primera sentencia DML correcta y termina con un comando COMMIT o
ROLLBACK. En las transacciones sólo se puede realizar una operación de confirmación o de
rollback.
La operación de rollback también se puede producir si hay un fallo del sistema o de proceso.
Nota: El comando MERGE realiza una combinación de inserciones y actualizaciones para
fusionar datos de una tabla en otra. Este tema se aborda en la lección titulada “Gestión de Datos
y Simultaneidad”.

Base de Datos Oracle 10g: Taller de Administración I 9-3


Datos de Deshacer

Los datos de deshacer:


• Son una copia de los datos originales antes de la
modificación
• Se capturan para cada transacción que cambia datos
• Se retienen al menos hasta que finaliza la transacción
• Se utilizan para dar soporte a:

Oracle Internal & Oracle Academy Use Only


– Operaciones de rollback
– Consultas de flashback y de
lectura consistente
– Recuperación de
transacciones fallidas

Usuario

Copyright © 2005, Oracle. Todos los derechos reservados.

Datos de Deshacer
La base de datos Oracle guarda el valor anterior (datos de deshacer) cuando un proceso cambia
datos de una base de datos. Almacena los datos como existían antes de que se modificaran. La
captura de datos de deshacer le permite realizar una operación de rollback en los datos no
confirmados. Los datos de deshacer también soportan consultas de flashback y de lectura
consistente.
Las consultas de lectura consistente proporcionan resultados que son consistentes con los datos
en el momento en que se inicia una consulta. Para que una consulta de lectura consistente se
realice correctamente, la información original debe existir aún como información de deshacer.
Mientras se retenga la información de deshacer, la base de datos Oracle puede reconstruir datos
que cumplan las consultas de lectura consistente.
Las consultas de flashback son consultas que piden con determinación una versión de los datos
tal como existían en algún momento del pasado. Siempre que la información de deshacer del
pasado exista, las consultas de flashback pueden terminar correctamente.

Base de Datos Oracle 10g: Taller de Administración I 9-4


Datos de Deshacer (continuación)
Los datos de deshacer también se utilizan para la recuperación de transacciones fallidas.
Una transacción fallida se produce cuando una sesión de usuario termina de forma anormal
(posiblemente debido a errores de red o a un fallo en la computadora cliente) antes de que el
usuario decida confirmar la transacción o realizar un rollback de la misma. Las transacciones
fallidas también se pueden producir cuando la instancia falla.
En caso de una transacción fallida, se selecciona el comportamiento más seguro y la base de
datos Oracle deshace todos los cambios realizados por el usuario, restaurando los datos
originales.
La información de deshacer se retiene para todas las transacciones al menos hasta que la
transacción termine debido a:
• Usuarios que deshacen la transacción (operación de rollback)
• Usuarios que terminan una transacción (confirmación)

Oracle Internal & Oracle Academy Use Only


• Sesión de usuario que termina de forma anormal (operación de rollback)
• Sesión de usuario que termina de forma normal con una salida (confirmación)
La cantidad de datos de deshacer que se retienen y el tiempo de esa retención dependen de la
cantidad de actividad de la base de datos y de su configuración.

Base de Datos Oracle 10g: Taller de Administración I 9-5


Transacciones y Datos de Deshacer
Valor anterior

Tabla

Segmento de Valor
deshacer nuevo

• Cada transacción se asigna a

Oracle Internal & Oracle Academy Use Only


un único segmento de
deshacer.
• Un segmento de deshacer
puede dar servicio a más de
una transacción al mismo
tiempo.
Actualizar la
transacción

Copyright © 2005, Oracle. Todos los derechos reservados.

Transacciones y Datos de Deshacer


Al iniciar una transacción, ésta se asigna a un segmento de deshacer. A lo largo de la
transacción, cuando se modifiquen los datos, los valores originales (antes del cambio) se
copiarán al segmento de deshacer. Puede ver qué transacciones se asignan a los distintos
segmentos de deshacer comprobando la vista de rendimiento dinámico v$transaction.
Los segmentos de deshacer son segmentos especializados que la instancia crea automáticamente,
según sea necesario, para soportar las transacciones. Al igual que todos los segmentos, los
segmentos de deshacer están formados por extensiones que a su vez constan de bloques de datos.
Los segmentos de deshacer crecen y se reducen automáticamente si es necesario, actuando como
buffer de almacenamiento circular para las transacciones asignadas.
Las transacciones rellenan extensiones en los segmentos de deshacer hasta que se termina una
transacción o se consume todo el espacio. Si una extensión se llena completamente y se necesita
más espacio, la transacción adquiere ese espacio de la siguiente extensión del segmento. Al
consumir todas las extensiones, la transacción se volverá a ajustar a la primera extensión o
solicitará que se asigne una extensión nueva al segmento de deshacer.
Nota: Las operaciones DML en paralelo pueden hacer que una transacción utilice realmente más
de un segmento de deshacer. Para obtener más información sobre la ejecución de DML en
paralelo, consulte Oracle Database Administrator’s Guide 10g.

Base de Datos Oracle 10g: Taller de Administración I 9-6


Almacenamiento de Información de Deshacer

La información de deshacer se almacena en segmentos


de deshacer que, a su vez, se almacenan en un
tablespace de deshacer. Los tablespaces de deshacer:
• Sólo se utilizan para los segmentos de deshacer
• Tienen consideraciones especiales sobre la
recuperación

Oracle Internal & Oracle Academy Use Only


• Sólo se pueden asociar a una única instancia
• Necesitan que sólo uno de ellos sea el tablespace
de deshacer actual en el que se puede
escribir para una instancia especificada
en un momento determinado

Copyright © 2005, Oracle. Todos los derechos reservados.

Almacenamiento de Información de Deshacer


Los segmentos de deshacer sólo pueden existir en una forma especializada de tablespace
denominada tablespace de deshacer. Aunque una base de datos puede tener numerosos
tablespaces de deshacer, sólo se puede designar uno de ellos como el tablespace actual en
el que se escribirán los datos de deshacer.
Los segmentos de deshacer siempre son propiedad de SYS. Puesto que los segmentos actúan
como buffer circular, cada segmento tiene dos extensiones como mínimo. El número máximo
de extensiones por defecto depende del tamaño del bloque de base de datos, aunque es muy alto
(32.765 para un tamaño de bloque de 8 KB).
Los tablespaces de deshacer son tablespaces permanentes, gestionados localmente con
asignación automática de extensiones. Se gestionan como cualquier otro tablespace excepto
en lo que se refiere a la recuperación. Puesto que se necesitan datos de deshacer para recuperar
transacciones fallidas (como las que se pueden producir cuando una instancia falla), los
tablespaces de deshacer sólo se pueden recuperar mientras la instancia está en estado MOUNT.
Las consideraciones de recuperación para los tablespaces se abordan en la lección titulada
“Recuperación de Bases de Datos”.

Base de Datos Oracle 10g: Taller de Administración I 9-7


Datos de Deshacer frente a Datos de Redo

Deshacer Redo

Registro de Cómo deshacer un cambio Cómo reproducir un


cambio
Se utiliza Rollback, consistencia de Aplicar transacciones
para lectura pendientes de la base
de datos

Oracle Internal & Oracle Academy Use Only


Se almacena Segmentos de deshacer Archivos redo log
en
Protege Lecturas inconsistentes en Pérdida de datos
frente a sistemas de varios usuarios

Copyright © 2005, Oracle. Todos los derechos reservados.

Datos de Deshacer frente a Datos de Redo


En un principio, los datos de deshacer y de redo se parecen bastante, aunque sirven para obtener
resultados diferentes. Los datos de deshacer son necesarios cuando hay que deshacer un cambio
y esto ocurre en las operaciones de consistencia de lectura y de rollback. Los datos de redo son
necesarios cuando hay que realizar de nuevo los cambios, en el caso de que se hayan perdido por
algún motivo.
El proceso de confirmación implica una verificación de que los cambios de la transacción se han
escrito en el archivo de redo log, que se encuentra almacenado de manera persistente en el disco,
en lugar de en la memoria. Además, normalmente está multiplexado. Es decir, hay varias copias
de los datos de redo en el disco. Incluso aunque no se hayan escrito los cambios en los archivos
de datos en los que están almacenados realmente los bloques de la tabla, la garantía de que los
cambios se han escrito en el archivo de redo log es suficiente.
Por ejemplo, un corte en el suministro eléctrico justo antes de que los cambios confirmados se
hayan reflejado en los archivos de datos no causa ningún problema ya que la transacción se ha
confirmado. Por lo tanto, cuando se vuelva a iniciar el sistema, se podrán aplicar los cambios de
los registros de redo que no se llegaron a reflejar en los archivos de datos en el momento del
corte de electricidad.

Base de Datos Oracle 10g: Taller de Administración I 9-8


Control de Deshacer

Deshacer normalmente necesita poca gestión.


Las áreas que se controlan incluyen:
• Espacio libre en un tablespace de deshacer
• Errores de tipo “Snapshot too old”

Oracle Internal & Oracle Academy Use Only


DBA

Copyright © 2005, Oracle. Todos los derechos reservados.

Control de Deshacer
La mayor parte del tiempo la instancia gestiona automáticamente las operaciones de deshacer
casi sin intervención del administrador de base de datos (DBA). Puede que sea necesaria la
participación del administrador cuando se produce lo siguiente:
• Espacio insuficiente para deshacer
• Los usuarios reciben mensajes de error ORA-01555 snapshot too old
La información de deshacer siempre se retiene hasta que una transacción termina. Esto significa
que si se suprimen o actualizan cantidades muy grandes de datos (las operaciones de inserción
consumen muy poco espacio de deshacer porque la imagen original de los datos insertados es un
valor nulo) sin confirmar, el tablespace de deshacer debe ser lo bastante grande para contener los
datos originales. Imagine un caso en el que en una tabla de 50 GB se hubieran suprimido todas
las filas con el comando siguiente:
SQL> DELETE FROM reallybigtable;
Sería necesario que el tablespace tuviera espacio para 50 GB de información original sólo en
caso de que el usuario que emitió esta sentencia cambiara de opinión y quisiera realizar un
rollback del cambio. Si el tablespace de deshacer se queda sin espacio para los datos de deshacer,
los usuarios reciben un mensaje de error como el siguiente:
ORA-01650: unable to extend rollback segment

Base de Datos Oracle 10g: Taller de Administración I 9-9


Control de Deshacer (continuación)
El control proactivo detecta problemas de espacio en un tablespace de deshacer antes de que
afecte a los usuarios.
Otro problema, con el que el administrador se puede encontrar con la información de deshacer,
es cuando una consulta tiene que acceder a información de deshacer que ya se ha sobrescrito.
Esto puede suceder en una consulta de flashback o con una ejecución muy larga. Cuando una
consulta necesita una “instantánea” de los datos como eran en algún momento del pasado y la
reconstrucción de dicha instantánea necesita datos de deshacer que ya no existen, la consulta
devuelve el siguiente error:
ORA-01555: snapshot too old
Esto puede suceder porque la base de datos Oracle presenta al usuario una vista consistente de
los datos tal y como son en el momento en que se inicia la ejecución de la consulta. Si hay
cambios sin confirmar en la tabla en la que se realiza la consulta, la base de datos Oracle lee los

Oracle Internal & Oracle Academy Use Only


datos de deshacer para obtener la versión confirmada de los datos. Esto es lo que se denomina
consistencia de lectura. Si la consulta se ejecuta durante tanto tiempo que, mientras tanto, esas
modificaciones se han acabado confirmando y, posteriormente, sus datos de deshacer se han
liberado y sobrescrito, la consulta de larga ejecución no podrá visualizar una vista consistente de
los datos tal y como eran en el momento en que se inició dicha consulta. Por este motivo, la
retención de deshacer se debe configurar para que se ajuste a la consulta de ejecución más larga.

Base de Datos Oracle 10g: Taller de Administración I 9-10


Administración de Deshacer
La administración de deshacer debe evitar:
• Errores de espacio en un tablespace de deshacer:
– Asigne un espacio correcto al tablespace de deshacer.
– Asegúrese periódicamente de la confirmación de
transacciones grandes.
• Errores de tipo “Snapshot too old”:
– Configure un intervalo de retención de deshacer adecuado.

Oracle Internal & Oracle Academy Use Only


– Asigne un espacio correcto al tablespace de deshacer.
– Plantéese garantizar la retención de deshacer.
Utilizar la gestión automática de deshacer:

UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=UNDOTBS1 DBA

Copyright © 2005, Oracle. Todos los derechos reservados.

Administración de Deshacer
Se recomienda el uso de la gestión automática de deshacer, que se configura mediante la
definición del parámetro de inicialización UNDO_MANAGEMENT en AUTO. La gestión manual de
deshacer está soportada para la compatibilidad con Oracle8i y versiones anteriores, pero necesita
más participación del DBA.
Con la gestión automática de deshacer, el DBA gestiona los datos de deshacer en el nivel de
tablespace, que controla qué tablespace de deshacer utiliza una instancia con el parámetro de
inicialización UNDO_TABLESPACE. Una vez seleccionado el tablespace de deshacer, el
administrador sólo se debe preocupar de proporcionar espacio suficiente y de configurar un
intervalo de retención de deshacer.
Con la gestión manual, el DBA también debe tener en cuenta lo siguiente:
• Asignación de tamaño a los segmentos, que incluye las extensiones máximas y el tamaño
de las extensiones
• Identificación y eliminación de transacciones bloqueantes
• Creación de segmentos de rollback suficientes para manejar transacciones (en el modo
manual, los segmentos de deshacer se denominan segmentos de rollback)
• Selección de un tablespace que contenga los segmentos de rollback (los tablespaces de
deshacer sólo se utilizan con la gestión automática de deshacer)

Base de Datos Oracle 10g: Taller de Administración I 9-11


Configuración de Retención de Deshacer

UNDO_RETENTION especifica (en segundos) la cantidad


de información de deshacer ya confirmada que se va a
retener. Este parámetro sólo se define cuando:
• El tablespace de deshacer tiene activada la opción
AUTOEXTEND

Oracle Internal & Oracle Academy Use Only


• Desea definir una retención de deshacer para
objetos grandes (LOB)
• Desea garantizar la retención

DBA

Copyright © 2005, Oracle. Todos los derechos reservados.

Configuración de Retención de Deshacer


UNDO_RETENTION especifica (en segundos) el valor de umbral inferior de la retención de
deshacer. En los tablespaces de deshacer AUTOEXTEND, el sistema retiene la operación de
deshacer durante al menos el tiempo especificado en este parámetro y, de manera automática,
ajusta el período de retención para cumplir con los requisitos de deshacer de las consultas. En los
tablespaces de deshacer de tamaño fijo, el sistema ajusta automáticamente el período máximo
posible de retención de deshacer en función del tamaño e historial de uso del tablespace de
deshacer; ignora UNDO_RETENTION a menos que esté activada la garantía de retención. De
esta forma, en la gestión automática de deshacer, para los tres casos aquí mostrados, se utiliza el
valor de UNDO_RETENTION. En casos distintos a los aquí mostrados, este parámetro se ignora.

Base de Datos Oracle 10g: Taller de Administración I 9-12


Configuración de Retención de Deshacer (continuación)
La información de deshacer está dividida en tres categorías:
• Información de deshacer sin confirmar: Soporta una transacción que se está ejecutando
en ese momento y es necesaria si un usuario desea realizar un rollback o si la transacción
ha fallado. La información de deshacer sin confirmar nunca se sobrescribe.
• Información de deshacer confirmada: Ya no es necesaria para dar soporte a una
transacción en ejecución, pero aún es necesaria para cumplir con el intervalo de retención
de deshacer. También se denomina información de deshacer “no vencida”. La información
de deshacer confirmada se retiene cuando es posible sin que una transacción activa falle
debido a la falta de espacio.
• Información de deshacer vencida: Ya no es necesaria para dar soporte a una transacción
en ejecución. La información de deshacer vencida se sobrescribe cuando se necesita
espacio para una transacción activa.

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g: Taller de Administración I 9-13


Garantía de Retención de Deshacer

Garantía: 15 minutos

Datos de deshacer

Oracle Internal & Oracle Academy Use Only


Las sentencias SELECT Una transacción que genera
de 15 minutos o menos de ejecución más cambios de deshacer que el
siempre se ejecutan correctamente. espacio disponible fallará.

Copyright © 2005, Oracle. Todos los derechos reservados.

Garantía de Retención de Deshacer


El comportamiento por defecto de deshacer es sobrescribir las transacciones confirmadas que
aún no han vencido en lugar de permitir que una transacción activa falle debido a la falta de
espacio de deshacer.
Este comportamiento se puede cambiar al garantizar la retención. Con la retención garantizada,
los valores de retención de deshacer se aplican aunque provoquen que las transacciones fallen.
RETENTION GUARANTEE es un atributo de tablespace más que un parámetro de inicialización.
Este atributo sólo se puede cambiar con las sentencias de línea de comandos SQL. La sintaxis
para cambiar un tablespace de deshacer por una retención de garantía es la siguiente:
SQL> ALTER TABLESPACE undotbs1 RETENTION GUARANTEE;
Para devolver un tablespace de deshacer garantizado a su valor normal, utilice el siguiente
comando:
SQL> ALTER TABLESPACE undotbs1 RETENTION NOGUARANTEE;
La garantía de retención se aplica sólo a los tablespaces de deshacer. Los intentos de definirla en
un tablespace que no sea de deshacer tiene como resultado el siguiente error:
SQL> ALTER TABLESPACE example RETENTION GUARANTEE;
ERROR at line 1:
ORA-30044: 'Retention' can only specified for undo tablespace

Base de Datos Oracle 10g: Taller de Administración I 9-14


Tamaño de los Tablespaces de Deshacer

Tamaño de espacio
de tabla actual

Oracle Internal & Oracle Academy Use Only


Ratio de consumo de deshacer

Copyright © 2005, Oracle. Todos los derechos reservados.

Tamaño de los Tablespaces de Deshacer


Se debe asignar un tamaño a los tablespaces de deshacer para que puedan contener la
información original de todas las transacciones. Al hacer clic en el enlace Undo Management
de la página Administration de Enterprise Manager aparece una visión general de los datos de
deshacer del sistema que incluye los valores actuales, el consumo de deshacer por minuto y la
longitud de la consulta con la ejecución más larga observada durante un determinado período
de tiempo.
Los archivos de datos que pertenecen a un tablespace de deshacer se pueden ampliar
automáticamente cuando se quedan sin espacio libre. A diferencia de otros tablespaces, Oracle
Corporation recomienda que los archivos de datos asociados a los tablespaces de deshacer no
tengan activada la extensión automática. La primera vez que se determinan los requisitos de
espacio de deshacer, puede que desee activar la extensión automática de los archivos de datos,
pero después de haber asignado correctamente el tamaño del tablespace debe desactivarla. La
desactivación de la extensión automática en archivos de datos de un tablespace de deshacer evita
que un único usuario consuma involuntariamente grandes cantidades de espacio en disco dejando
de confirmar las transacciones.

Base de Datos Oracle 10g: Taller de Administración I 9-15


Uso del Asesor de Deshacer

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Uso del Asesor de Deshacer


A través de la página de propiedades Undo Management se accede al Asesor de Deshacer.
Ofrece una estimación del tamaño del tablespace de deshacer que resulta necesario para
satisfacer una retención de deshacer determinada.
Indique el período de retención deseado y la región de análisis del asesor mostrará el tamaño de
tablespace necesario para soportar el período de retención. También cabe la posibilidad de hacer
clic en un punto del gráfico para ver el tamaño del tablespace requerido para soportar el período
elegido.
Una vez seleccionado un período de retención de deshacer, haga clic en OK para implementar el
nuevo período de retención.

Base de Datos Oracle 10g: Taller de Administración I 9-16


Resumen

En esta lección, debe haber aprendido lo siguiente:


• Explicar DML y la generación de datos de
deshacer
• Controlar y administrar segmentos de deshacer
• Describir la diferencia entre datos de deshacer y

Oracle Internal & Oracle Academy Use Only


de redo
• Configurar la retención de deshacer
• Garantizar la retención de deshacer
• Utilizar el Asesor de Deshacer

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 9-17


Visión General de la Práctica:
Gestión de Segmentos de Deshacer

En esta práctica se abordan los siguientes temas:


• Cálculo del tamaño del tablespace de deshacer
para dar soporte a un intervalo de retención de
48 horas
• Modificación de un tablespace de deshacer para

Oracle Internal & Oracle Academy Use Only


dar soporte a un intervalo de retención de 48 horas

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 9-18


Implementación de Seguridad de la
Base de Datos Oracle

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.
Objetivos

Al finalizar esta lección, debería estar capacitado


para lo siguiente:
• Describir sus responsabilidades de DBA en
cuanto a seguridad
• Aplicar el principio de privilegio más bajo

Oracle Internal & Oracle Academy Use Only


• Activar la auditoría de base de datos estándar
• Especificar opciones de auditoría
• Revisar información de auditoría
• Mantener la pista de auditoría

Copyright © 2005, Oracle. Todos los derechos reservados.

Objetivos
Esta lección es el punto de inicio para conocer la seguridad de Oracle. En la siguiente
documentación encontrará información adicional:
• Oracle Database Concepts 10g Release 2 (10.2)
• Oracle Database Administrator’s Guide 10g Release 2 (10.2)
• Oracle Database Security Guide 10g Release 2 (10.2)
En los siguientes cursos encontrará formación adicional:
• Base de Datos Oracle 10g: Taller de Administración II (D17092GC30)
• Oracle Database 10g: Security (D17499GC10)

Base de Datos Oracle 10g: Taller de Administración I 10-2


Requisitos de Seguridad > Requisitos
Privilegio más Bajo
de la Industria Auditoría
Basada en Valores
Auditoría Detallada
DBA
Actualiz. Seguridad
• Legal:
– Sarbanes-Oxley Act (SOX)
– Health Information Portability and Accountability
Act (HIPAA)
– California Breach Law

Oracle Internal & Oracle Academy Use Only


– UK Data Protection Act
• Auditoría

Copyright © 2005, Oracle. Todos los derechos reservados.

Requisitos de Seguridad de la Industria


Hasta hace poco la preocupación por los requisitos de seguridad era un problema de naturaleza
individual. A menos que se manejaran datos militares o gubernamentales, existían pocos
requisitos legales. Esto está cambiando con rapidez. Se han aprobado varias leyes para reforzar
la privacidad y la precisión de los datos. Junto con estas leyes, hay un requisito para auditar las
medidas de seguridad utilizadas.
Legal: Cada una de las leyes enumeradas aquí tiene algunos requisitos específicos. Esta lista es
representativa de muchas otras leyes que se están aprobando en todo el mundo. Por supuesto,
las leyes de seguridad varían de un lugar a otro.
• Sarbanes-Oxley Act (SOX) requiere que las compañías públicas refuercen y documenten
los controles internos para impedir que nadie pueda cometer actos fraudulentos que puedan
comprometer la posición financiera de una organización o la precisión de sus datos
financieros. El director ejecutivo y el director financiero deben dar fe de la competencia
de los controles internos y de la precisión del informe financiero. Estos directores están
sujetos a multas y al encarcelamiento por informes fraudulentos. Los detalles de SOX
incluyen requisitos para proporcionar la información que se utiliza para generar los
informes y los controles internos que se usan para garantizar la integridad de la
información financiera.

Base de Datos Oracle 10g: Taller de Administración I 10-3


Requisitos de Seguridad de la Industria (continuación)
• Health Information Portability and Accountability Act (HIPAA) está destinada a
proteger la información sanitaria identificable de manera personal frente a su publicación o
uso incorrecto. Las entidades que retienen esa información deben proporcionar pistas de
auditoría de todas las personas que accedan a estos datos.
• UK Data Protection Act está destinada a proteger la privacidad individual mediante el
acceso restringido a datos identificables de manera individual. Contiene ocho puntos,
uno de los cuales requiere que los datos se conserven en un lugar seguro.
• Otras leyes:
- Family Educational Rights and Privacy Act (FERPA) aborda la información
sanitaria y personal que conservan las escuelas.
- California Breach Law requiere que una organización que posee variada
información de identidad personal (PII) (por ejemplo, tarjeta de crédito, permiso de
conducir y números de identificación gubernamentales) proteja esa información. Si la

Oracle Internal & Oracle Academy Use Only


información se puede ver comprometida, la organización tiene que notificarlo a todos
los individuos implicados. Hay dos leyes, CA-SB-1386 y CA-AB-1950, que se
aplican a las organizaciones que poseen PII.
- Federal Information Security Management Act (FISMA) está creando estándares
y guías de seguridad mediante documentos de Federal Information Processing
Standard (FIPS) que gestiona National Institute of Standards (NIST). Estos estándares
se aplican a organizaciones que procesan información para el gobierno de Estados
Unidos.
Auditoría: Muchas de estas leyes incluyen estipulaciones que requieren que los planes de
seguridad (protocolos internos) se auditen periódicamente. Los requisitos de SOX son poco
claros y están sujetos a la interpretación de los directivos de la organización. Los detalles de
implementación pueden variar ampliamente, en función del nivel de detalles que requieran los
directivos. Al ser tan poco claro el SOX, aunque las penas son severas, resulta importante
proteger a su compañía. El costo de las medidas de seguridad se debe equilibrar con respecto al
riesgo. Nadie le certificará que está totalmente seguro. Una buena solución es el consenso de la
industria. Si cumple con las prácticas de seguridad mínimas acordadas y ha aplicado la debida
diligencia, es posible que esté a salvo de las consecuencias penales más duras de la ley. Algunos
recursos buenos para las prácticas de los estándares de la industria son SysAdmin, Audit,
Network, Security (SANS) Institute, CERT/CC aplicados por la Carnegie Mellon University
para el Ministerio de Defensa y el estándar de certificación ISO-17799:
http://www.sans.org/index.php
http://www.cert.org/nav/index.html
http://www.iso17799software.com/
El estándar de certificación ISO-17799 es un estándar internacional de prácticas de seguridad.
Incluye prácticas recomendadas, certificación y valoración de riesgos. Aborda un rango amplio
de problemas e incluye políticas escritas previamente.

Base de Datos Oracle 10g: Taller de Administración I 10-4


Separación de Responsabilidades

• Se debe confiar en los usuarios con privilegios


de DBA. Considere lo siguiente:
– Abuso de confianza
– Las pistas de auditoría protegen la posición
protegida
• Se deben compartir las responsabilidades

Oracle Internal & Oracle Academy Use Only


de DBA.
• No se deben compartir nunca las cuentas.
• El DBA y el Administrador del Sistema tienen
que ser personas diferentes.
• Responsabilidades separadas del operador y
del DBA.

Copyright © 2005, Oracle. Todos los derechos reservados.

Separación de Responsabilidades
Éstos son los principales requisitos necesarios para satisfacer la separación de las tareas.
Se debe confiar en los DBA: Es difícil limitar a un DBA. Para hacer su trabajo, el DBA requiere
privilegios de alto nivel. Un DBA posee una posición de confianza y se debe investigar a fondo.
Incluso un DBA protegido debe tener responsabilidad. Considere lo siguiente:
• Abuso de confianza: Un DBA puede utilizar de manera incorrecta las contraseñas cifradas
de la vista DBA_USERS.
• Las pistas de auditoría protegen la posición protegida: Cuando la auditoría se
implementa con cuidado y se siguen las directrices, la pista de auditoría puede mostrar
que una persona específica no ha violado los procedimientos o causado un acto perjudicial.
Si un usuario no autorizado intenta que las sospechas recaigan sobre un usuario protegido,
una pista de auditoría bien diseñada detectará el engaño.

Base de Datos Oracle 10g: Taller de Administración I 10-5


Seguridad de la Base de Datos

Un sistema seguro garantiza la confidencialidad de los


datos que contiene. Existen varios aspectos referentes
a la seguridad:
• Restricción de acceso a los datos y los servicios
• Autenticación de usuarios

Oracle Internal & Oracle Academy Use Only


• Control de actividades sospechosas

Copyright © 2005, Oracle. Todos los derechos reservados.

Seguridad de la Base de Datos


La base de datos Oracle 10g proporciona el mejor marco de la industria para un sistema seguro.
Sin embargo para que ese marco sea eficaz, el administrador de la base de datos debe realizar las
prácticas recomendadas y controlar continuamente la actividad de la base de datos.
Restricción de Acceso a los Datos y los Servicios
Todos los usuarios no deben tener acceso a todos los datos. En función de lo que se almacene en
la base de datos, los requisitos del negocio, las expectativas de los clientes y cada vez más las
restricciones legales pueden exigir un acceso restringido. Se debe proteger la información de
tarjetas de crédito, los datos médicos, la información de identidad, etc. contra el acceso no
autorizado. La base de datos Oracle proporciona controles de autorización muy detallados para
limitar el acceso a la base de datos. La restricción de acceso debe incluir la aplicación del
principio de privilegio más bajo.

Base de Datos Oracle 10g: Taller de Administración I 10-6


Seguridad de la Base de Datos (continuación)
Autenticación de Usuarios
Para forzar los controles de acceso en los datos confidenciales, el sistema debe primero saber
quién está intentando acceder a los datos. Una autenticación con riesgos puede hacer que todas
las demás precauciones de seguridad resulten inútiles. La forma más básica de autenticación
de usuarios es instando a los usuarios a proporcionar algo que conocen, por ejemplo, una
contraseña. Al garantizar que las contraseñas siguen reglas simples, se puede aumentar en gran
medida la seguridad del sistema. Los métodos de autenticación más potentes incluyen solicitar a
los usuarios que proporcionen algo, como por ejemplo un certificado de infraestructura de clave
pública (PKI, Public Key Infrastructure) o un elemento. Una forma de autenticación aún más
potente consiste en identificar a los usuarios mediante una característica biométrica única como,
por ejemplo, una huella dactilar, un escáner de retina, moldes de estructuras óseas, etc. La base
de datos Oracle soporta técnicas de autenticación avanzadas como la identificación basada en

Oracle Internal & Oracle Academy Use Only


elementos, en biometría y en certificados mediante Advanced Security Option. Las cuentas de
usuario que no están en uso se deben bloquear para evitar intentos de vulnerar la autenticación.
Control de Actividades Sospechosas
Incluso los usuarios autorizados y autenticados pueden a veces poner en peligro el sistema.
La identificación de actividades de la base de datos poco comunes (como, por ejemplo, que un
empleado empiece de pronto a consultar mucha información de tarjetas de crédito, resultados
de investigaciones u otra información confidencial) puede ser el primer paso para detectar el
robo de información. La base de datos Oracle proporciona un amplio juego de herramientas de
auditoría para realizar un seguimiento de la actividad de los usuarios e identificar tendencias
sospechosas.

Base de Datos Oracle 10g: Taller de Administración I 10-7


Principio de Privilegio Requisitos
> Privilegio más Bajo
más Bajo Auditoría
Basada en Valores
Auditoría Detallada
DBA
Actualiz. Seguridad

• Instalación sólo del software necesario en la máquina.


• Activación únicamente de los servicios necesarios en la
máquina.
• Otorgamiento de acceso al sistema operativo y a la base

Oracle Internal & Oracle Academy Use Only


de datos únicamente a aquellos usuarios que lo
necesitan.
• Limitación del acceso a la cuenta raíz o de administrador.
• Limitación del acceso a las cuentas SYSDBA y SYSOPER.
• Limitación del acceso de los usuarios a únicamente los
objetos de la base de datos necesarios para que hagan
su trabajo.

Copyright © 2005, Oracle. Todos los derechos reservados.

Principio de Privilegio más Bajo


Aplique el principio de privilegio más bajo empezando por los niveles más bajos y continúe en
cada nivel. Siempre hay nuevas vulnerabilidades de seguridad que no se pueden anticipar. Al
aplicar este principio, la posibilidad de que esto ocurra se reduce y el daño se puede contener.
• Instalación sólo del software necesario en la máquina: Al reducir el número de paquetes
de software, se reduce el mantenimiento, las actualizaciones, la posibilidad de agujeros de
seguridad y los conflictos de software.
• Activación únicamente de los servicios necesarios en la máquina: Un número de
servicios reducido implica menos puertos abiertos y menos vectores de ataque.
• Otorgamiento de acceso al sistema operativo y a la base de datos únicamente a
aquellos usuarios que lo necesitan: A menor número de usuarios menos contraseñas y
cuentas. De esta forma se reduce la posibilidad de cuentas abiertas o anticuadas. Un
número de cuentas reducido facilita al administrador la tarea de mantener las cuentas
actualizadas.
• Limitación del acceso a la cuenta raíz o de administrador: La cuenta de administrador
se debe guardar y auditar con cuidado y nunca se debe compartir.
• Limitación del acceso a las cuentas SYSDBA y SYSOPER: Los usuarios que necesitan
acceso a estos roles deben tener su propia cuenta y se deben auditar.
• Limitación del acceso de los usuarios a únicamente los objetos de la base de datos
necesarios para que hagan su trabajo: Los usuarios que tienen acceso a más objetos y
servicios de los que necesitan tienen una oportunidad para causar daño.

Base de Datos Oracle 10g: Taller de Administración I 10-8


Aplicación del Principio de Privilegio Más Bajo

• Protección del diccionario de datos:


O7_DICTIONARY_ACCESSIBILITY=FALSE
• Revocación de privilegios innecesarios de PUBLIC:
REVOKE EXECUTE ON UTL_SMTP, UTL_TCP, UTL_HTTP,
UTL_FILE FROM PUBLIC;

Oracle Internal & Oracle Academy Use Only


• Restricción de los directorios a los que pueden
acceder los usuarios.
• Limitación de usuarios con privilegios administrativos.
• Restricción de la autenticación de la base de datos
remota:
REMOTE_OS_AUTHENT=FALSE

Copyright © 2005, Oracle. Todos los derechos reservados.

Aplicación del Principio de Privilegio Más Bajo


El principio de privilegio más bajo significa que se debe dar a un usuario sólo aquellos
privilegios que sean necesarios para realizar de forma eficaz una tarea. De esta forma se reducen
las posibilidades de que los usuarios modifiquen o visualicen los datos, tanto de forma accidental
como no autorizada, para los que no tienen privilegios de modificación o visualización.
Protección del diccionario de datos: El parámetro O7_DICTIONARY_ACCESSIBILITY se
define por defecto en FALSE. No permita que se cambie este valor sin un buen motivo ya que
impide a los usuarios con privilegios del sistema ANY TABLE acceder a las tablas base del
diccionario de datos. También garantiza que el usuario SYS se puede conectar sólo como
SYSDBA.
Revocación de privilegios innecesarios de PUBLIC: Los siguientes paquetes son muy útiles
para aplicaciones que los necesitan, pero requieren una configuración correcta para utilizarlos de
forma segura. Revoque el privilegio EXECUTE de PUBLIC y otórguelo a los roles cuando sea
necesario para los siguientes paquetes: UTL_SMTP, UTL_TCP, UTL_HTTP y UTL_FILE.

Base de Datos Oracle 10g: Taller de Administración I 10-9


Aplicación del Principio de Privilegio Más Bajo (continuación)
Entre los paquetes más potentes que se podrían utilizar de forma incorrecta se incluyen:
• UTL_SMTP: Permite que se envíen mensajes de correo electrónico arbitrarios mediante el
uso de la base de datos como servidor de correo de Protocolo Simple de Transferencia de
Correo (SMTP). Al otorgar este paquete a PUBLIC, se puede permitir el intercambio no
autorizado de mensajes de correo.
• UTL_TCP: Permite al servidor de base de datos establecer conexiones de red salientes con
cualquier servicio de red de recepción o en espera. Por lo tanto, se pueden enviar datos
arbitrarios entre el servidor de base de datos y cualquier servido de red en espera.
• UTL_HTTP: Permite al servidor de base de datos solicitar y recuperar datos a través de
HTTP. Al otorgar este paquete a PUBLIC, se puede permitir el envío de datos a través de
pantallas HTML a direcciones Web no autorizadas.
• UTL_FILE: Si se configura incorrectamente, permite el acceso de nivel de texto a
cualquier archivo del sistema operativo de host. Incluso cuando se configura

Oracle Internal & Oracle Academy Use Only


correctamente, este paquete no distingue entre las aplicaciones que realizan llamadas,
cuyo resultado es que una aplicación con acceso a UTL_FILE puede escribir datos
arbitrarios en la misma ubicación en la que escribe otra aplicación.
Restricción de acceso a directorios del sistema operativo: El objeto DIRECTORY de la base
de datos permite a los DBA asignar directorios a rutas de acceso del sistema operativo y otorgar
privilegios sobre esos directorios a usuarios individuales.
Limitación de usuarios con privilegios administrativos: No proporcione a los usuarios de
base de datos más privilegios de los necesarios. No otorgue el rol DBA a usuarios que no sean
administradores. Para implementar el privilegio más bajo, restrinja los siguientes tipos de
privilegios:
• Otorgamientos de privilegios de sistema y de objeto
• Conexiones a la base de datos con privilegios SYS, como SYSDBA y SYSOPER
• Otros privilegios de tipo DBA, como DROP ANY TABLE
Restricción de la autenticación de la base de datos remota: El parámetro
REMOTE_OS_AUTHENT se define en FALSE por defecto. No se debe cambiar a menos que se
pueda confiar en todos los clientes para autenticar de manera adecuada a los usuarios.
En el proceso de autenticación remota:
• El usuario de base de datos se autentica de forma externa
• El sistema remoto autentica el usuario
• El usuario se conecta a la base de datos sin ninguna otra autenticación

Base de Datos Oracle 10g: Taller de Administración I 10-10


Control de Actividades Requisitos
Privilegio más Bajo
Sospechosas > Auditoría
Basada en Valores
Auditoría Detallada
DBA
Actualiz. Seguridad
El control o la auditoría debe ser una parte
integral de los procedimientos de seguridad.
Revise lo siguiente:
• Auditoría obligatoria
• Auditoría de la base de datos estándar

Oracle Internal & Oracle Academy Use Only


• Auditoría basada en valores
• Auditoría detallada (FGA)
• Auditoría de DBA

Copyright © 2005, Oracle. Todos los derechos reservados.

Control de Actividades Sospechosas


La auditoría, que consiste en la captura y el almacenamiento de información sobre lo que sucede
en el sistema, aumenta la cantidad de trabajo que debe realizar el sistema. La auditoría se debe
centrar para que sólo se capturen los eventos que sean de interés. Una auditoría bien centrada
tiene un impacto mínimo en el rendimiento del sistema. Una auditoría centrada incorrectamente
puede afectar de forma significativa al rendimiento.
• Auditoría obligatoria: Todas las bases de datos Oracle auditan algunas acciones
independientemente de otros parámetros u opciones de auditoría. El motivo de los logs de
auditoría obligatoria es que la base de datos necesita registrar algunas actividades, como el
inicio y cierre del sistema.
• Auditoría de la base de datos estándar: Se define a nivel del sistema al utilizar el
parámetro de inicialización AUDIT_TRAIL. Tras activar la auditoría, seleccione los
objetos y privilegios que desee auditar.
• Auditoría basada en valores: Amplía la auditoría de la base de datos estándar con la
captura no sólo de que el evento auditado se ha producido, sino de los valores reales que
se insertaron, actualizaron o suprimieron. La auditoría basada en valores se implementa
mediante disparadores de base de datos.
• Auditoría detallada (FGA): FGA amplía la auditoría de la base de datos estándar con la
captura de la sentencia SQL real emitida en lugar de tan sólo el evento producido.
• Auditoría de DBA: Separa las tareas de auditoría entre el DBA y el auditor o
administrador de la seguridad que controla las actividades del DBA en una pista de
auditoría del sistema operativo.
Base de Datos Oracle 10g: Taller de Administración I 10-11
Auditoría de la Base de Datos Estándar

1 Activar auditoría
de base de datos.
Archivo de El usuario
DBA parámetros ejecuta un
comando.
2 Especificar opciones de
auditoría.
Base de datos
Proceso de

Oracle Internal & Oracle Academy Use Only


servidor
Opciones de
Generar pista
auditoría
de auditoría.
Revisar
3 información
de auditoría.
Pista de
auditoría Pista de auditoría
4 Mantener pista XML o sistema
de auditoría. operativo

Copyright © 2005, Oracle. Todos los derechos reservados.

Auditoría de la Base de Datos Estándar


Después de haber activado la auditoría de la base de datos y haber especificado las opciones de
auditoría (los eventos de conexión, el ejercicio de privilegios del sistema y de objeto o el uso de
sentencias SQL), la base de datos inicia la recopilación de información de auditoría.
Si se define AUDIT_TRAIL en OS, los registros de auditoría se almacenan en el sistema de
auditoría del sistema operativo. En un entorno de Windows, éste es el log de eventos. En un
entorno de UNIX o Linux, los registros de auditoría se almacenan en un archivo. La ubicación
de dicho archivo se especifica con el parámetro AUDIT_FILE_DEST.
Si el parámetro AUDIT_TRAIL se define en DB, podrá revisar los registros de auditoría en la
vista DBA_AUDIT_TRAIL, que forma parte del esquema SYS.
Si AUDIT_TRAIL se define en XML o XML,EXTENDED, los registros de auditoría se escriben
en archivos XML en el directorio hacia el que apunta el parámetro AUDIT_FILE_DEST. La
vista V$XML_AUDIT_TRAIL permite visualizar todos los archivos XML de este directorio.
El mantenimiento de la pista de auditoría es una tarea administrativa importante. En función del
enfoque de las opciones de auditoría, la pista de auditoría puede aumentar muy rápidamente. Si
no se mantiene correctamente, la pista de auditoría puede consumir tanto espacio que afectará al
rendimiento del sistema.

Base de Datos Oracle 10g: Taller de Administración I 10-12


Activación de Auditoría

Oracle Internal & Oracle Academy Use Only


ALTER SYSTEM SET audit_trail=“XML” SCOPE=SPFILE;

Reiniciar la base de datos tras modificar un parámetro


de inicialización estática.
Copyright © 2005, Oracle. Todos los derechos reservados.

Activación de Auditoría
Debe activar la auditoría de la base de datos antes de especificar valores de auditoría.

Base de Datos Oracle 10g: Taller de Administración I 10-13


Pistas de Auditoría Uniformes

Utilizar AUDIT_TRAIL para activar la auditoría de la


base de datos
STATEMENTID,
AUDIT_TRAIL=DB,EXTENDED
ENTRYID

DBA_AUDIT_TRAIL DBA_FGA_AUDIT_TRAIL

Oracle Internal & Oracle Academy Use Only


EXTENDED_TIMESTAMP,
PROXY_SESSIONID, GLOBAL_UID,
INSTANCE_NUMBER, OS_PROCESS,
TRANSACTIONID, SCN, SQL_BIND, SQL_TEXT

DBA_COMMON_AUDIT_TRAIL

Copyright © 2005, Oracle. Todos los derechos reservados.

Pistas de Auditoría Uniformes


Para utilizar la auditoría de la base de datos, primero debe definir que el parámetro no dinámico
AUDIT_TRAIL apunte a una ubicación de almacenamiento para los registros de auditoría. De
esta forma se activa la auditoría de la base de datos.
La base de datos Oracle 10g realiza el seguimiento de los mismos campos en las auditorías
estándar y detallada. De este modo, se facilita el análisis de las actividades de la base de datos.
Para llevar a cabo este proceso, tanto la pista de auditoría estándar como la pista de auditoría
detallada disponen de atributos para complementarse entre sí.
Entre otros datos, la auditoría estándar recopila la siguiente información adicional:
• El número de cambio del sistema (SCN), que registra todos los cambios realizados en el
sistema.
• El texto SQL exacto ejecutado por el usuario y las variables ligadas usadas con el texto
SQL. Estas columnas sólo aparecen si se especifica AUDIT_TRAIL=DB,EXTENDED en
el archivo de parámetros de inicialización.
Entre otros datos, la auditoría detallada recopila la siguiente información adicional:
• El número de serie de cada registro de auditoría.
• El número de sentencia que enlaza varias entradas de auditoría originadas a partir de una
sola sentencia.

Base de Datos Oracle 10g: Taller de Administración I 10-14


Pistas de Auditoría Uniformes (continuación)
Los atributos comunes incluyen:
• El registro de hora global según la zona horaria universal coordinada (UTC). Este campo
resulta de utilidad para controlar todos los servidores de ubicaciones y zonas horarias
distintas.
• El número de instancia único para cada instancia de Real Application Clusters (RAC).
• El identificador de transacción que ayuda a agrupar los registros de auditoría de una única
transacción.
La vista DBA_COMMON_AUDIT_TRAIL combina los registros log de auditoría estándar y
detallada.

Oracle Internal & Oracle Academy Use Only

Base de Datos Oracle 10g: Taller de Administración I 10-15


Página de Auditoría de Enterprise Manager

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Página de Auditoría de Enterprise Manager


Para llegar a la página de auditoría desde la página inicial de Database Control, haga clic en el
separador Administration y, a continuación, en el enlace Audit Settings de la región Users &
Privileges.
La página de auditoría contiene las siguientes regiones:
• Configuration: Muestra los valores actuales de los parámetros de configuración y contiene
enlaces para modificar esos valores.
• Audit Trails: Proporciona un acceso sencillo para auditar información que se ha
recopilado.
Utilice estas páginas con separadores para definir opciones de auditoría o anular su definición:
• Audited Privileges: Muestra los privilegios que se están auditando.
• Audited Objects: Muestra los objetos que se están auditando.
• Audited Statements: Muestra las sentencias que se están auditando.

Base de Datos Oracle 10g: Taller de Administración I 10-16


Especificación de Opciones de Auditoría

• Auditoría de sentencias SQL:


AUDIT table;

• Auditoría de privilegios del sistema (no centrada y


centrada):

Oracle Internal & Oracle Academy Use Only


AUDIT select any table, create any trigger;
AUDIT select any table BY hr BY SESSION;

• Auditoría de privilegios de objeto (no centrada y


centrada):
AUDIT ALL on hr.employees;
AUDIT UPDATE,DELETE on hr.employees BY ACCESS;

Copyright © 2005, Oracle. Todos los derechos reservados.

Especificación de Opciones de Auditoría


Auditoría de sentencias SQL: La sentencia mostrada en la diapositiva puede auditar cualquier
sentencia de lenguaje de definición de datos (DDL) que afecte a una tabla, incluidas CREATE
TABLE, DROP TABLE, TRUNCATE TABLE, etc. La auditoría de sentencias SQL se puede
centrar por usuario o por el resultado de correcto/fallo.
SQL> AUDIT TABLE BY hr WHENEVER NOT SUCCESSFUL;
Auditoría de privilegios del sistema: Se puede utilizar para auditar el ejercicio de cualquier
privilegio del sistema (como DROP ANY TABLE). Se puede centrar por usuario o por el resultado
de correcto o fallo. Por defecto, la auditoría es BY ACCESS. Cada vez que se ejercita un
privilegio del sistema auditado se genera un registro de auditoría. Puede agrupar esos registros
con la cláusula BY SESSION de manera que sólo se genere un registro por sesión. (De esta
forma, si un usuario actualiza 100.000 registros de una tabla que pertenece a otro usuario, sólo
recopilará un único registro de auditoría.) Puede utilizar la cláusula BY SESSION para limitar el
impacto de la auditoría de privilegios del sistema en el rendimiento y el almacenamiento.
Auditoría de privilegios de objeto: Se puede utilizar para auditar acciones en las tablas, vistas,
procedimientos, secuencias, directorios y tipos de dato definidos por el usuario. Este tipo de
auditoría se puede centrar en el resultado de correcto o fallo y agrupar por sesión o por acceso.
A diferencia de la auditoría de privilegios del sistema, la agrupación por defecto es por sesión.
Por este motivo, debe especificar implícitamente BY ACCESS si desea que se genere un registro
de pista de auditoría independiente para cada acción.

Base de Datos Oracle 10g: Taller de Administración I 10-17


Uso y Mantenimiento de la Información de Auditoría

Desactivar las opciones de auditoría si no se van a utilizar.

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Uso y Mantenimiento de la Información de Auditoría


Práctica recomendada: Puesto que la auditoría agrega una carga al sistema, desactívela siempre
que no vaya a utilizarla.

Base de Datos Oracle 10g: Taller de Administración I 10-18


Auditoría Basada Requisitos
Privilegio más Bajo
en Valores Auditoría
> Basada en Valores
Auditoría Detallada
DBA
Actualiz. Seguridad

Un usuario realiza Se arranca el El disparador crea


un cambio. disparador. el registro de auditoría.

Oracle Internal & Oracle Academy Use Only


Se realiza Se inserta el registro de
el cambio del auditoría en una tabla de
usuario. pista de auditoría.

Copyright © 2005, Oracle. Todos los derechos reservados.

Auditoría Basada en Valores


La auditoría de la base de datos registra las inserciones, las actualizaciones y las supresiones que
se han producido en los objetos auditados, pero no captura los valores reales que han cambiado.
La auditoría basada en valores amplía la auditoría de la base de datos con la captura de los
valores reales que se han cambiado. La auditoría basada en valores aprovecha disparadores de
base de datos (construcciones PL/SQL controladas por eventos).
Cuando un usuario inserta, actualiza o suprime datos de una tabla con el disparador adecuado
conectado, este último funciona en segundo plano para copiar información de auditoría en una
tabla designada para contener dicha información. La auditoría basada en valores tiende a reducir
el rendimiento más que la auditoría de la base de datos estándar, porque el código del disparador
de auditoría se debe ejecutar cada vez que se produce la operación de inserción, actualización o
supresión. El grado de reducción depende de la eficacia del código del disparador. La auditoría
basada en valores se debe utilizar sólo en situaciones en las que la información capturada por la
auditoría de la base de datos estándar sea insuficiente.

Base de Datos Oracle 10g: Taller de Administración I 10-19


Auditoría Basada en Valores (continuación)
La clave de la auditoría basada en valores es el disparador de auditoría. A continuación se
muestra un disparador de auditoría típico.
CREATE OR REPLACE TRIGGER system.hrsalary_audit
AFTER UPDATE OF salary
ON hr.employees
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
IF :old.salary != :new.salary THEN
INSERT INTO system.audit_employees
VALUES (sys_context('userenv','os_user'), sysdate,
sys_context('userenv','ip_address'),
:new.employee_id ||
' salary changed from '||:old.salary||

Oracle Internal & Oracle Academy Use Only


' to '||:new.salary);
END IF;
END;
/
Este disparador centra la auditoría en la captura de cambios en la columna de salario de la tabla
hr.employees. Al actualizar una fila, el disparador comprueba la columna de salario. Si el
salario antiguo no es igual que el nuevo, el disparador inserta un registro de auditoría en la tabla
audit_employees (creada mediante una operación independiente en el esquema SYSTEM).
El registro de auditoría incluye el usuario, la dirección IP desde la que se ha realizado el cambio,
la clave primaria que identifica el registro que se ha cambiado y los valores de salario reales que
se han cambiado.
También se pueden utilizar disparadores de base de datos para capturar información sobre las
conexiones de usuario en casos en los que la auditoría de la base de datos estándar no recopile
datos suficientes. Con los disparadores de conexión, el administrador puede capturar datos que
identifiquen al usuario que se está conectando a la base de datos. Se incluyen estos ejemplos:
• Dirección IP de la persona que se conecta
• Primeros 48 caracteres del nombre del programa que se ha utilizado para conectar a la
instancia
• Nombre del terminal que se ha utilizado para conectar a la instancia
Para obtener una lista completa de los parámetros de usuario, consulte la sección titulada
“SYS_CONTEXT” en Oracle Database SQL Reference.

Base de Datos Oracle 10g: Taller de Administración I 10-20


Requisitos
Privilegio más Bajo
Auditoría Detallada Auditoría
Basada en Valores
> Auditoría Detallada
DBA
Actualiz. Seguridad

• Controla el acceso a datos según el contenido


• Audita SELECT, INSERT, UPDATE, DELETE y MERGE
• Se puede enlazar a una tabla o vista, a una o más
columnas
• Puede arrancar un procedimiento

Oracle Internal & Oracle Academy Use Only


• Se administra con el paquete DBMS_FGA

Política: AUDIT_EMPS_SALARY
SELECT name, salary
FROM employees
WHERE
department_id = 10; employees

Copyright © 2005, Oracle. Todos los derechos reservados.

Auditoría Detallada
La auditoría de la base de datos registra que se ha producido una operación, pero no captura
información sobre la sentencia que causó la operación. La auditoría detallada (FGA) amplía
dicha función para permitir la captura de las sentencias SQL reales que consultan o manipulan
los datos. FGA también permite que la auditoría se centre de forma más restringida que la
auditoría de la base de datos estándar o basada en valores.
Las opciones de auditoría FGA se pueden centrar en columnas individuales de una tabla o
vista e incluso pueden ser condicionales para que sólo se capturen auditorías si se cumplen
determinadas especificaciones definidas por el administrador. Las políticas de FGA soportan
más de una columna relevante. Por defecto, se audita cualquiera de esas columnas que esté
presente en la sentencia SQL. DBMS_FGA.ALL_COLUMNS y DBMS_FGA.ANY_COLUMNS
permiten realizar la auditoría según se utilice o no alguna de las columnas relevantes (o todas
ellas) en la sentencia.
Utilice el paquete PL/SQL DBMS_FGA para crear una política de auditoría en la tabla o vista de
destino. Si una de las filas devueltas por un bloque de consulta coincide con la columna auditada
y la condición de auditoría especificada, un evento de auditoría hace que se cree y almacene un
registro de auditoría en la pista de auditoría. Opcionalmente, el evento de auditoría también
puede ejecutar un procedimiento. FGA centra automáticamente la auditoría en el nivel de
sentencia, de forma que una sentencia SELECT que devuelve miles de filas genere un único
registro de auditoría.

Base de Datos Oracle 10g: Taller de Administración I 10-21


Política de FGA
dbms_fga.add_policy (
• Define: object_schema => 'HR',
object_name => 'EMPLOYEES',
– Criterios de policy_name => 'audit_emps_salary',
auditoría audit_condition=> 'department_id=10',
audit_column => 'SALARY',
– Acción de handler_schema => 'secure',
auditoría handler_module => 'log_emps_salary',
• Se crea con enable => TRUE,
statement_types => 'SELECT' );

Oracle Internal & Oracle Academy Use Only


DBMS_FGA
.ADD_POLICY
SELECT name, job_id
FROM employees;

SELECT name, salary


FROM employees SECURE.LOG_
WHERE EMPS_SALARY
department_id = 10; employees

Copyright © 2005, Oracle. Todos los derechos reservados.

Política de FGA
El ejemplo de la diapositiva muestra una política de FGA creada con el procedimiento
DBMS_FGA.ADD_POLICY. El procedimiento acepta los siguientes argumentos:
Nombre de Política
Asigne a cada política de FGA un nombre cuando la cree. En el ejemplo de la diapositiva se
asigna a la política el nombre AUDIT_EMPS_SALARY mediante el siguiente argumento:
policy_name => 'audit_emps_salary'
Condición de Auditoría
La condición de auditoría es un predicado de SQL que define cuándo se debe arrancar el evento
de auditoría. En el ejemplo de la diapositiva, se auditan todas las filas del departamento 10
mediante el siguiente argumento de condición:
audit_condition => 'department_id = 10‘

Base de Datos Oracle 10g: Taller de Administración I 10-22


Política de FGA (continuación)
Columna de Auditoría
La columna de auditoría define los datos que se están auditando. Se produce un evento de
auditoría si se incluye esta columna en la sentencia SELECT o si la condición de auditoría
permite la selección. En el ejemplo de la diapositiva se auditan dos columnas mediante el
siguiente argumento:
audit_column => 'SALARY,COMMISION_PCT'
Este argumento es opcional. Si no se especifica, sólo el argumento AUDIT_CONDITION
determina si se debe producir un evento de auditoría.
Objeto
El objeto es la tabla o vista que se está auditando. Se transfiere como dos argumentos:
• El esquema que contiene el objeto
• El nombre del objeto

Oracle Internal & Oracle Academy Use Only


En el ejemplo de la diapositiva se audita la tabla hr.employees mediante los siguientes
argumentos:
object_schema => 'hr'
object_name => 'employees'
Manejador
Un manejador de eventos opcional es un procedimiento PL/SQL que define cualquier acción
adicional que se debe llevar a cabo durante la auditoría. Por ejemplo, el manejador de eventos
puede enviar una página de alerta al administrador. Si no se define, se inserta una entrada de
evento de auditoría en la pista de auditoría. Si se define un manejador de eventos de auditoría,
se inserta la entrada de auditoría en la pista de auditoría y se ejecuta el manejador de eventos
de auditoría.
La entrada de evento de auditoría incluye la política de FGA que provocó el evento, el usuario
que ejecutó la sentencia SQL y la sentencia SQL junto con sus variables ligadas.
El manejador de eventos se transfiere como dos argumentos:
• El esquema que contiene la unidad de programa PL/SQL
• El nombre de la unidad de programa PL/SQL
En el ejemplo de la diapositiva se ejecuta el procedimiento SECURE.LOG_EMPS_SALARY
mediante los siguientes argumentos:
handler_schema => 'secure'
handler_module => 'log_emps_salary'
Por defecto, las pistas de auditoría siempre escriben el texto SQL y la información de enlace
SQL en los LOB. Se puede cambiar el valor por defecto (por ejemplo, si el sistema experimenta
una degradación de rendimiento).
Estado
El estado indica si la política de FGA está activada. En el ejemplo de la diapositiva, el siguiente
argumento activa la política:
enable => TRUE

Base de Datos Oracle 10g: Taller de Administración I 10-23


Sentencia DML Auditada: Consideraciones

• Se auditan los registros si se satisface el predicado


de FGA y si se hace referencia a las columnas
relevantes.
• Se auditan las sentencias DELETE
independientemente de las columnas especificadas.
• Se auditan las sentencias MERGE con las sentencias

Oracle Internal & Oracle Academy Use Only


generadas INSERT o UPDATE subyacentes.
UPDATE hr.employees
SET salary = 10
WHERE commission_pct = 90;

UPDATE hr.employees
SET salary = 10
WHERE employee_id = 111;

Copyright © 2005, Oracle. Todos los derechos reservados.

Sentencia DML Auditada: Consideraciones


Con una política de FGA definida para las sentencias DML, se audita una sentencia DML si se
están manipulando las filas de datos (las nuevas y las antiguas) para cumplir con los criterios del
predicado de la política.
Sin embargo, si también se especifican las columnas relevantes en la definición de la política, se
audita la sentencia cuando los datos cumplen con el predicado de la política de FGA y cuando la
sentencia hace referencia a las columnas relevantes definidas.
Con las sentencias DELETE, la especificación de las columnas relevantes durante la definición
de la política no resulta muy útil ya que una sentencia DELETE toca todas las columnas de una
tabla. Por esta razón, siempre se auditan las sentencias DELETE independientemente de las
columnas relevantes.
FGA soporta las sentencias MERGE. Las sentencias INSERT o UPDATE subyacentes se auditan
si cumplen cualquiera de las políticas de FGA INSERT o UPDATE.
Mediante la política de FGA definida anteriormente, se audita la primera sentencia pero no la
segunda.

Base de Datos Oracle 10g: Taller de Administración I 10-24


Instrucciones de FGA

• Para auditar todas las sentencias, utilice una


condición null.
• Los nombres de política deben ser únicos.
• La tabla o vista auditada ya debe existir cuando cree
la política.
• Si la sintaxis de la condición de auditoría no es

Oracle Internal & Oracle Academy Use Only


válida, se produce el error ORA-28112 cuando se
accede al objeto auditado.
• Si la columna auditada no existe en la tabla, no se
audita ninguna fila.
• Si el manejador de eventos no existe, no se devuelve
ningún error y el registro de auditoría se crea de
todos modos.

Copyright © 2005, Oracle. Todos los derechos reservados.

Instrucciones de FGA
Con las sentencias SELECT, FGA captura la propia sentencia y no las filas reales. Sin embargo,
cuando se combina FGA con consultas de flashback, se pueden reconstruir las filas tal y como
existían en ese punto concreto.
Para obtener más información sobre las consultas de flashback, consulte la lección titulada
“Realización de Flashback”.
Para obtener más información sobre el paquete DBMS_FGA, consulte Oracle Database, PL/SQL
Packages and Types Reference.

Base de Datos Oracle 10g: Taller de Administración I 10-25


Requisitos
Auditoría de DBA Privilegio más Bajo
Auditoría
Basada en Valores
Auditoría Detallada
> DBA
Actualiz. Seguridad
Los usuarios con privilegios SYSDBA o
SYSOPER pueden conectarse cuando la base de datos
está cerrada.
• La pista de auditoría se debe almacenar fuera de
la base de datos.
• La conexión como SYSDBA o SYSOPER siempre se

Oracle Internal & Oracle Academy Use Only


audita.
• Puede activar la auditoría adicional de acciones de
SYSDBA o SYSOPER con audit_sys_operations.
• Puede controlar la pista de
auditoría con audit_file_dest.

Copyright © 2005, Oracle. Todos los derechos reservados.

Auditoría de DBA
Los usuarios SYSDBA y SYSOPER tienen privilegios para iniciar y cerrar la base de datos.
Puesto que pueden realizar cambios mientras la base de datos está cerrada, la pista de auditoría
para estos privilegios se debe almacenar fuera de la base de datos. La base de datos Oracle
captura de manera automática los eventos de conexión de los usuarios SYSDBA y SYSOPER.
Esto proporciona una forma valiosa para realizar un seguimiento de acciones SYSDBA y
SYSOPER autorizadas y no autorizadas, si bien sólo resulta útil si se revisa la pista de auditoría
del sistema operativo.
La base de datos Oracle no captura nada que no sean eventos de conexión a menos que se active
específicamente la auditoría. Active la auditoría de usuarios SYSDBA y SYSOPER mediante la
definición del parámetro de inicialización:
audit_sys_operations=TRUE (El valor por defecto es FALSE.)
Si se auditan las operaciones SYS, el parámetro de inicialización audit_file_dest controla
la ubicación de almacenamiento de los registros de auditoría. En una plataforma Windows, la
pista de auditoría toma por defecto el registro de eventos de Windows. En plataformas UNIX o
Linux, los registros de auditoría se almacenan en $ORACLE_HOME/rdbms/audit.

Base de Datos Oracle 10g: Taller de Administración I 10-26


Mantenimiento de la Pista de Auditoría

Se debe mantener la pista de auditoría. Siga estas


recomendaciones:
• Revise y almacene los registros antiguos.
• Evite los problemas de almacenamiento.
• Evite la pérdida de registros.

Oracle Internal & Oracle Academy Use Only


Copyright © 2005, Oracle. Todos los derechos reservados.

Mantenimiento de la Pista de Auditoría


Es necesario mantener cada tipo de pista de auditoría. El mantenimiento básico debe incluir la
revisión de los registros de auditoría y la eliminación de los registros antiguos en la base de datos
o el sistema operativo. Las pistas de auditoría pueden crecer de tamaño hasta llenar todo el
almacenamiento disponible. Si el sistema de archivos está completo, el sistema puede fallar
o provocar problemas de rendimiento. Si la pista de auditoría de la base de datos llena el
tablespace, no se completarán las acciones auditadas. Si la pista de auditoría llena el tablespace
del sistema, se verá afectado el rendimiento de otras operaciones antes de que se paren las
operaciones de auditoría.
La pista de auditoría estándar se almacena en la tabla AUD$. La pista de auditoría para FGA es la
tabla FGA_LOG$. Estas dos tablas se crean por defecto en el tablespace SYSTEM. Puede mover
estas tablas a otro tablespace mediante las utilidades de exportación e importación.
Nota: El movimiento de las tablas de auditoría fuera del tablespace SYSTEM no está soportado.
Los registros de auditoría se pueden perder durante el proceso de eliminación de registros en las
tablas de auditoría.
Práctica recomendada: Utilice una exportación basada en un registro de hora y suprima las
filas de la pista de auditoría que tengan el mismo registro de hora.

Base de Datos Oracle 10g: Taller de Administración I 10-27


Actualizaciones Requisitos
Privilegio más Bajo
de Seguridad Auditoría
Basada en Valores
Auditoría Detallada
DBA
> Actualiz. Seguridad
• Oracle publica alertas de seguridad en la
dirección Web de Oracle Technology Network en:
http://www.oracle.com/technology/deploy/security/alerts.htm
• Los administradores y desarrolladores de la base de
datos Oracle también pueden suscribirse para recibir

Oracle Internal & Oracle Academy Use Only


notificaciones de las alertas de seguridad críticas a
través de correo electrónico haciendo clic en el enlace
“Subscribe to Oracle Critical Patch Update and Security
Alert notifications”.

Copyright © 2005, Oracle. Todos los derechos reservados.

Actualizaciones de Seguridad
Las alertas de seguridad de Oracle contienen una breve descripción de la vulnerabilidad,
una evaluación del riesgo y del grado de exposición asociados a la vulnerabilidad, así como
soluciones alternativas o parches que se pueden aplicar. Con Enterprise Manager, puede
gestionar los parches. Oracle incluye una confirmación del individuo u organización que notificó
la vulnerabilidad.
Las alertas de seguridad se publican en la dirección Web de Oracle Technology Network y en
OracleMetaLink (MetaLink). Aunque las alertas de seguridad se dan a conocer públicamente a
cualquier persona que esté interesada en ellas, sólo los clientes con un número de identificación
de soporte al cliente (Customer Support Identification o CSI) actual pueden descargar parches.
Oracle agradece su cooperación en el mantenimiento de la seguridad de sus productos a través
de notificaciones rápidas, completas y confidenciales de posibles vulnerabilidades de seguridad.
Si descubre una vulnerabilidad de seguridad con cualquier producto Oracle, notifíquenoslo
enviando una solicitud de servicio a través de MetaLink o un mensaje de correo electrónico a
secalert_us@oracle.com.

Base de Datos Oracle 10g: Taller de Administración I 10-28


Aplicación de Parches de Seguridad

• Utilice el proceso de actualización de parches


críticos.
• Aplique todos los parches de seguridad y
soluciones alternativas.
• Póngase en contacto con el equipo de productos

Oracle Internal & Oracle Academy Use Only


de seguridad de Oracle.

Copyright © 2005, Oracle. Todos los derechos reservados.

Aplicación de Parches de Seguridad


Proceso de Actualización de Parches Críticos (CPU)
Oracle inició el proceso CPU en enero de 2005. El proceso agrupaba los parches críticos de
forma trimestral. Este programa sustituye las versiones de parches de alerta de seguridad. Estos
parches son acumulativos e incluyen los parches de requisitos más solicitados y necesarios.
La versión de parches trimestral se suministra con una matriz de valoración de riesgos para que
pueda determinar en su ubicación el impacto y los riesgos de seguridad. Consulte la nota de
MetaLink: 290738.1 “Oracle Critical Patch Update Program General FAQ”. Se debe suscribir
a MetaLink para recibir estas actualizaciones.
Aplicación de Todos los Parches de Seguridad y Soluciones Alternativas
Aplique siempre todos los parches de seguridad relevantes y actuales para el sistema operativo
en el que reside la base de datos y el software de Oracle y para todas las opciones y componentes
instalados.
Contacto con el Equipo de Productos de Seguridad de Oracle
Si cree que ha encontrado una vulnerabilidad de seguridad en el software de Oracle, siga las
instrucciones proporcionadas en el enlace Security Alerts en http://otn.oracle.com o en
http://www.oracle.com/technology/deploy/security/alerts.htm.

Base de Datos Oracle 10g: Taller de Administración I 10-29


Resumen

En esta lección, debe haber aprendido lo siguiente:


• Describir sus responsabilidades de DBA en
cuanto a seguridad
• Aplicar el principio de privilegio más bajo
• Activar la auditoría de base de datos estándar

Oracle Internal & Oracle Academy Use Only


• Especificar opciones de auditoría
• Revisar información de auditoría
• Mantener la pista de auditoría

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 10-30


Visión General de la Práctica:
Implementación de Seguridad de la
Base de Datos Oracle

En esta práctica se abordan los siguientes temas:


• Activación de la auditoría de base de datos
estándar
• Especificación de las opciones de auditoría para la

Oracle Internal & Oracle Academy Use Only


tabla HR.JOBS
• Actualización de la tabla
• Revisión de la información de auditoría
• Mantenimiento de la pista de auditoría

Copyright © 2005, Oracle. Todos los derechos reservados.

Base de Datos Oracle 10g: Taller de Administración I 10-31


Oracle Internal & Oracle Academy Use Only