58397032 Curso Admin Oracle

download 58397032 Curso Admin Oracle

of 142

Transcript of 58397032 Curso Admin Oracle

PROYECTO FORMACIN

Administracin de Oracle

Cliente: Dirigido a:

AubayAlumnos del curso de Administracin de Oracle

Preparado por: Fecha:

rea de formacin Emisin: Categora: Julio 2004 Documentacin del curso

Aubay Espaa - Formacin

HOJA DE INFORMACIN GENERALCONTROL DOCUMENTALPROYECTO: ENTIDAD DE DESTINO: TITULO: CDIGO DE REFERENCIA: VERSIN: FECHA EDICIN: FICHERO: HERRAMIENTA/S DE EDICIN: AUTOR: RESUMEN: Nemo SC SR DERECHOS DE USO:La presente documentacin es propiedad de Aubay Espaa, S.A., tiene carcter de confidencial y no podr ser objeto de reproduccin total o parcial, tratamiento informtico ni transmisin de ninguna forma o por cualquier medio, ya sea electrnico, mecnico, por fotocopia, registro o cualquiera otro. Asimismo tampoco podr ser objeto de prstamo, alquiler o cualquier forma de cesin de uso sin el permiso previo y escrito de Aubay Espaa, S.A., titular del copyright. El incumplimiento de las limitaciones sealadas por cualquier persona que tenga acceso a la documentacin ser perseguida conforme a ley.

Formacin rea de Formacin Administracin de Oracle 1.01 20/07/2004 Curso de Administracin de Oracle Word 2003 Ricardo Domingo Manual del curso de Administracin de Oracle

ESTADO FORMAL:Preparado por: Revisado por: Aprobado por:

Nombre: Ricardo Domingo Fecha:5107-F03.V02

Nombre: Fecha:

Nombre: Fecha:

20/07/2004

Administracin de Oracle (V1.01)

Pg. 2

Aubay Espaa - Formacin

CONTROL DE VERSIONESVERSIN1.00 1.01

PARTES QUE CAMBIANN/A

DESCRIPCIN DEL CAMBIODocumento original Correccin de diversos errores

FECHA DE CAMBIO

16/06/2004 20/07/2004

Administracin de Oracle (V1.01)

Pg. 3

Aubay Espaa - Formacin

NDICE1 INTRODUCCIN AL DOCUMENTO ...........................................................................8 1.1 1.2 1.3 1.4 1.5 2 2.1 2.2 2.3 OBJETO ............................................................................................................. ALCANCE ......................................................................................................... DESTINATARIOS ............................................................................................... DOCUMENTACIN DE REFERENCIA ...................................................................... CONVENCIONES NOTACIONALES......................................................................... 8 8 8 8 8

COMPONENTES DE LA ARQUITECTURA ORACLE ...................................................10 ESTRUCTURA DE LA BASE DE DATOS ...........................................................................10 FICHEROS DE LA BASE DE DATOS ORACLE ....................................................................11 INSTANCIA ORACLE...............................................................................................12 CONEXIN A UNA BASE DE DATOS .............................................................................14 PROCESAMIENTO DE UNA CONSULTA ...........................................................................15 EL CONJUNTO COMPARTIDO (SHARED POOL)..................................................................15 CACHE DE BUFFERS DE DATOS..................................................................................16 REA GLOBAL DE PROGRAMAS (PGA) .........................................................................16 PROCESAMIENTO DE UNA SENTENCIA DML (INSERT, DELETE,UPDATE)..............................17 BUFFER DE REDO LOG .........................................................................................18 SEGMENTO DE ROLLBACK .....................................................................................18 PROCESAMIENTO COMMIT...................................................................................19 DATABASE WRITE (DBW)....................................................................................20 LOG WITER (LGWR) .........................................................................................20 SYSTEM MONITOR (SMON)..................................................................................21 PROCESS MONITOR (PMON) ................................................................................21 CHECKPOINT PROCESS (CKPT)..............................................................................21 ARCHIVER PROCESS (ARC) ..................................................................................21 ARRANQUE DE UNA INSTANCIA DE BASE DE DATOS ...........................................................24Area Global del Sistema (SGA).................................................................................. 13 Procesos en Background .......................................................................................... 13

2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 2.16 2.17 2.18 3 3.1 3.2 3.3 3.4 3.5 4 4.1

2.3.1 2.3.2

GESTIN DE UNA INSTANCIA DE BASE DE DATOS ORACLE..................................243.1.1 3.2.1 3.3.1 Comando de Arranque de una instancia de BD ............................................................ 26

PARADA DE UNA INSTANCIA DE BASE DE DATOS ...............................................................26

FICHERO DE PARMETROS .......................................................................................28VISTAS DINMICAS DE RENDIMIENTO ...........................................................................32

Comando de Parada de una instancia de BD................................................................ 27 Parmetros Dinmicos ............................................................................................. 30

FICHERO ALERT Y DE RASTREO ..................................................................................33 CONCEPTOS .......................................................................................................34Consideraciones previas a la creacin de la Base de Datos ............................................ 34 Planificacin de la ubicacin de los ficheros ................................................................. 34 Mtodos para crear una Base de Datos....................................................................... 35

CREACIN BASE DE DATOS ORACLE ....................................................................344.1.1 4.1.2 4.1.3

4.2

CREACIN DE UNA BASE DE DATOS MANUALMENTE ............................................................35

Administracin de Oracle (V1.01)

Pg. 4

Aubay Espaa - Formacin

4.3 5 5.1

4.2.1 4.2.2 4.2.3 4.2.4

EJEMPLO REAL .....................................................................................................38 VISIN GENERAL DEL DICCIONARIO DE DATOS ................................................................40Contenido del Diccionario de Datos ............................................................................ 40 Tablas Base y Vistas del Diccionario de Datos.............................................................. 41 Categoras del Diccionario de Datos ........................................................................... 41

Configuracin del Entorno del Sistema Operativo ......................................................... 35 Preparacin del Fichero de Parmetros ....................................................................... 35 Inicio de la Instancia ............................................................................................... 36 Creacin de la Base de Datos.................................................................................... 36

CREACIN Y USO DEL DICCIONARIO DE DATOS Y PAQUETES ESTNDAR............405.1.1 5.1.2 5.1.3 5.2.1 5.3.1 5.3.2

5.2 5.3 5.4 6 6.1 6.2 6.3 6.4 6.5 6.6 7 7.1 7.2

UNIDADES DE PROGRAMA ALMACENADAS .......................................................................42

CREACIN DEL DICCIONARIO DE DATOS .......................................................................44Ficheros de Comandos creacin del Diccionario de datos requeridos ............................... 44 Ficheros de Comandos creacin del Diccionario de datos opcionales................................ 47

Ejecucin de una Unidad de Programa PL/SQL............................................................. 43

EJEMPLO REAL .....................................................................................................48 JERARQUA DE ALMACENAMIENTO DE LA BASE DE DATOS .....................................................50

GESTIN DE TABLESPACES Y FICHEROS DE DATOS .............................................506.1.1 Tablespaces ........................................................................................................... 51

CREACIN DE TABLESPACES.....................................................................................52 MODIFICACIN DE TABLESPACES ...............................................................................57 BORRADO DE TABLESPACES......................................................................................60 VISTAS DEL DICCIONARIO DE DATOS SOBRE TABLESPACES...................................................61 EJEMPLO REAL .....................................................................................................61 CONCEPTO .........................................................................................................64 BLOQUES DE DATOS ..............................................................................................65Formato del bloque de datos..................................................................................... 65 Parmetros de Utilizacin de Espacio de Bloque ........................................................... 66 Parmetros que controlan la Simultaneidad................................................................. 68 Nmero y Tamao de una Extensin .......................................................................... 69 Extensiones en Segmentos Temporales ...................................................................... 70

SEGMENTOS, EXTENSIONES Y BLOQUES DE DATOS .............................................64

7.3 7.4

7.2.1 7.2.2 7.2.3 7.3.1 7.3.2 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.4.6

EXTENSIONES

.....................................................................................................69

SEGMENTOS .......................................................................................................70Segmentos de Datos ............................................................................................... 70 Segmentos de ndices.............................................................................................. 70 Segmentos Temporales............................................................................................ 71 Segmentos Rollback ................................................................................................ 71 Vistas del diccionario de datos sobre Estructuras de Almacenamiento ............................. 72 Fragmentacin de Segmentos ................................................................................... 72

8

GESTIN DE SEGMENTOS DE ROLLBACK ..............................................................74 8.1 8.2 8.3 8.48.1.1CONCEPTO .........................................................................................................74 TIPOS DE SEGMENTOS DE ROLLBACK ............................................................................75 CREACIN DE SEGMENTOS DE ROLLBACK .......................................................................76

Uso y Asignacin de Extensiones en Segmentos de Rollback .......................................... 74

8.3.1

VISTAS DEL DICCIONARIO DE DATOS SOBRE SEGMENTOS DE ROLLBACK....................................79

Activar/Desactivar/Borrar Segmentos de Rollback ........................................................ 78

9

GESTIN DE TABLAS............................................................................................81

Administracin de Oracle (V1.01)

Pg. 5

Aubay Espaa - Formacin

9.1 9.2

FORMATO Y TAMAO DE LAS FILAS ..............................................................................81 TIPOS DE DATOS ORACLE

9.3

9.2.1 9.2.2 9.2.3 9.3.1 9.3.2 9.3.3 9.3.4 9.4.1 9.4.2 9.4.3 9.4.4

CREACIN DE TABLAS ............................................................................................86Instrucciones para la Creacin de Tablas .................................................................... 88 Definicin de PCTFREE y PCTUSED............................................................................. 88 Migracin y Encadenamiento de Filas ......................................................................... 89 Control del Espacio Utilizado por las Tablas ................................................................. 89

Tipos de Datos Escalares .......................................................................................... 82 Recopilaciones ........................................................................................................ 85 Tipos de Datos de Relacin ....................................................................................... 85

........................................................................................82

9.4

MODIFICACIN DE TABLAS .......................................................................................90

9.5 9.6 10

.............................................................................................92 VISTAS DEL DICCIONARIO DE DATOS SOBRE TABLAS .........................................................93TABLAS TEMPORALES

Liberacin de Espacio no Utilizado ............................................................................. 90 Truncado de una Tabla ............................................................................................ 91 Borrado de una Tabla .............................................................................................. 91 Borrado de una Columna.......................................................................................... 91

GESTIN DE NDICES.....................................................................................9510.1.1 10.1.2 10.1.3 10.2.1 10.2.2 10.2.3 10.2.4 10.3.1 10.3.2 10.3.3 10.3.4 10.4.1 10.4.2 10.4.3 10.4.4

10.1

CLASIFICACIN LGICA .......................................................................................95ndices Concatenados o de Columna nica............................................................... 95 ndices nicos y No nicos .................................................................................... 95 ndices basados en Funciones ................................................................................ 95

10.2

CLASIFICACIN FSICA.........................................................................................96

10.3

CREACIN DE NDICES ....................................................................................... 100

Estructura de un ndice B-Tree............................................................................... 96 ndice de Clave Invertida ...................................................................................... 97 ndices Bitmap .................................................................................................... 98 Comparacin ndices B-Tree y Bitmap ................................................................... 100 Instrucciones en la Creacin de ndices ................................................................. Creacin de ndices B-Tree Normales .................................................................... Creacin de ndices B-Tree de Clave Invertida........................................................ Creacin de ndices Bitmap ................................................................................. Cambio de los Parmetros de Almacenamiento para ndices ..................................... Asignacin y Liberacin de Espacio de ndice.......................................................... Reconstruccin de ndices ................................................................................... Borrado de ndices .............................................................................................

10.4

MODIFICACIN DE NDICES

................................................................................. 103

100 101 102 102

10.5 11 11.1

VISTAS DEL DICCIONARIO DE DATOS SOBRE NDICES .................................................... 105

103 103 104 105

MANTENIMIENTO DE LA INTEGRIDAD DE LOS DATOS ..................................107RESTRICCIONES DE INTEGRIDAD

11.2 11.3 11.4 12 12.1

11.1.1 11.1.2 11.1.3 11.2.1 11.2.2

Tipos de Restricciones ........................................................................................ 107 Restricciones Diferidas/No Diferidas ...................................................................... 108 Estados de Restriccin ........................................................................................ 109IMPLEMENTACIN DE RESTRICCIONES

........................................................................... 107

MANTENIMIENTO DE RESTRICCIONES....................................................................... 113 VISTAS DEL DICCIONARIO DE DATOS SOBRE RESTRICCIONES ........................................... 114

Instrucciones para Definir Restricciones................................................................. 111 Consideraciones sobre la Clave Ajena.................................................................... 112

..................................................................... 110

GESTIN DE USUARIOS................................................................................116CREACIN DE USUARIOS

.................................................................................... 116

Administracin de Oracle (V1.01)

Pg. 6

Aubay Espaa - Formacin

12.2 12.3 12.4 13 13.1 13.2 14 14.1

MODIFICACIN DE USUARIOS ............................................................................... 118

SUPRESIN DE USUARIOS ................................................................................... 119 VISTAS DEL DICCIONARIO DE DATOS SOBRE USUARIOS .................................................. 119 GESTIN DE PRIVILEGIOS ...........................................................................121PRIVILEGIOS DE SISTEMA

13.1.1 13.2.1

PRIVILEGIOS DE OBJETO ..................................................................................... 125

Vistas Mostrar Privilegios del Sistema.................................................................... 124 Vistas Mostrar Privilegios de Objetos..................................................................... 126

................................................................................... 121

GESTIN DE ROLES ......................................................................................12714.1.1 14.1.2 14.1.3 14.1.4 14.1.5CREACIN, MODIFICACIN, ASIGNACIN Y BORRADO DE ROLES ........................................ 127

14.2 14.3 15 15.1

ACTIVACIN Y DESACTIVACIN DE ROLES ................................................................. 129 VISTAS MOSTRAR INFORMACIN DE ROLES ............................................................... 129

Creacin de Roles .............................................................................................. Modificacin de Roles.......................................................................................... Asignacin de Roles............................................................................................ Borrado de Roles ............................................................................................... Uso de Roles Predefinidos....................................................................................

127 127 128 128 128

UTILIDADES: IMPORT, EXPORT, SQL*LOADER .............................................13215.1.1 15.1.2 15.1.3 15.1.4 15.2.1 15.3.1EXPORT ........................................................................................................ 132

15.2 15.3 16 16.1 16.2 16.3 16.4 16.5

IMPORT ........................................................................................................ 135 SQL*LOADER

Modo Tabla ....................................................................................................... Modo Usuario .................................................................................................... Modo Base de Datos Completa ............................................................................. Parmetros de la utilidad Export...........................................................................

133 133 133 133

Parmetros de la utilidad Import .......................................................................... 135 Formato del Fichero de Control ............................................................................ 138

................................................................................................. 137

PRCTICAS...................................................................................................140 2: COMPONENTES DE LA ARQUITECTURA ORACLE ................................................. 140 3: GESTIN DE UNA INSTANCIA ORACLE ............................................................ 141 TEMA 4: CREACIN DE UNA BASE DE DATOS ORACLE .................................................... 141 TEMA 5: DICCIONARIO DE DATOS .......................................................................... 142 TEMA 6: GESTIN DE TABLESPACES Y FICHEROS DE DATOS ............................................. 142TEMA TEMA

Administracin de Oracle (V1.01)

Pg. 7

Aubay Espaa - Formacin

1 INTRODUCCIN AL DOCUMENTO1.1 OBJETOEste documento contiene la informacin necesaria para iniciarse en la Administracin Bsica de Oracle de modo que, al finalizar el curso el alumno sea capaz de iniciarse directamente en el mantenimiento y gestin de bases de datos Oracle.

1.2 ALCANCE

Este documento puede utilizarse como gua de estudio autodidacta, o como ayuda a un curso tutelado.

1.3 DESTINATARIOS

Los destinatarios principales de este documento son las personas interesadas en iniciarse en la Administracin Bsica de Oracle.

1.4 DOCUMENTACIN DE REFERENCIADocumentoDocumentacin diversa http://otn.oracle.com Oracle9i DBA Fundamentos (I y II) http://metalink.oracle.com

Referencia VersinInternet Internet Gua de Estudio Internet

Fecha

1.5 CONVENCIONES NOTACIONALESNotacin Descripcin

Administracin de Oracle (V1.01)

Pg. 8

Aubay Espaa - Formacin

Notacin

Descripcin

Administracin de Oracle (V1.01)

Pg. 9

Aubay Espaa - Formacin

2 COMPONENTES DE LA ARQUITECTURA ORACLE2.1 ESTRUCTURA DE LA BASE DE DATOSUna base de datos ORACLE es un sistema de gestin de base de datos relacionales de objetos que proporciona un enfoque abierto. El objeto habitual de una base de datos es almacenar y recuperar informacin. Una base de datos puede estar abierta (accesible) o cerrada (inaccesible). En situaciones normales una base de datos est accesible y preparada para su utilizacin, sin embargo, hay veces que para realizar labores administrativas especficas la base de datos debe estar no accesible para los usuarios. Una base de datos Oracle est compuesta de tres partes bsicas: Memoria. Puede ser memoria asociada a procesos de usuario (PGA) y por lo tanto privada, o tambin memoria asociada al servidor Oracle, se llama memoria Compartida o SGA. Esta ltima zona de memoria son buffers que oracle toma del sistema operativo al tiempo de arrancar la BD; su tamao est determinado por el fichero de inicializacin de la base de datos, que se llama habitualmente init.ora (SID es el nombre de la BD). En la SGA se sitan datos, informacin del diccionario de datos, gestin de bloqueos, etc Procesos. Existen dos tipos de procesos: Procesos de usuario, p.e. sqlplus, sqlforms.Procesos background o procesos de oracle como DBWR, LGWR Ficheros de Datos. Existen 3 tipos de ficheros: o REDO LOG: Sirven para mantener la consistencia en caso de fallo. o Fichero de Control: Contienen informacin para poder arrancar la BD, su nombre, fecha de creacin, ficheros asociados a la BD, etc o Ficheros de Datos: Son los ficheros donde se almacena la informacin de la BD. Una base de datos contempla 3 aspectos: Estructuras: Son objetos definidos que almacenan la informacin de una BD. El acceso a las estructuras y los datos contenidos en ellas se realiza mediante operaciones. Operaciones: Las operaciones son las acciones que nos permiten acceder y manipular los datos y las estructuras. Las operaciones en una BD suelen ajustarse a una serie de reglas de integridad predefinidas. Reglas de Integridad: Son las leyes que rigen las operaciones que permiten acceder a los datos y manipularlos. Sirven para proteger los datos y las estructuras que los contienen. El servidor Oracle est formado por una instancia y una base de datos Oracle. Instancia Oracle: Una instancia Oracle es la combinacin de los procesos en background y las estructuras de memoria. Es necesario iniciar la instancia para acceder a los datos de la BD. Cada vez que se inicia una instancia se asigna un rea global del sistema (SGA) y se inician los procesos en background Oracle. El SGA es una zona de memoria que se utiliza para almacenar la informacin de la base de datos que comparten los procesos asociados a la BD. Los procesos en background desempean funciones de E/S y supervisan a otros procesos para proporcionar un mayor paralelismo con el fin de conseguir un mejor rendimiento y fiabilidad.

Administracin de Oracle (V1.01)

Pg. 10

Aubay Espaa - Formacin

2.2 FICHEROS DE LA BASE DE DATOS ORACLE

Fig. 2.1 Ficheros BBD Oracle Una base de datos Oracle es una recopilacin de datos que se tratan como una unidad. La base de datos tiene una estructura lgica y una fsica. La estructura fsica es el conjunto de ficheros del sistema operativo asociados a la BD. Una base de datos Oracle consta de tres tipos de ficheros: Los ficheros de datos, que contienen los datos reales de la BD. Los datos se almacenan en tablas definidas por el usuario, pero tambin contienen el diccionario de datos, imgenes anteriores de los datos modificados, ndices y otros tipos de estructuras. Las caractersticas de los ficheros de datos son las siguientes: o Un fichero de datos slo puede estar asociado con una BD. o Los ficheros de datos pueden tener caractersticas definidas que les permiten extenderse de forma automtica cuando el tamao definido inicialmente se ha completado. o Uno o ms ficheros de datos forman una unidad lgica de almacenamiento de base de datos conocida como tablespace. Los ficheros de Redo Log, contienen registros de los cambios efectuados en la base de datos con el objeto de poder recuperar los datos en caso de fallos. Una base de datos Oracle necesita al menos dos ficheros de redo log. Los ficheros de Control, contienen la informacin necesaria para mantener y verificar la integridad de la base de datos. Por ejemplo, un fichero de control se usa para identificar los ficheros de datos y redo log. Una base de datos Oracle necesita al menos un fichero de Control. El servidor Oracle tambin utiliza otros ficheros que no forman parte de la base de datos pero son necesarios para un correcto funcionamiento de la misma:

Administracin de Oracle (V1.01)

Pg. 11

Aubay Espaa - Formacin

Fig. 2.2 Ficheros Auxiliares BD Oracle El fichero de parmetros, define las caractersticas de una instancia Oracle. Por ejemplo contiene los parmetros que especifican el tamao de las estructuras de la memoria en el SGA. Los ficheros del protocolo SQLNet, (listener.ora, tnsnames.ora y sqlnet.ora). Permiten el acceso a la base de datos por parte de las aplicaciones. Los ficheros Archive-Log, son copias de los ficheros redo log, que pueden ser necesarios para recuperar la BD en el caso de fallos del medio fsico.

2.3 INSTANCIA ORACLE

Estructura de Memoria

Procesos en background

Fig. 2.3 Instancia BD Oracle Una instancia oracle se compone de la estructura de la memoria SGA y de los procesos en background que se utilizan para gestionar una base de datos. La instancia slo podr abrir y utilizar una base de datos a la vez.

Administracin de Oracle (V1.01)

Pg. 12

Aubay Espaa - Formacin

2.3.1 Area Global del Sistema (SGA)

Fig.2.4 SGA de una BD Oracle El SGA es una zona de memoria compartida que se utiliza para almacenar la informacin de la base de datos y que es compartida por los procesos de la BD. Contiene informacin de datos y de control para el servidor Oracle. El SGA est formada por diversas estructuras: El conjunto compartido, se utiliza para almacenar las ltimas sentencias SQL ejecutadas y los ltimos datos utilizados por el diccionario de datos. Las sentencias SQL pueden ser enviadas por procesos de usuario o bien por procedimientos almacenados. La cach de buffers, se utiliza para almacenar los ltimos datos que se hayan utilizado. El buffer de redo log, se utiliza por los procesos en background para hacer un seguimiento de los cambios realizados en la base de datos. Ms adelante se explica en detalle las estructuras de la SGA. Tambin hay otra estructura de memoria opcional en el SGA, el conjunto Java, se utiliza para almacenar cdigo Java.

2.3.2 Procesos en Background

Fig.2.5 Procesos en Bakground de una BD Oracle

Administracin de Oracle (V1.01)

Pg. 13

Aubay Espaa - Formacin

Los procesos en background de una instancia tienen por objeto atender las solicitudes de usuarios simultneos sin comprometer la integridad ni el rendimiento del sistema. En funcin de la configuracin de la instancia Oracle se pueden incluir diferentes procesos en background, aunque cada instancia incluye siempre estos cinco procesos: Database Write (DBW0): Es el responsable de escribir los datos cambiados desde la cach de buffers de base de datos en los ficheros de datos. Log Writer (LGWR): Escribe los cambios registrados en el buffer de redo log a los ficheros Archive-Log. El Monitor del Sistema (SMON): Comprueba la consistencia de la BD y si es necesario inicia la recuperacin de la base de datos cuando se abre. El Monitor de Procesos (PMON): Limpia los recursos si falla uno de los procesos. El Proceso de Punto de Control (CKPT): Es el responsable de actualizar la informacin de estado de la BD de los ficheros de control y de datos.

2.4 CONEXIN A UNA BASE DE DATOS

Fig.2.6 Conexin a una BD Antes que los usuarios puedan enviar sentencias SQL a Oracle se deben conectar a una instancia: El usuario inicia una aplicacin, por ejemplo sqlplus. Esta aplicacin se ejecutar en un proceso de usuario. En la configuracin ms bsica, cuando un usuario se conecta a un servidor Oracle, se crea un proceso en el equipo que ejecuta el servidor Oracle. A este proceso se le llama proceso de servidor y se comunicar con la instancia Oracle en nombre del proceso del usuario que se ejecuta en el cliente. El proceso de servidor ejecutar las sentencias SQL en nombre del usuario. Una conexin no es ms que una ruta de comunicacin entre un proceso de usuario y una instancia Oracle.

Administracin de Oracle (V1.01)

Pg. 14

Aubay Espaa - Formacin

En estos casos hay una correspondencia uno a uno entre un proceso de usuario y de servidor, y se denomina conexin de servidor dedicado. Cuando se utiliza una configuracin de servidor multithread (MTS), muchos procesos de usuario podrn compartir un proceso de servidor.

2.5 PROCESAMIENTO DE UNA CONSULTALas consultas son diferentes a otros tipos de sentencias SQL, ya que, si son correctas devuelven los datos como resultados y otras sentencias SQL devuelven xito o fallo al procesamiento de dicha sentencia. Tres son las etapas principales en el procesamiento de una consulta: 1. Anlisis 2. Ejecucin 3. Recuperacin Anlisis de una Sentencia SQL: Durante esta etapa la sentencia SQL se transfiero del proceso de usuario al de servidor y se carga una representacin analizada de la sentencia en un rea SQL compartida. Durante el anlisis el proceso servidor: Busca una copia existente de la sentencia en el zona de memoria compartida. Valida la sentencia SQL comprobando su sintaxis. Realiza bsquedas en el diccionario de datos para validar las definiciones de tablas y columnas. Establece bloqueos de anlisis en objetos de forma que no cambien sus definiciones durante el anlisis de la sentencia. Comprueba los privilegios que el usuario dispone para acceder a los objetos que se referencian en la consulta. Determina el plan de ejecucin ptimo de la sentencia. Carga la sentencia y el plan de ejecucin en un rea SQL compartida.

La etapa de anlisis incluye el procesamiento de los requisitos que, normalmente, slo se deben realizar una vez, independientemente de las veces que se ejecute la sentencia. El anlisis slo identifica los errores que puedan encontrarse antes de ejecutar la sentencia, con lo cual hay ciertos errores que se van a escapar de la fase de anlisis y slo pueden notificarse durante la etapa de ejecucin. Ejecucin de una Sentencia SELECT: El servidor Oracle dispone de toda la informacin y recursos necesarios, por lo que se ejecuta la sentencia. Recuperacin de las Filas de una Consulta: El servidor selecciona, ordena (si es necesario) y devuelve los registros al usuario.

2.6 EL CONJUNTO COMPARTIDO (SHARED POOL)

Administracin de Oracle (V1.01)

Pg. 15

Aubay Espaa - Formacin

Durante la etapa de anlisis de una sentencia SQL, el proceso de servidor utiliza el rea del SGA, conocida como conjunto compartido para compilar la sentencia SQL. Este conjunto est formado de dos componentes principales: Cach de biblioteca. Cach del diccionario de datos. Cach de Biblioteca: Almacena informacin acerca de las ltimas sentencias SQL que se hayan utilizado, y contiene: El texto de la sentencia SQL El rbol de anlisis: Una versin compilada de la sentencia. El plan de ejecucin: Los pasos a seguir cuando se ejecuta la sentencia. El optimizador es la funcin del servidor Oracle que determina el plan de ejecucin ptimo.

Si se vuelve a ejecutar una sentencia SQL y un rea SQL compartida ya dispone del plan de ejecucin de dicha sentencia, el proceso de servidor no necesitar analizar la sentencia. De esta forma la cach de biblioteca mejora el rendimiento de las aplicaciones que vuelven a utilizar las sentencias SQL, reduciendo el tiempo de anlisis y los requisitos de memoria. Si la sentencia SQL no se vuelve a utilizar, al final caducar en dicha cach y ser reemplazada aplicando el algoritmo LRU. Cach del Diccionario de Datos: Es una coleccin de las ltimas definiciones utilizadas en la base de datos. Incluye informacin acerca de los archivos de datos, columnas, usuarios, privilegios y otros objetos de la BD. Durante la fase de anlisis, el proceso servidor busca informacin en dicha cach para validar los privilegios de acceso. Si fuese necesario el proceso servidor inicia la carga de esta informacin de los archivos de datos. Especificacin del Tamao del Conjunto Compartido: El tamao del conjunto compartido lo especifica el parmetro de inicializacin SHARED_POOL_SIZE.

2.7 CACH DE BUFFERS DE DATOSCuando se procesa una consulta, el proceso servidor busca en la cach de buffers de datos los bloques que necesita. Si no se encuentra el bloque en la cach de datos, entonces el proceso servidor lee el bloque en el archivo de datos y coloca una copia en dichos buffers. De esta forma las siguientes solicitudes para el mismo bloque encontrarn el bloque en memoria, y dichas solicitudes no necesitarn realizar lecturas fsicas. El servidor Oracle utiliza el algoritmo LRU para hacer caducar los buffers a los que se ha accedido recientemente, para dejar sitio a los nuevos bloques en la cach de buffers. Especificacin del Tamao de la Cach de Buffers de la Base de Datos: El tamao de cada buffer en la cach de buffers equivale al tamao de un bloque de oracle, y lo especifica el parmetro DB_BLOCK_SIZE. El nmero de buffers equivale al valor del parmetro DB_BLOCK_BUFFERS.

2.8 REA GLOBAL DE PROGRAMAS (PGA)

Administracin de Oracle (V1.01)

Pg. 16

Aubay Espaa - Formacin

Es una regin de la memoria que posee los datos y la informacin de los controles de un nico proceso de servidor o de un nico proceso en background. A diferencia del SGA, que comparten varios procesos, el PGA es un rea que slo utiliza un proceso. En una configuracin de servidor dedicado, el PGA de servidor incluye los siguientes componentes: rea de ordenacin: Se utiliza para cualquier ordenacin necesaria para procesar la sentencia SQL. Informacin de la sesin: Incluye los privilegios de usuario y las estadsticas del rendimiento de la sesin. Estado del Cursor: Indica la etapa en el procesamiento de las sentencias que la sesin utiliza en ese momeno. Espacio de la Pila: Contiene otras variables de la sesin. El PGA se asigna cuan se crea un proceso y se libera cuando dicho proceso termina. Si se utiliza una configuracin de servidor Multithread (MTS) entonces algunas de estas estructuras se almacenarn en el SGA. Gracias a una configuracin MTS, es posible que muchos procesos de usuario compartan un nico proceso de servidor.

2.9 PROCESAMIENTO DELETE,UPDATE)

DE

UNA

SENTENCIA

DML

(INSERT,

Fig.2.7 Procesamiento de una sentencia DML Una sentencia del Lenguaje de Manipulacin de Datos (DML) slo requiere dos fases de procesamiento: Anlisis, es la misma que la utilizada para procesar una consulta. Ejecucin, requieren de un procesamiento adicional para efectuar cambios de datos. Fase de Ejecucin DML Para ejecutar una sentencia DML:

Administracin de Oracle (V1.01)

Pg. 17

Aubay Espaa - Formacin

1. Si los bloques de datos y de rollback no estn en la cach de buffers, el proceso de servidor los leer en los ficheros de datos y los llevar a dicha cach. 2. El proceso servidor realiza los bloqueos en las filas que se deben modificar. 3. En el buffer de redo log, el proceso servidor registra los cambios que se deban efectuar en el rollback y en los datos. Los cambios del bloque de rollback registran los valores de los datos antes que se modifiquen. El bloque de rollback se utiliza para almacenar la imagen anterior de los datos, de forma que se puedan deshacer los cambios de las sentencias DML si fuera necesario. Los cambios de los bloques de datos registran los nuevos valores de los datos. 4. El proceso de servidor registra la imagen anterior en el bloque de rollback y actualiza el bloque de datos. Estos dos cambios se llevan a cabo en la cach de buffers de datos. Cualquier bloque que se cambie en el cach de buffers ser marcar como buffer sucio, es decir, aquellos buffers que no son los mismos que los bloques correspondientes en el disco.

2.10 BUFFER DE REDO LOGEl proceso de servidor registra la mayor parte de los cambios efectuados a los bloques de archivos de datos en el buffer de redo log, que es una parte de la SGA. El buffer de redo log tiene las siguientes caractersticas: Su tamao en bytes lo define el parmetro LOG_BUFFER. Registra el bloque que se modifica, la ubicacin del cambio y el nuevo valor, en un registro de redo. Un registro redo no distingue el tipo de bloque que se cambia, simplemente registra los bytes que se cambian en el bloque. El buffer de redo log se usa de forma secuencial, y los cambios que lleve a cabo una transaccin se pueden intercalar con los efectuados por otras transacciones. Se trata de un buffer circular que se vuelve a utilizar despus de llenarlo, aunque nicamente cuando los registros de redo se hayan registrado en los ficheros de redo log.

2.11 SEGMENTO DE ROLLBACKAntes de realizar un cambio, el proceso de servidor guarda el valor de datos antiguo en un segmento de rollback. Esta imagen anterior se utiliza para: Deshacer los cambios en caso de anular la transaccin. Proporciona consistencia de lectura, asegurndose que otras transacciones no vean los cambios no validados realizados por la sentencia DML. Recuperar la consistencia del estado de la base de datos en caso de fallo. Los segmentos de rollback como las tablas y los ndices, existen en los archivos de datos, mientras que los bloques de rollback se introducen en el buffer de base de datos a medida que se necesitan. Los cambios efectuados en los segmentos de rollback se registran en el buffer de redo log.

Administracin de Oracle (V1.01)

Pg. 18

Aubay Espaa - Formacin

2.12 PROCESAMIENTO COMMIT

Fig.2.8 Procesamiento del COMMIT La sentencia SQL COMMIT es el mecanismo que utiliza Oracle para confirmar los datos de una transaccin en la base de datos, y que dichos cambios puedan ser visualizados por el resto de los usuarios. Siempre que se valida una transaccin, el servidor Oracle asigna un nmero de cambio del sistema de validacin (SCN) a la transaccin. El SCN se incrementa regularmente y es nico en la base de datos. Este nmero lo utiliza el servidor Oracle como un registro interno para sincronizar los datos y proporcionar consistencia de lectura cuando se recuperan datos de archivos de datos. Pasos para el Procesamiento de COMMIT A continuacin se muestran los pasos que a seguir cuando se emite la sentencia COMMIT: 1. El proceso de servidor coloca un registro de validacin, junto con el SCN, en el buffer de redo log 2. El proceso LGWR realiza una escritura contigua de todos los registros de buffers de redo log hasta ese momento e incluye el registro de validacin en los archivos de redo log. De esta forma el servidor Oracle garantiza que los cambios no se perdern si falla la instancia. 3. Se informa al usuario que el COMMIT ha finalizado 4. El proceso de servidor registra la informacin para indicar que la transaccin est completa y que los bloqueos de recursos se pueden liberar. El proceso DBW0 llevar a cabo el vaciado de los buffers de datos sucios en los ficheros de datos, y dicha accin la podr realizar antes o despus de la validacin.

Administracin de Oracle (V1.01)

Pg. 19

Aubay Espaa - Formacin

El hecho de deshacer una transaccin (ROLLBACK) no dispara la escritura en disco del proceso LGWR. El servidor Oracle deshace los cambios no validados cuando se recupera de fallos. En caso que aparezca un fallo despus de deshacer, antes de registrar los registros de rollback en disco, la ausencia de un registro de validacin ser suficiente para asegurar que se desharn los cambios realizados por la transaccin.

2.13 DATABASE WRITE (DBW)El proceso de servidor registra los cambios en los bloques de rollback y de datos en la cach de buffers. El proceso DBW0 escribe los buffers sucios de la cach de buffers de base de datos en los ficheros de datos. Se asegura que haya un nmero suficiente de buffers libres, es decir, buffers que se puedan sobrescribir cuando los procesos de servidor necesiten leer bloques de los archivos de datos hacia la cach de buffers de base de datos. El rendimiento de la base de datos es mucho mejor, ya que los procesos de servidor slo realizan cambios en la cach de buffers, y el proceso DBW0 difiere la escritura a los archivos de datos hasta que se produzca uno de los siguientes eventos: El nmero de buffers sucios alcanza un valor umbral. Un proceso explora un nmero determinado de bloques cuando explora buffers libres y no puede encontrar ninguno. Se produce un timeout cada tres segundos. Se produce un punto de control. Un punto de control es un medio de sincronizar la cach de buffer de base de datos con el archivo de datos.

El parmetro de inicializacin DB_WRITER_PROCESSES determina el nmero de procesos DBWn. El proceso DBW0 escribe los buffers de datos aplicando el algoritmo LRU.

2.14 LOG WITER (LGWR)El proceso LGWR realiza escrituras secuenciales desde el buffer de redo log al archivo redo log en las siguientes situaciones: Cuando se valida una transaccin. Cuando el buffer de redo log se encuentra a un tercio de su capacidad. Cuando se registra ms de un MB de cambios en el buffer de redo log. Antes que el proceso DBW0 escriba los bloques modificados de la cach de buffers de base de datos en los archivos de datos.

Este proceso escribe de forma sncrona en los grupos de ficheros redo log online que se deben encontrar en configuracin mirror. Si uno de los ficheros del grupo est inaccesible, el proceso contina escribiendo en otros ficheros del grupo, mostrando un error en el fichero de la alerta de la instancia. Si todos los ficheros de un grupo estn inaccesibles, entonces este proceso no podr realizar su funcin. Si el proceso DBW0 al tiempo de escribir en los ficheros de datos encuentra registros redo que no han sido escritos en los ficheros de redo log, entonces indica al proceso LGWR que debe escribir dichos registros en los ficheros redo, esperando el proceso DBW0 a que se complete dicha operacin para que pueda escribir en los ficheros de datos.

Administracin de Oracle (V1.01)

Pg. 20

Aubay Espaa - Formacin

2.15 SYSTEM MONITOR (SMON)Si falla la instancia Oracle se perder toda la informacin contenida en el SGA que no se haya escrito en el disco. Una vez que se haya perdido la instancia el proceso SMON realiza automticamente una recuperacin de la informacin no guardada cuando la base de datos se vuelve a abrir. La recuperacin de esta informacin se hace de la siguiente forma: 1. Se aplican transacciones pendientes para recuperar los datos que no se hayan registrado en los ficheros de redo log. Estos datos no se han escrito en los ficheros de datos debido al fallo de la instancia. Durante el proceso de arranque, SMON lee los ficheros redo log y aplica los cambios registrados en el redo log hacia los bloques de datos. Como todas las transacciones validadas se han escrito en los redo log, este proceso recupera completamente dichas transacciones. 2. Se deshacen las transacciones no validadas. Es SMON o los procesos de servidor individual los que las deshacen a medida que acceden a los datos no bloqueados. Este proceso SMON tambin realiza funciones de mantenimiento del espacio: Combina o fusiona las reas adyacentes de espacio libre en los ficheros de datos. Libera segmentos temporales para devolverlos como espacio libre en los ficheros de datos. Los segmentos temporales se utilizan para almacenar datos durante el procesamiento de sentencias SQL.

2.16 PROCESS MONITOR (PMON)El proceso PMON hace una limpieza cuando los procesos del usuario han fallado: Deshace los cambios de las transacciones actuales del usuario Libera los bloqueos de tablas o filas Libera otros recursos que el usuario haya reservado hasta ese mometo. Otra de las funciones que realiza el proceso PMON es registrar la instancia con el proceso listener del protocolo SQLNet.

2.17 CHECKPOINT PROCESS (CKPT)En un instante de tiempo dado, todas las modificaciones realizadas en los buffers de datos del SGA van a ser escritos en los ficheros de datos a travs del proceso DBW; Este evento se llama checkpoint. el proceso Checkpoint es el responsable de indicar al proceso DBW los eventos checkpoints y actualizar todos los ficheros de datos y de control de la base de datos.

2.18 ARCHIVER PROCESS (ARC)Este proceso es fundamental para la recuperacin de una base de datos tras la prdida de un disco. A medida que se llenan los ficheros de redo log de un grupo, el servidor Oracle comienza a escribir en los ficheros de redo log de otro grupo. A este proceso de cambiar de redo log es lo que se llama cambio de log.

Administracin de Oracle (V1.01)

Pg. 21

Aubay Espaa - Formacin

Una de las decisiones importantes que debe tomar un DBA es si debe configurar la instancia en modo ARCHIVELOG o modo NOARCHIVELOG. Modo NOARCHIVELOG En este modo, los ficheros de redo log se sobrescriben cada vez que se produce un cambio de log. Sin embargo el proceso LGWR no sobrescribir un grupo de redo log hasta que el punto de control se haya completado para ese grupo. Esto asegura que los datos validados se pueden recuperar si se produce un error de la instancia. Durante el error de la instancia solo se perder la informacin almacenada en la SGA y no guardada en los ficheros de redo log. Modo ARCHIVELOG En caso de que la instancia se configure para trabajar en modo ARCHIVELOG, ser necesario archivar los grupos de redo log llenos antes que se puedan volver a utilizar de nuevo. Como los cambios efectuados en la base de datos se registran en los ficheros de redo log y si est configurada en este modo dichos registros se guardan en los ficheros ARCHIVELOG, se podr recuperar una base de datos de forma completa en caso de fallo en disco. Generalmente se suele configurar una base de datos de produccin en este modo. Proceso ARC0 Este proceso realiza copias de seguridad de los ficheros de redo log llenos en cada cambio de log. Para llevar a cabo el archivado de forma automtica es necesario que el parmetro ARCHIVE_LOG_START est establecido a true.

Administracin de Oracle (V1.01)

Pg. 22

Aubay Espaa - Formacin

Fig. 2.9Ficheros,SGA y Procesos BD Oracle

Administracin de Oracle (V1.01)

Pg. 23

Aubay Espaa - Formacin

3 GESTIN DE UNA INSTANCIA DE BASE DE DATOS ORACLE

Fig. 3.1Arrnque y Parada Instancia Oracle

3.1 ARRANQUE DE UNA INSTANCIA DE BASE DE DATOSUna base de datos Oracle no est disponible a los usuarios hasta que haya sido iniciada la instancia y abierta la base de datos. A continuacin se muestran los eventos que se producen durante el inicio de una base de datos. En cada evento la base de datos Oracle atraviesa varias etapas: 1. Inicio de una instancia 2. Montaje de la base de datos 3. Apertura de la base de datos Cada vez que se inicia una instancia, Oracle utiliza un fichero de parmetros, que contiene los parmetros de inicializacin para asignar el SGA e iniciar los procesos en background. Si se inicia la instancia y se abre una base de datos, los pasos a seguir para cerrar dicha base de datos, son: 1. Cerrar la base de datos 2. Desmontar la base de datos 3. Cerrar la instancia Inicio de la Instancia El inicio de una instancia incluye las siguientes tareas: Lectura del fichero de parmetros Asignacin del SGA

Administracin de Oracle (V1.01)

Pg. 24

Aubay Espaa - Formacin

Inicio de los procesos en background Apertura del fichero de alerta

Montaje de la Base de Datos Este estado est especificado para realizar operaciones de mantenimiento, por ejemplo, durante las siguientes tareas: Cambio del nombre de los ficheros de datos Activacin y desactivacin de las opciones de archivado redo log Recuperacin completa de una base de datos

El montaje incluye las siguientes tareas: Asociacin de una base de datos con una instancia iniciada previamente Ubicacin y apertura de los ficheros de control especificados en el fichero de parmetros Lectura de los ficheros de control para obtener los nombres y el estado de los ficheros de datos y redo log

Apertura de la Base de Datos La operacin normal de la base de datos significa que se inicia una instancia y que la base de datos se monta y se abre; lo que permite que cualquier usuario se conecte a la misma y realice operaciones de acceso a los datos. La apertura de la base de datos incluye las siguientes tareas: Apertura de los ficheros de datos Apertura de los ficheros redo log

Si no apareciese alguno de los ficheros de datos o de redo log, el servidor Oracle devolver un error. Durante esta etapa final el servidor Oracle comprueba que todos los ficheros de datos y de redo log se pueden abrir y comprueba la consistencia de la base de datos. Si fuese necesario, el proceso SMON iniciara la recuperacin de la instancia. Recuperacin de la Instancia El proceso en background SMON lleva a cabo automticamente la recuperacin de la instancia en caso de que haya existido un fallo de la misma. Este proceso utiliza los ficheros de redo log para recuperar los datos validados en la cach de buffers de la base de datos que se perdi debido al fallo de la instancia.

La recuperacin de la instancia consta de los siguientes pasos: 1. Aplicacin de las transacciones pendientes para recuperar los datos que no se hayan registrado en los ficheros de datos, sino en los redo log 2. Apertura de la base de datos, en lugar de esperar que se apliquen todas las transacciones pendientes antes de que la base de datos est disponible de nuevo.

Administracin de Oracle (V1.01)

Pg. 25

Aubay Espaa - Formacin

3. Aplicacin de las transacciones no validadas por los procesos de servidor a medida que acceden a los datos bloqueados.

3.1.1 Comando de Arranque de una instancia de BDEl Servidor Oracle utiliza el comando STARTUP para arrancar una instancia de base de datos. STARTUP [FORCE][RESTRICT][PFILE=nombrearchivo] [OPEN [RECOVER] [basededatos]| MOUNT | NOMOUNT] OPEN: Permite que los usuarios accedan a la base de datos. MOUNT: Monta la base de datos para ciertas actividades de DBA. NOMOUNT: Crea el SGA e inicia los procesos en segundo plano. PFILE: Permite el uso de un archivo de parmetros no por defecto para configurar la instancia. FORCE:Aborta la instancia en ejecucin antes de realizar un inicio normal. RESTRICT: Slo permite el acceso a los usuarios con el privilegio RESTRICTED SESSION. RECOVER:Comienza la recuperacin del medio fsico.

3.1.1.1Cambio de la disponibilidad de la Base de DatosPara abrir la base de datos desde una etapa STARTUP NOMOUNT a otra MOUNT o desde MOUNT a OPEN, es necesario utilizar el comando ALTER DATABASE. ALTER DATABASE { MOUNT | OPEN } Para evitar que las transacciones de usuario modifiquen la informacin contenida en la base de datos, oracle permite abrir las base de datos en modo solo lectura. Para iniciar una instancia en este modo se puede ejecutar el siguiente comando: ALTER DATABASE OPEN [ READ WRITE | READ ONLY ] Donde READ WRITE abre la base de datos en modo lectura escritura, lo que permite que los usuarios generen registros de redo log y en READ ONLY restringe a los usuarios a transacciones de solo lectura, evitando que los usuarios generen informacin de redo log. La utilizacin de una base de datos en modo solo lectura est especialmente diseada para tiempos en los que la base de datos de produccin se encuentre realizando operaciones de mantenimiento y no se desea que los usuarios prescindan de consultar la informacin contenida en la base de datos.

3.2 PARADA DE UNA INSTANCIA DE BASE DE DATOSCierre de la Base de Datos Cuando se cierra la base de datos el servidor Oracle escribe los cambios de la cach de buffers y los registros de la cach de buffers de redo log en los ficheros de datos y en los ficheros de redo log respectivamente. Despus de esta operacin, cierra todos los ficheros de datos y de

Administracin de Oracle (V1.01)

Pg. 26

Aubay Espaa - Formacin

redo log. Los ficheros de control permanecen abiertos mientras una base de datos est cerrada pero todava montada. Desmontaje de la Base de Datos El segundo paso es desmontar la base de datos de una instancia. Una vez desmontada slo quedar la instancia, esto es, los procesos en background y la SGA. Cuando se desmonta una base de datos el servidor Oracle cierra los ficheros de control. Cierre de la Instancia El ltimo paso es cerrar la instancia, en el cual, se cerrarn los ficheros de alerta, se libera la memoria ocupada por la SGA y se terminan todos los procesos en background.

3.2.1 Comando de Parada de una instancia de BDEl Servidor Oracle utiliza el comando SHUTDOWN para parar una instancia de base de datos. SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT] NORMAL: Es el modo de cierre por defecto. Este cierre se lleva a cabo en las siguientes condiciones: o o o o No se permiten nuevas conexiones. El servidor Oracle espera a que se desconecten todos los usuarios antes de completar el cierre. Oracle cierra y desmonta la base de datos antes de cerrar la instancia. El siguiente inicio no requiere una recuperacin de la instancia.

TRANSACTIONAL: Evita que los clientes pierdan trabajo. Un cierre transaccional de la base de datos se lleva a cabo en las siguientes condiciones: o o o o Ningn cliente puede iniciar una nueva transaccin en la instancia. Un cliente se desconecta cuando finaliza la transaccin en curso. Una vez finalizadas todas las transacciones, se produce un cierre inmediato. El siguiente inicio no requiere una recuperacin de la instancia.

IMMEDIATE: Este cierre se lleva a cabo en las siguientes condiciones: o o o o o No se completan las sentencias SQL que est procesando en ese momento el servidor Oracle. El servidor Oracle no espera hasta que se desconecten los usuarios actuales en la base de datos. Oracle deshace las transacciones activas. Oracle cierra y desmonta la base de datos antes de cerrar la instancia. El siguiente inicio no requiere una recuperacin de la instancia.

Administracin de Oracle (V1.01)

Pg. 27

Aubay Espaa - Formacin

ABORT: Si las opciones de cierre inmediato y normal no funcionan, entonces es necesario abortar la instancia de base datos. La interrupcin de una instancia se lleva a cabo en las siguientes condiciones: o o o o o Se terminan inmediatamente las sentencias SQL que el servidor Oracle est procesando. Oracle no espera hasta que se desconecten los usuarios. Oracle no deshace las transacciones no validadas. La instancia se termina sin cerrar los ficheros. El siguiente inicio requiere la recuperacin de la instancia. Modo de cierre Permitir nuevas conexiones Esperar a que finalicen las sesiones actuales Esperar a finalicen las transacciones actuales Forzar un punto de comprobacin y cerrar los archivos A X X X X I X X X O T X X O O N X O O O

3.3 FICHERO DE PARMETROSEl fichero de parmetros, al que generalmente se le denomina init.ora. Es un fichero de texto que se puede mantener a travs de un editor estndar del sistema operativo. Por defecto se ubica en el directorio $ORACLE_HOME/dbs en una mquina UNIX. Este fichero slo se lee durante el inicio de la instancia. Si se modifica el fichero, se debe reiniciar la instancia para que los valores de los parmetros modificados, tengan efecto. En la versin 9 y posteriores de Oracle se ha mejorado esta deficiencia ya que permite modificar los parmetros online y almacenarlos en el fichero spfile.ora. Este fichero no se puede modificar por un editor estndar del sistema, lo gestiona el propio servidor Oracle. Los parmetros de este fichero pueden tener un efecto trascendente en el rendimiento de la base de datos y es necesario modificar dichos parmetros en funcin del sistema en produccin. Algunos de dichos parmetros determinan: Especifica el tamao de los componentes de la SGA para optimizar el rendimiento Define los valores por defecto de la base de datos y de la instancia Define los lmites de los usuarios o de los procesos Define los lmites de los recursos de la base de datos Define los distintos atributos fsicos de la base de datos, como el tamao del bloque de datos Especifica los ficheros de control, los archive log, el fichero de alerta

Generalmente el servidor Oracle tiene un valor por defecto para cada parmetro. Este valor depende del sistema operativo. Los parmetros se pueden especificar en cualquier orden. Se pueden incluir ficheros adicionales con la palabra clave IFILE e indicando el nombre y ruta del fichero que se desea incluir. A continuacin se muestra un fragmento de un fichero de parmetros real de produccin:

Administracin de Oracle (V1.01)

Pg. 28

Aubay Espaa - Formacin

control_files

= (//ctrl1.ctl, //ctrl2.ctl, //ctrl3.ctl)

background_dump_dest core_dump_dest user_dump_dest

= /admin//bdump

= /admin//cdump = /admin//udump

log_archive_dest = /admin//arch/arch.log nls_date_format db_name rollback_segments db_files = 100 db_block_size = 8192 db_file_multiblock_read_count = 8 db_block_buffers = 3200 shared_pool_size = 10000000 log_checkpoint_interval = 10000 processes = 50 parallel_max_servers = 5 dml_locks = 200 log_buffer = 65536 = 'yyyymmddhh24miss' = = (r1_01,r1_02,r1_03,r1_04,r2_01,r2_02,r2_03,r2_04)

sort_area_size = 524288 sort_area_retained_size = 262144 optimizer_mode = RULE audit_trail = true #timed_statistics = true max_dump_file_size = 10240 log_archive_start = true

Administracin de Oracle (V1.01)

Pg. 29

Aubay Espaa - Formacin

global_names = FALSE open_cursors = 300 compatible = 8.1.0 utl_file_dir =* Entre los parmetros que se deben especificar y que se modifican frecuentemente estn: Parmetro BACKGROUND_DUMP_DES T COMPATIBLE CONTROL_FILES DB_BLOCK_BUFFERS DB_NAME SHARED_POOL_SIZE USER_DUMP_DEST LOG_BUFFER MAX_DUMP_FILE_SIZE PROCESSES SQL_TRACE TIMED_STATISTICS OPEN_CURSORS Descripcin Indica la ubicacin donde se escriben los ficheros de rastreo por los procesos en background. Tambin se incluye el fichero de Alerta del servidor Oracle. Versin de Oracle con el que la instancia ser compatible. Indica la ruta y los nombres de los ficheros de control. Nmero de bloques copiados en la memoria cach dentro del SGA Identificador del nombre de la base de datos. Este valor no puede superar los 8 caracteres. Es el nico requisito para crear la base de datos. Tamao en bytes del conjunto compartido. Ubicacin donde se crean los ficheros de rastreo de los procesos de usuario. Nmero de bytes asignados al buffer de redo log dentro del SGA. Tamao mximo de los ficheros de rastreo. Nmero mximo de procesos del sistema operativo que se pueden conectar simultneamente a una instancia. Activa o desactiva la utilidad de rastreo SQL por cada sesin de usuario. Activa o desactiva la temporizacin en los ficheros de rastreo. Indica el nmero mximo de cursores que pueden tener abiertos la instancia de la base de datos.

Las definiciones de los valores de los parmetros en una base de datos se pueden consultar en la vista del diccionario de datos V$PARAMETER o bien ejecutando el comando SHOW PARAMETER.

3.3.1 Parmetros DinmicosAlgunos parmetros de inicializacin son dinmicos, esto es, se pueden modificar una vez inicializada la base de datos. Los comandos que permiten realizar dichas son modificaciones son: ALTER SESSION

Administracin de Oracle (V1.01)

Pg. 30

Aubay Espaa - Formacin

ALTER SYSTEM ALTER SYSTEM DEFERRED ALTER SESSION SET nombre_parametro = valor ALTER SYSTEM SET nombre_parametro = valor [DEFERRED]

El comando ALTER SESSION modifica el valor del parmetro slo en la sesin desde donde se est ejecutando. El comando ALTER SYSTEM cambia globalmente el valor del parmetro. El nuevo parmetro ser eficaz hasta que se cierre la base de datos. Si se desea hacer permanente este cambio ser necesario modificar el fichero de parmetros. En la versin 9 y posteriores de oracle esto se puede evitar si el fichero de parmetros que se usa para arrancar la instancia es el spfile.ora. El comando ALTER SYSTEM DEFERRED modifica el valor del parmetro para las futuras sesiones que se conecten a la base de datos. Se puede consultar la vista el diccionario de datos V$SYSTEM_PARAMETER para obtener que parmetros se pueden modificar. SQL> SELECT isses_modifiable,issys_modifiable,ismodified,name V$SYSTEM_PARAMETER WHERE ismodified FALSE; Las columnas muestran la siguiente informacin: isses_modifiable, indica si el parmetro se puede modificar por el comando ALTER SESSION. issys_modifiable, indica si el parmetro se puede modificar por el comando ALTER SYSTEM. Ismodified, si el valor es MODIFIED ha sido modificado por un comando ALTER SESSION, y si el valor es SYS_MODIFIED indica que ha sido modificado por un comando ALTER SYSTEM. FROM

La vista V$PARAMETER muestra los valores actuales de la sesin y V$SYSTEM_PARAMETER muestra los valores actuales del sistema independientes de la sesion. Los comandos ALTER SYSTEM o ALTER SYSTEM DEFERRED se registran en el fichero de rastreo ALERT. Ejemplos de utilizacin de estos comandos: ALTER SESSION SET SQL_TRACE = TRUE; ALTER SYSTEM SET TIMED_STATISTICS = TRUE; ALTER SYSTEM SET SORT_AREA_SIZE = 131072 DEFERRED; ALTER SYSTEM SET SHARED_POOL_SIZE = 64M; ALTER SYSTEM SET DB_CACHE_SIZE = 96M;

Administracin de Oracle (V1.01)

Pg. 31

Aubay Espaa - Formacin

3.4 VISTAS DINMICAS DE RENDIMIENTOSe llaman vistas dinmicas de rendimiento ya que se actualizan constantemente, (por el servidor Oracle) mientras la base de datos permanece abierta y se utilice. Su contenido est relacionado con el rendimiento. Proporciona datos acerca de las estructuras fsicas (ficheros) y lgicas (memoria) de la base de datos. Las vistas dinmicas de rendimiento se identifican con el prefijo V_$ aunque Oracle proporciona sinnimos pblicos con el prefijo V$. Una vez iniciada la instancia en la etapa NOMOUNT, se podr acceder a las vistas dinmicas que se pueden leer desde la memoria. Las vistas que lean datos desde los ficheros de control precisarn que la base de datos est montada. La vista V$FIXED_TABLE muestra todas las vistas dinmicas de rendimiento. Ejemplo de un conjunto de vistas dinmicas: Nombre V$PARAMETER V$SGA V$OPTION V$PROCESS V$SESSION V$VERSION V$INSTANCE V$THREAD V$CONTROLFILE V$DATABASE V$DATAFILE V$DATAFILE_HEADE R V$LOGFILE Descripcion Contiene informacin acerca de los parmetros de incializacin Contiene informacin resumida sobre el SGA Enumera las opciones que se instalan en el servidor Contiene informacin acerca de los procesos activos actualmente Enumera la informacin de la sesin actual Enumera el nmero de versin y componentes Muestra el estado de la instancia actual Contiene informacin del thread, por ejemplo de los grupos de redo log Enumera los nombres de los ficheros de control Contiene informacin sobre la base de datos Contiene informacin de ficheros de datos y de los ficheros de control Contiene informacin acerca de la cabecera de los ficheros de datos y de los ficheros de control Contiene informacin acerca los ficheros de redo log Leen Datos SGA SGA SGA SGA SGA SGA SGA Fichero Control Fichero Control Fichero Control Fichero Control Fichero Control Fichero Control

Para obtener una lista completa de estas vistas y de la descripcin de las columnas se puede consultar el documento Oracle Reference.

Administracin de Oracle (V1.01)

Pg. 32

Aubay Espaa - Formacin

3.5 FICHERO ALERT Y DE RASTREOSi se produce un error mientras se ejecuta la instancia Oracle, los mensajes se escribirn en el fichero ALERT. Durante el inicio de la base de datos, si no existe dicho fichero, el servidor Oracle crear uno. El fichero ALERT de una base de datos es un log cronolgico de mensajes y errores. Si un proceso en background detecta un error, la informacin del error se volcar en un fichero de log, en el cual el nombre del fichero indicar el nmero y nombre del proceso que ha creado dicho fichero. Los ficheros de log tambin pueden ser generados a peticin del usuario, es el caso si se desea realizar un rastreo de las sentencias SQL que se procesan en el servidor. Por ejemplo la sentencia ALTER SESSION SET sql_trace=TRUE; habilitar la creacin de ficheros de log por cada sentencia SQL que enve al servidor en dicha sesin. Los siguientes parmetros controlan la ubicacin y el tamao del fichero ALERT y de los ficheros de rastreo: BACKGROUND_DUMP_DEST: Define la ubicacin del fichero de rastreo de los procesos en backgruound como del fichero de ALERT de Oracle. USER_DUMP_DEST: Define la ubicacin de los ficheros de rastreo de los usuarios. MAX_DUMP_FILE_SIZE: Se especifica en bloques del sistema operativo. Limita el tamao de los ficheros de rastreo, no del fichero de ALERT ni de los ficheros de rastreo de los procesos en background.

Administracin de Oracle (V1.01)

Pg. 33

Aubay Espaa - Formacin

4 CREACIN BASE DE DATOS ORACLE4.1 CONCEPTOSLa creacin de una base de datos es el primer paso en la gestin y organizacin de un sistema de base de datos. La creacin de una base de datos es una tarea que prepara varios archivos del sistema operativo y slo es necesario realizarla en una ocasin, independientemente de los ficheros de datos que tenga la base de datos. El proceso de creacin es muy importante, ya que va a determinar el tamao del bloque y el juego de caracteres de la base de datos, los cuales no se podrn cambiar una vez la base de datos haya sido creada. El comando CREATE DATABASE inicia la creacin de los ficheros de control, redo log y la estructura del diccionario de datos que necesita el servidor Oracle para acceder a la base de datos.

4.1.1 Consideraciones previas a la creacin de la Base de DatosSer necesario crear un usuario del sistema operativo que ser el encargado de gestionar el servidor Oracle y las bases de datos desde el punto de vista del sistema (SO). En los sistemas UNIX ser necesario modificar los parmetros del KERNEL para establecer el nmero de semforos y tamao de la memoria compartida que el servidor Oracle precisa para la gestin de la base de datos. Ser necesario calcular el espacio en disco del sistema que la base de datos va a necesitar para ubicar los ficheros de datos, redo log, y de control. Ser necesario establecer la variable de entorno ORACLE_SID para el usuario del sistema operativo que va a crear y gestionar dicha base y de datos. El valor de ORACLE_SID deber ser el nombre de la instancia. Se aconseja consultar las guas de instalacin especficas del sistema operativo para determinar el ajuste de los parmetros del Kernel.

4.1.2 Planificacin de la ubicacin de los ficherosOracle aconseja realizar dos copias activas de los ficheros de control al menos en dos dispositivos diferentes. De esta forma, si falla uno de los dispositivos, el otro podr continuar trabajando con la base de datos. Se aconseja multiplexar los grupos de ficheros redo log y en dispositivos diferentes por razones de seguridad. Respecto a los ficheros de datos se aconseja crear diferentes ficheros en funcin del contenido que se vaya a alojar en ellos. De esta forma se reduce la fragmentacin y la contencin de disco. Esto es, se debe separar los objetos de la base de datos con vidas tiles diferentes, como los datos de aplicacin y los datos temporales, en tablespaces distintos.

Administracin de Oracle (V1.01)

Pg. 34

Aubay Espaa - Formacin

4.1.3 Mtodos para crear una Base de DatosSe puede crear una base de datos, bien con el asistente de configuracin, o mediante un fichero de comandos SQL diseado de forma manual. El asistente de configuracin est basado en Java y se puede iniciar desde cualquier plataforma desde el motor Java. Durante la instalacin del servidor Oracle se permite crear una base de datos con este asistente. En este documento nos vamos a centrar en la creacin de una base de datos de modo manual con el objeto de ver todas las opciones disponibles y su significado en la creacin de la base de datos.

4.2 CREACIN DE UNA BASE DE DATOS MANUALMENTEEl proceso de creacin de la base de datos se puede dividir en los siguientes pasos:

4.2.1 Configuracin del Entorno del Sistema OperativoHabr que elegir un nombre nico para la base de datos, definir y ajustar las siguientes variables del entorno ORACLE_HOME: Especifica el directorio donde se ha instalado el Software de Oracle. ORACLE_SID: Especifica el nombre de la instancia y debe ser nico para las instancias que se ejecuten en la misma mquina, este valor debe tener un mximo de 8 caracteres. ORACLE_BASE: No es una variable necesaria, aunque se recomienda tenerla configurada, generalmente tiene como valor el directorio padre de ORACLE_HOME. ORA_NLS33: Es necesario crear una base de datos con un juego de caracteres diferente al US7ASCII. Como ejemplo ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data PATH: Habr que aadir a esta variable el valor de $ORACLE_HOME/bin LD_LIBRARY_PATH: Habr que aadir a esta variable el de valor de $ORACLE_HOME/lib

4.2.2 Preparacin del Fichero de ParmetrosAntes de crear la base de datos ser necesario establecer un fichero de parmetros inicial, no tiene que ser el definitivo de la base de datos en produccin. Dicho fichero de parmetros inicial debe especificar como mnimo los siguientes parmetros: DB_NAME: Indentificador de la base de datos de cmo mximo 8 caracteres. Este es el nico parmetro necesario para crear la base de datos. No es necesario que este

Administracin de Oracle (V1.01)

Pg. 35

Aubay Espaa - Formacin

parmetro coincida con ORACLE_SID, aunque debe coincidir con el nombre que se utilice en la sentencia CREATE DATABASE. CONTROL_FILES: Especifica una lista de ficheros de control. No es necesario que existan los ficheros de control en este momento cuando no se ha creado an la base de datos. DB_BLOCK_SIZE: Determina el tamao del bloque de la base de datos. El tamao del bloque no se podr cambiar una vez creada la base de datos.

El nombre de la base de datos se asocia con una base de datos en el momento en que sta se crea y se almacena en los ficheros de control. Para cambiar el nombre de una base de datos existente, se puede utilizar el comando CREATE CONTROLFILE para volver a crear el fichero de control. El cambio de nombre de una base de datos no es muy recomendable.

4.2.3 Inicio de la InstanciaEl paso siguiente es arrancar la instancia y ponerla en estado NOMOUNT, para ello habr que conectarse al interfaz de comandos de Oracle SQLPLUS como un usuario SYSDBA y ejecutar el comando STARTUP con la opcin que corresponda: $ORACLE_HOME/bin/sqlplus / as sysdba startup nomount pfile=init_0.ora

4.2.4 Creacin de la Base de DatosPara crear la base de datos ser necesario utilizar el comando CREATE DATABASE, el cual tiene la siguiente sintaxis:

Administracin de Oracle (V1.01)

Pg. 36

Aubay Espaa - Formacin

DATABASE: Es el nombre de la base de datos que hay que crear, si se omite este nombre, se utilizar el parmetro de inicializacin DB_NAME. LOGFILE GROUP: Especifica los nombres de los ficheros de redo log que se deben utilizar y el grupo al que pertenecen. MAXLOGFILES: Especifica el nmero mximo de grupos de ficheros redo log que se podrn crear en la base de datos. MAXLOGMEMBERS: Especifica el nmero mximo de ficheros redo log que puede tener un grupo. MAXLOGHISTORY: Especifica el nmero mximo de redo log archivados para la recuperacin automtica del medio fsico. DATAFILE: Especifica los ficheros de base de datos que se deben utilizar. AUTOEXTEND: Activa o desactiva la extensin automtica de ficheros de datos. MAXDATAFILES: Indica el nmero mximo de ficheros de datos que puede tener una base de datos. Este valor se almacena en la seccin inicial de los ficheros de control en tiempo de creacin de la base de datos o creacin de ficheros de control. Cualquier intento por aadir un nuevo fichero cuyo nmero sea mayor que este parmetro, aunque menor que el parmetro DB_FILES, provocar que el fichero de control se expanda de forma automtica, para que la seccin de fichero de datos pueda albergar ms ficheros. MAXINSTANCES: Indica el nmero mximo de instancias que puede abrir simultneamente la base de datos.

Administracin de Oracle (V1.01)

Pg. 37

Aubay Espaa - Formacin

ARCHIVELOG: Indica que los ficheros de redo log se deben archivar antes que se puedan volver a utilizar. CHARACTER SET: Es el juego de caracteres que utiliza la base de datos para almacenar datos. NATIONAL CHARACTER SET: Especifica el juego de caracteres nacional que se utiliza para almacenar datos o en columnas definidas. Si no se especifica, el juego de caracteres nacional ser el mismo que el juego de caracteres de la base de datos.

Si se utiliza REUSE en una especificacin de fichero, entonces el fichero deber existir, de lo contrario, tendr que especificar la opcin SIZE y el fichero no deber existir. El servidor Oracle asigna tanto espacio en los ficheros de control como necesiten los valores de los argumentos MAXLOGMEMBERS, MAXLOGFILES, MAXDATAFILES, MAXLOGHISTORY y MAXINSTANCES. No existe ningn comando de DROP DATABASE. Para suprimir una base de datos, se deber suprimir los ficheros de datos, de control y de redo log del sistema operativo. Se puede utilizar la siguiente consulta para determinar cules son dichos ficheros: SELECT name FROM V$DATAFILE UNION SELECT name FROM V$CONTROLFILE UNION SELECT member FROM V$LOGFILE Despus de crear la base de datos no es posible cambiar el juego de caracteres ni el juego de caracteres nacional. Despus de ejecutar el comando CREATE DATABASE el servidor Oracle ejecuta el fichero sql.bsq y crea los siguientes objetos de la base de datos: Ficheros de datos que forman el tablespace SYSTEM. Ficheros de control y de redo log. El usuario sys con la contrasea change_on_install El usuario system con la contrasea manager El segmento de rollback SYSTEM Tablas internas pero no vistas por el diccionario de datos

4.3 EJEMPLO REALA continuacin se muestra un ejemplo de la creacin de una base de datos real: startup nomount pfile=/admin//init_0.ora create database "" controlfile reuse maxinstances 1

Administracin de Oracle (V1.01)

Pg. 38

Aubay Espaa - Formacin

maxlogfiles

50

maxdatafiles 100 character set "WE8ISO8859P1" datafile '//syst.dbf' autoextend on next 10M maxsize unlimited logfile group 1 ('//redo01A.dbf', '//redo01B.dbf') group 2 ('//redo02A.dbf', '//redo02B.dbf') group 3 ('//redo03A.dbf', '//redo03B.dbf') size 5M; size 5M, size 5M, size 50M

Administracin de Oracle (V1.01)

Pg. 39

Aubay Espaa - Formacin

5 CREACIN Y USO DEL DICCIONARIO DE DATOS Y PAQUETES ESTNDARAdems de la creacin de los ficheros de la base de datos, el servidor Oracle crea estructuras dentro de ellos: El diccionario de datos, contiene descripciones de los objetos de la base de datos. Incluye dos tipos de objetos: o o Las tablas base, son las tablas subyacentes que almacenan la descripcin de la base de datos. Han sido creadas al tiempo de ejecutar el comando CREATE DATABASE por el script sql.bsq. Estas tablas no se encuentran documentadas. Las vistas del diccionario de datos, resumen y muestran la informacin almacenada en la base de datos.

Las tablas de rendimiento dinmico, contienen informacin que utiliza el DBA para supervisar y ajustar la base de datos y la instancia. Las unidades de programa PL/SQL, agregan funcionalidad a la base de datos.

5.1 VISIN GENERAL DEL DICCIONARIO DE DATOSUna de las partes ms importantes de una base de datos Oracle es su diccionario de datos, que es un conjunto de tablas de slo lectura que proporciona informacin acerca de su base de datos asociada. El diccionario de datos lo actualiza el servidor Oracle siempre que se ejecute una sentencia DDL o bien una sentencia DML. El diccionario de datos es una fuente de informacin para todos los usuarios. Para tener acceso al diccionario de datos es preciso utilizar sentencias SQL. El diccionario de datos es de slo lectura, con lo cual slo se pueden enviar consultas en las vistas del diccionario de datos. El propietario del diccionario de datos es el usuario SYS y se almacena siempre en el tablespace SYSTEM (este tablespace ha sido creado durante la ejecucin del comando CREATE DATABASE).

5.1.1 Contenido del Diccionario de DatosUn diccionario de datos contiene: Las definiciones de todos los objetos del esquema en la base de datos (tablas, vistas, ndices, agrupamientos, secuencias, procedimientos, funciones, paquetes, disparadores, etc.).

Administracin de Oracle (V1.01)

Pg. 40

Aubay Espaa - Formacin

El espacio asignado y utilizado por los objetos. Valores por defecto de columnas. Informacin acerca de la restriccin de integridad. Los nombres de los usuarios de la base de datos Oracle. Privilegios y Roles otorgados a cada usuario. Informacin de auditora, como por ejemplo quin ha accedido o actualizado objetos de la base de datos. Otra informacin general de la base de datos.

5.1.2 Tablas Base y Vistas del Diccionario de DatosLas tablas base del diccionario de datos son las primeras que se crean al tiempo de ejecutar el comando CREATE DATABASE. Se crean automticamente por el fichero sql.bsq. El servidor Oracle es el nico que debera escribir en las tablas base. Generalmente los usuarios no acceden a estas tablas, adems la mayora de la informacin se encuentra cifrada. Se recomienda no utilizar nunca comandos DML para actualizar las tablas base. Un ejemplo de tabla base es IND$, que contiene informacin acerca de los ndices de la base de datos. Generalmente cuando se examina el diccionario de datos, se est explorando las vistas del diccionario las cuales son sinnimos pblicos. Estas vistas resumen y muestran la informacin almacenada en la base de datos. Decodifican los datos de las tablas base en informacin til, mediante uniones y clasulas where para simplificar la informacin. Por ejemplo en las vistas del diccionario se utilizan los nombres de los objetos en vez de nmeros de objetos. Algunas de las vistas del diccionario de datos estn accesibles para todos los usuarios de la base de datos, otras van dirigidas nicamente a los administradores de la base de datos.

5.1.3 Categoras del Diccionario de DatosLas vistas del diccionario de datos se dividen en tres categoras, que se pueden distinguir unas de otras por sus prefijos: DBA: Vista del Administrador de la base de datos, es decir, lo que hay en todos los esquemas. ALL: Vista del usuario ampliada, es decir, lo que hay en todos los esquemas. USER: Vista del usuario, es decir, lo que hay en el esquema del usuario.

Todas las vistas tienen sinnimos pblicos que se crean en ellas. No todas las vistas del diccionario de datos utilizan estas reglas de nomenclatura. VISTAS con el prefijo DBA Muestran informacin global de toda la base de datos. Su finalidad es que las consulten nicamente los administradores de la base de datos. Cualquier usuario al que se le haya

Administracin de Oracle (V1.01)

Pg. 41

Aubay Espaa - Formacin

otorgado el privilegio de sistema SELECT ANY TABLE podr consultar las vistas con prefijo DBA del diccionario de datos. Por ejemplo para consultar todos los objetos de la base de datos, el DBA podr emitir la siguiente sentencia: SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM DBA_OBJECTS; Vistas con el prefijo ALL Hacen referencia a la perspectiva global del usuario de la base de datos. Estas vistas devuelven informacin acerca de los objetos de esquema a los que el usuario tiene acceso en forma de concesiones pblicas o explcitas de privilegios y roles, adems de los objetos del esquema del propio usuario. Por ejemplo, la siguiente consulta devuelve informacin acerca de todos los objetos a los que el usuario tiene acceso. SELECT OWNER, OBJECT_NAME, OBJECT_TYPE FROM ALL_OBJECTS; Vistas con el prefijo USER Estas vistas son las ms importantes desde el punto de vista del usuario ya que: Hacen referencia al propio entorno privado del usuario en la base de datos. Generalmente hacen referencia a los objetos que posee el usuario actual. Tienen columnas idnticas a las otras categoras de vistas, excepto que la columna OWNER es el usuario actual. Devuelven un subconjunto de la informacin de las vistas ALL_ Pueden tener sinnimos pblicos abreviados por comodidad.

Por ejemplo, la siguiente consulta devuelve todos los objetos del esquema: SELECT OBJECT_NAME, OBJECT_TYPE FROM USER_OBJECTS; Se puede obtener una lista completa de las vistas del diccionario de datos y sus columnas en el documento Oracle Reference.

5.2 UNIDADES DE PROGRAMA ALMACENADASEl servidor Oracle permite acceder y manipular la informacin de la base de datos mediante objetos procedurales llamados unidades de programa almacenadas. Estas unidades de programa son un conjunto de sentencias SQL y PL/SQL que llevan a cabo una tarea especfica. PL/SQL es el lenguaje procedural de Oracle. Este lenguaje permite mezclar sentencias SQL con sentencias procedurales.

Administracin de Oracle (V1.01)

Pg. 42

Aubay Espaa - Formacin

El administrador de la base de datos puede instalar el componente JSERVER del servidor Oracle para ejecutar unidades de programa Java. Para llamar a un mtodo Java desde SQL o PL/SQL, es necesario publicar dicho mtodo escribiendo una especificacin de llamada. La especificacin de llamada asigna los nombres del mtodo Java, tipos de parmetros y devuelve los tipos homlogos SQL. Las unidades de programa almacenadas ofrecen las siguientes ventajas: Para reducir los tiempos de ejecucin, el cdigo PL/SQL se compila previamente y se almacena en el diccionario de datos compilado y con el cdigo fuente. Los programas en Java se pueden llamar desde SQL y PL/SQL definiendo sus especificaciones de llamada para PL/SQL. Se almacenan en la zona del SGA, conjunto compartido para reducir el tiempo de recuperacin del disco. La seguridad de los datos se puede reforzar permitiendo que los usuarios accedan a los datos nicamente a travs de los procedimientos y funciones. Durante la ejecucin, diferentes usuarios comparten una sola copia de la unidad de programa. Las funciones almacenadas se pueden utilizar en las sentencias SQL de la misma forma que las funciones agregadas de SQL o bien las incorporadas por Oracle.

En este documento se pretende dar una visin general de los procedimientos almacenados. El desarrollo y mantenimiento de unidades de programa almacenadas se describe de forma detallada en el documento de oracle Unidades de Programa PL/SQL.

5.2.1 Ejecucin de una Unidad de Programa PL/SQL

El proceso de servidor lee la unidad de programa PL/SQL almacenada en el conjunto compartido y la ejecuta. Como se puede aprecia en la figura, al tiempo de ejecutar cualquier bloque PL/SQL, el servidor Oracle enva cada sentencia a un motor distinto en funcin del tipo de sentencia. Si la sentencia es SQL el motor que la ejecuta es el ejecutor de sentencias SQL,

Administracin de Oracle (V1.01)

Pg. 43

Aubay Espaa - Formacin

mientras que si la sentencia es PL el motor que la ejecuta es el ejecutor de sentencias procedurales.

5.3 CREACIN DEL DICCIONARIO DE DATOSParte del diccionario de datos ya ha sido creado de forma automtica cuando se ejecut el comando CREATE DATABASE con el script sql.bsq, que son las tablas base; falta por crear todas las vistas, procedimientos y sinnimos que van a poder utilizar los usuarios de la base de datos. Para completar la creacin del diccionario de datos es necesario ejecutar una serie de scripts, cada uno de los cuales completan una parte especfica del diccionario de datos. No es obligatorio ejecutar todos los scripts que se indican a continuacin, todo depender de los requisitos de la base de datos en particular. Los ficheros de comandos para la creacin del diccionario de datos se pueden separar en cuatro categoras, segn sus nombres de ficheros: Ficheros de Comandos cat*.sql: Crean vistas del diccionario de datos. Ficheros de Comandos dbms*.sql y prvt*.plb: Crean objetos para los paquetes de Oracle predefinidos, que amplan la funcionalidad del servidor Oracle. Estos programas simplifican la gestin de la base de datos. Ficheros de Comandos utl*.sql: Se deben ejecutar cuando la base de datos necesite tablas adicionales.

La mayor parte de estos ficheros se deben ejecutar como usuario sys. El administrador de la base de datos deber examinar los ficheros de comandos para averiguar la cuenta de usuario que se debe utilizar para ejecutar dichos ficheros de comandos.

5.3.1 Ficheros de Comandos creacin del Diccionario de datos requeridosFichero catalog.sql Este fichero de comandos (catalog.sql) crea las vistas, tanto de las tablas base como de las vistas dinmicas de rendimiento, as como sinnimos. Inicia a su vez otros ficheros de comandos que crean objetos para (cataudit.sql, catexp.sql, catldr.sql),: El entorno PL/SQL bsico, incluyendo las declaraciones para PL/SQL: o Tipos de datos. o Excepciones predefinidas. o Procedimientos y funciones incorporados. o Operaciones SQL. Auditora. Importacin y Exportacin. SQL*Loador Opciones instaladas.

Administracin de Oracle (V1.01)

Pg. 44

Aubay Espaa - Formacin

Fichero catproc.sql Este fichero de comandos (catproc.sql) establece el uso de la funcionalidad PL/SQL. Tambin crea varios paquetes PL/SQL que se utilizan para ampliar la funcionalidad del motor de Oracle (ncleo). Este fichero tambin crea paquetes y vistas adicionales para: Alertas. Canales. Logminer. Objetos grandes. Objetos. Colas Avanzadas. Opcin de replicacin. Otros complementos y opciones.

Este script invoca a su vez los siguientes scripts: catprc.sql, casnap.sql, caprpc.sql, Standard.sql, dbmsutil.sql, dbmssnap.sql, dbmslock.sql, dbmspipe.sql, dbmsalrt.sql, dbmsotpt.sql, dbmsdesc.sql Fichero cataudit.sql Este fichero crea vistas y tablas de auditora. Lo ejecuta catalog.sql. Estas tablas pueden ser borradas ejecutando catnoaud.sql. Fichero catexp.sql Este fichero crea las tablas necesarias para Export e Import incrementales. Lo ejecuta catalog.sql Fichero catldr.sql Crea las tablas y vistas de SQL*Loador. Lo ejecuta catalog.sql Fichero catparr.sql