Sie sind auf Seite 1von 62

ADMINISTRACIN

El presente trabajo pretende explicar la administracin de una base de datos ORACLE, lo que considero ms importante para poder desarrollar las tareas administrativas, es el conocimiento de la estructura interna del motor, mas que los comandos en s, por esta razn se comienza con una descripcin de la organizacin interna del motor y posteriormente se vern los comandos y las tablas que se deben consultar. Responsabilidades del DBA

Instalar y actualizar el servidor y las herramientas de desarrollo. Creacin de bases de datos, estructuras de almacenamiento y objetos primarios. Localizar el espacio fsico y planear los requerimientos futuros para las bases de datos. Modificar la estructura de la base de datos Administracin de usuarios Controlar y monitorear los accesos a la base de datos Backup y recuperacin Mantenimiento de la seguridad del sistema Monitorear y optimizar el desempeo de la base de datos.

I.

Componentes de la Arquitectura Oracle

1. Servidor Oracle El servidor Oracle es un sistema para manejo de bases de datos objeto-relacionales que proporciona una aproximacin abierta e integrada para el manejo de informacin.

2. Conexin a la base de datos


Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 1

El usuario que necesite interactuar con el servidor Oracle necesita primero establecer una conexin a la Base de Datos. Los pasos siguientes se llevan a cabo para conectarse a una Base de datos: El usuario ejecuta una herramienta como SQL*PLUS, o corre una aplicacin, originando un proceso usuario. Cuando un usuario se conecta al servidor Oracle especificando un usuario, password, y una Base de datos, se crea un proceso en la mquina que esta ejecutando el Servidor Oracle. Este proceso se conoce como proceso servidor.

PL/SQL Es una extensin del lenguaje que ofrece la estructura procedimental de bloques combinado con las capacidades no procedimentales de SQL.

Las herramientas de desarrollo de 4 generacin, presentan la interface con los datos, estas herramientas son parte de la estrategia de arquitectura abierta de Oracle. Estas herramientas soportan bases de datos Oracle y no Oracle (Como muchas herramientas lo hacen).

3. Proceso usuario Corre en la mquina cliente Se crea cuando se invoca una herramienta o aplicacin Corre la herramienta o aplicacin (SQL*PLUS, Server Manager, OEM, Developer/2000) Genera llamados al Servidor Oracle

4. Proceso Servidor Corre en la mquina servidor (host) Atiende a un slo proceso usuario (servidor dedicado) Procesa los llamados generados por el cliente Devuelve resultados al cliente

5. Instancia Oracle
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 2

El servidor Oracle consiste de una instancia Oracle y una Base de Datos Oracle. Una instancia Oracle consiste de una estructura de memoria llamada la System Global Area (SGA) y procesos de background usados por un servidor Oracle para manejar una Base de Datos. Al iniciar el servidor ORACLE, en memoria se localiza un rea especfica llamada sistema de rea global (System global area SGA). A la combinacin de buffers de memoria y procesos de fondo se le denomina una instancia de Oracle. La coleccin de archivos fsicos se le denomina base de datos ORACLE. La SGA es un grupo de buffers de memoria localizados por el servidor Oracle para una instancia. Los procesos de background, son las distintas tareas de todos los usuarios de la base de datos (Consultas, inserciones, borrados, etc). Una instancia es la combinacin de la SGA y los procesos de background, la informacin contenida en los archivos de parmetros determinan las caractersticas de una instancia, como son: El tamao del SGA y nmero de procesos entre otros. 6. Base de Datos Oracle Una Base de datos Oracle representa las estructuras fsicas y est compuesta por archivos del Sistema operativo. Una Base de Datos Oracle consiste de los siguientes tipos de archivos: Data Files Redo Log Files Control Files

Trmino Database File Tablespace

Significado Coleccin lgica de datos almacenados en tablespaces. Archivo de datos fsicos ubicados en un solo tablespace. Repositorio lgico para agrupar datos fisicamente.

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 3

Segment

Conjunto de uno o mas extents, que contiene todos los datos para una estructura especfica contenida en un tablespace.

Block

Bloque fsico que localiza los datos existentes en un archivo ( Es un componente de los archivos fsicos, un archivo fsico se compone de varios bloques).

7. Otras estructuras fsicas

Aparte de los database files, el servidor Oracle usa otros archivos. Algunos de los cuales son :

Parameter file Password file Archived redo log files

8. Procesamiento de un query

Las siguientes son las etapas principales en el procesamiento de un query : 1. Parse 2. Execute 3. Fetch

9. El Shared Pool

Se usa durante la fase de Parse En el Library Cache se encuentra el texto de la instruccin, el cdigo parseado, y el plan de ejecucin

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 4

El Data Dictionary Cache contiene las definiciones y privilegios de tablas y columnas

10. Database Buffer Cache

Nmero de bloques definidos por DB_BLOCK_BUFFERS Tamao del buffer basado en DB_BLOCK_SIZE Almacena los bloques ms recientemente usados

11. Program Global Area (PGA)

No compartida y no escribible. Contiene : Sort area Informacin de la sesin Estado de los cursores Espacio de pila

12. Segmento de Rollback

Antes de efectuar una modificacin, el proceso servidor almacena el valor previo en un segmento de rollback.

13. Redo Log Buffer

Tamnao definido por LOG_BUFFER Registra las modificaciones hechas a travs de la instancia Usado secuencialmente Buffer circular

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 5

14. Database Writer (DBWR)

El proceso Database Writer (DBWR) escribe los buffers dirty desde el database buffer cache a los data files. Asegura que est disponible un nmero suficiente de free buffers en el database buffer cache.

15. Log Writer (LGWR)

El proceso Log Writer (LGWR) es un proceso de background que escribe entradas desde el redo log buffer a los redo log files.

16. Procesamiento de un COMMIT

Cuando se ejecuta un commit, ocurren los siguientes pasos:

1. El proceso servidor coloca un registro de commit en el redo log buffer 2. LGWR efecta una escritura contigua de todas las entradas del redo log buffer 3. Al usuario se le informa que el commit est completo 4. El proceso servidor registra la informacin para indicar que la transaccin est completa y que han sido liberados los locks en los recursos.

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 6

II.

Uso de las herramientas administativas

1. Ejemplos

Herramienta Server Manager

Descripcin Usada para subir, bajar o recuperar una base de datos

Oracle Enterprise Manager

Herramienta

grfica

para

administrar,

monitorear, y afinar mltiples bases de datos SQL*Loader Utilidad para cargar datos desde archivos externos a tablas Oracle Export o Import Utilidad para exportar/importar datos en formato Oracle Password File Utilidad para crear el archivo de password de la base de datos

2. Ejecutando el Server Manager

En Unix En NT

svrmgrl svrmgr30

Iniciando y ejecutando un script

En Unix En NT

svrmgrl command=@credb.sql svrmgr30 command=@u16run.sql

3. Oracle Enterprise Manager (OEM)

Oracle Enterprise Manager (OEM) consiste de una consola centralizada, agentes inteligentes, y un paquete de aplicaciones estndar que proporcionan a los
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 7

administradores de la base de datos la funcionalidad que necesitan para manejar sus bases de datos.

Tambin existe un paquete de aplicaciones integradas conociadas como el OEM Performance Pack, que proporcionan monitoreo, diagnstico y afinamiento experto y avanzado

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 8

III.

Manejo de una instancia Oracle

1. Vistazo

Una base de datos Oracle no est disponible a los usuarios hasta que el administrador de la base de datos haya iniciado la instancia y abierto la base de datos.

Durante el arranque de la base de datos ocurren los siguientes eventos :

1. Subir una instancia 2. Montar la base de datos 3. Abrir la base de datos

Se pueden ejecutar los siguientes pasos para bajar la base de datos :

1. Cerrar la base de datos 2. Desmontar la base de datos 3. Bajar la instancia

2. Usuarios administradores de la base de datos

Los dos usuarios administradores de la base de datos SYS y SYSTEM son :

Creados automticamente Privilegiados con el role DBA

3.

SYS Y SYSTEM

SYS
Pgina 9

Password : change_on_install
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Dueo del diccionario de datos de la base de datos

SYSTEM

Password : manager Dueo de tablas internas adicionales usadas por herramientas Oracle

4. Autenticacin por sistema operativo

Establecer el usuario a ser autenticado por el sistema operativo Establecer REMOTE_LOGIN_PASSWORD_FILE a NONE Utilizar los siguientes comandos para conectarse a una base de datos

CONNECT / AS SYSDBA CONNECT / AS SYSOPER

5. Autenticacin usando archivo de password

Crear el archivo de password usando la utilidad de password

orapwd file=$ORACLE_HOME/dbs/orapwU15 password=admin

Establecer REMOTE_LOGIN_PASSWORD_FILE a EXCLUSIVE o SHARED Usar el siguiente comando para conectarse a la base de datos : CONNECT INTERNAL/ADMIN

6. El archivo de parmetros

El archivo de parmetros, comnmente conocido como el initSID.ora, es un archivo de texto que puede mantenerse usando un editor estndar del sistema operativo.

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 10

El archivo de parmetros se lee nicamente durante el inicio de la instancia. Si el archivo es modificado, es necesario bajar e iniciar la instancia para que los nuevos parmetros surtan efecto.

Los parmetros en el archivo initSID.ora tienen un efecto significativo en el desempeo de la base de datos : Dimensionan el tamao de los componentes de la SGA Establecen defaults para la instancia y la base de datos Establecen lmites en la base de datos Definen (en creacin de la base de datos) varios atributos fsicos de la base de datos, como el tamao del bloque Especifiacin de los constrol files, archived log files, y ubicaciones de los archivos de trace

7. Parmetros que deberan especificarse

BACKGROUND_DUMP_DEST COMPATIBLE CONTROL_FILES DB_BLOCK_BUFFERS DB_NAME SHARED_POOL_SIZE USER_DUMP_DEST

8. Parmetros comnmente modificados

IFILE LOG_BUFFER MAX_DUMP_FILE_SIZE PROCESSES SQL_TRACE


Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 11

TIMED_STATISTICS

9. Startup y Shutdown en etapas

STARTUP NOMOUNT MOUNT OPEN

SHUTDOWN NORMAL TRANSACTIONAL IMMEDIATE ABORT

10. Vistas dinmicas de desempeo

Mantenidas y continuamente actualizadas por el servidor Oracle Contienen datos de disco y de estructuras de memoria Contienen datos que son tiles para afinamiento Tienen sinnimos pblicos con el prefijo V$

V$PARAMETER V$SGA V$OPTION V$PROCESS V$SESSION V$VERSION V$INSTANCE V$CONTROLFILE


Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 12

V$DATABASE V$DATAFILE V$LOGFILE

11. Obteniendo los valores actuales de los parmetros

Server Manager : SHOW PARAMETER control SELECT name FROM v$parameter WHERE name LIKE %control%;

12. Sesiones restringidas

Usar el comando STARTUP para restringir el acceso a la base de datos : STARTUP RESTRICT Usar el comando ALTER SYSTEM para colocar una instancia en modo restringido : ALTER SYSTEM ENABLE RESTRICTED SESSION;

13. Matando sesiones

1. Identificar la sesin a terminar usando la vista V$SESSION : SELECT sid, serial# FROM v$session WHERE username=SCOTT; 2. Ejecutar el comando ALTER SYSTEM ; ALTER SYSTEM KILL SESSION 7,15;

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 13

IV.

Creacin de una Base de Datos

1. Prerrequisitos

Una cuenta privilegiada se autentica por una de las siguientes formas: Sistema Operativo Archivo de password

Memoria para iniciar la instancia Espacio en disco suficiente

2. Planeacin de la ubicacin de los archivos de la Base de Datos Mantener al menos dos copias activas del control file en al menos dos dispositivos diferentes Multiplexar los redo log files y colocar los miembros de cada grupo en discos diferentes Separar los data files cuyos datos: - Participaran en contencin por recursos en disco - Tienen distinta duracin - Tienen distintas caractersticas administrativas

3. Organizacin del sofware de Oracle /u01/app/oracle /u02/app/applmgr /u02/oradata /u03/oradata

4. Creacin de una Base de Datos: Consideraciones En Unix - Creada automticamente durante una instalacin - Creada manualmente despus de la instalacin
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 14

En NT - Creada usando el Oracle Database Assistant - Creada manualmente

5. Creacin manual de una Base de Datos 1. Decidir el nombre de la instancia y de la Base de Datos 2. Establecer las variables del Sistema Operativo 3. Preparar el archivo de parmetros 4. Crear el archivo password 5. Subir la instancia 6. Crear la Base de Datos 7. Correr los Scripts para generar el diccionario de datos y ejecutar las tareas posteriores a la creacin

6. Ambiente del Sistema Operativo En Unix establecer las siguientes variables de ambiente: - ORACLE_HOME - ORACLE_SID - ORACLE_BASE - ORA_NLS33 - PATH En NT - Establecer la variable ORACLE_SID para usar SVRMGR30 - Crear el servicio y el archivo de password con ORADIM80 Ejemplo C:\ORADIM80 -NEW -SID u16 -INTPWD PASSWORD -STARTMODE auto -PFILE ORACLE_HOME\DATABASE\initu16.ora

7. Preparacin del archivo de parmetros 1. Crear el nuevo init<SID>.ora


Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 15

2. Modificar el initu16.ora editando los parmetros

8. Subir la instancia 1. Conectarse como SYSDBA 2. Subir la instancia en estado NOMOUNT SVRMGR> startup nomount pfile=initu16.ora

9. Creacin de la Base de Datos Comando CREATE DATABASE Ejemplo: CREATE DATABASE U16 MAXLOGFILES 5 MAXLOGMEMBERS 5 MAXDATAFILES 100 MAXLOGHISTORY 100 LOGFILE GROUP 1 ('/DISK3/log1a.rdo', '/disk4/log1b.rdo') SIZE 1M GROUP 2 ('/DISK3/log2a.rdo,'/DISK4/log2b.rdo') SIZE 1M DATAFILE '/DISK1/System01.dbf' SIZE 50M AUTOEXTEND ON CHARACTER SET WE81S08859P1;

10. TROUBLESHOOTING La creacin de la Base de Datos falla si: * Hay errores de sintaxis en el script SQL * Los archivos a ser creados ya existen. * Errores por permisos en el sistema operativo o por espacio insuficiente en disco

11. Despus de la creacin de la Base de Datos La Base de Datos contiene: * Datafiles que pertenecen al tablespace SYSTEM
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 16

* Control Files y redo log files * Usuario SYS/Change_on_install * Usuario SYSTEM/manager * Segmento de rollback SYSTEM * Tablas internas (Pero no las vistas del diccionario de datos)

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 17

V. Creacin de las Vistas del Diccionario de Datos y Paquetes Estndar

1. Uso del Diccionario de Datos El Diccionario de Datos proporciona informacin a cerca de: * Estructura lgica y fsica de la base de datos * Nombres, definiciones y localizacin de espacio de algunos objetos * Constraints de integridad * Usuarios y privilegios de la base de datos * Auditora

2. Tablas base y vistas del diccionario de datos Vistas del diccionario de datos: * Simplifican la informacin de la tabla base * Creados con el script catalog.sql Tablas base: * Normalizadas * Creadas con el script sql.bsq

3. Vistas del diccionario de datos DBA_XXX ALL_XXX : Objetos de toda la base de datos : Objetos a los que el usuario puede acceder

USER_XXX : Objetos propiedad del usuario

4. Diccionario de Datos: Ejemplos de Vistas DICTIONARY DICT_COLUMNS

DBA_TABLES DBA_OBJECTS DBA_LOBS


Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 18

DBA_TAB_COLUMNS DBA_CONSTRAINTS

DBA_USERS DBA_SYS_PRIVS DBA_ROLES

DBA_EXTENTS DBA_FREE_SPACE DBA_SEGMENTS

DBA_ROLLBACK_SEGS DBA_DATA_FILES DBA_TABLESPACES

DBA_AUDIT_TRAIL DBA_AUDIT_OBJECTS DBA_AUDIT_OBJ_OPTS

5. Creacin de Vistas del Diccionario de Datos Script Catalog.sql Catproc.sql Propsito Crea las vistas ms comnmente usadas del diccionario de datos Corre todos los scripts requeridos por PL/SQL en el servidor

6. Scripts Administrativos Existen las siguientes convenciones para los scripts sql: Cat*.sql Informacin del catlogo y del diccionario de datos

dbms*.sql Especificaciones de paquetes de la base de datos prvt*.plb utl*.sql Cdigo encriptado de la base de datos Vistas y tablas para utilidades

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 19

7.

Procedimientos y paquetes almacenados Son objetos de la Base de Datos que permiten almacenar unidades de programacin PL/SQL y se ejecutan usando herramientas Oracle como SQL*Plus, Server Manager o Enterprise Manager, o ejecutndolas desde una aplicacin Oracle.

8. Qu son los Procedimientos Almacenados? Son procedimientos o funciones Se almacenan en el Diccionario de Datos Pueden ser usados por muchos usuarios Pueden aceptar y retornar parmetros Pueden usarse en funciones SQL

9. Qu son los Paquetes? Agrupacin de tipos, items y subprogramas PL/SQL lgicamente relacionados Tienen dos partes: Una especificacin Un cuerpo

Permite que Oracle lea multiples objetos a memoria a la vez.

10. Paquetes proporcionados por Oracle DBMS_LOB DBMS_SESSION DBMS_UTILITY DBMS_SPACE DBMS_ROWID DBMS_SHARED_POOL

11. Informacin delos objetos almacenados Vista DBA_OBJECTS del diccionario de datos OWNER
Pgina 20

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

OBJECT_NAME OBJECT_TYPE STATUS (VALID, INVALID)

Comando DESCRIBE Ejemplo: DESCRIBE dbms_session.set_role

12. Trobleshooting El status de los objetos puede ser INVALID: Si se ejecutan comandos DDL sobre objetos referenciados Despus de crear los objetos con la utilidad IMPORT

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 21

VI.

Control File

1. Uso del Control File Es un archivo binario necesario para que la Base de Datos inicie y opere exitosamente Cada vez que una instancia monta una Base de Datos Oracle, lee el Control File para localizar los Data Files y los Online Redo Log Files. El Control File se utiliza continuamente durante el uso de la Base de Datos y debe estar disponible siempre que la Base de Datos de monte o se abra. El Control Files proporciona informacin acerca de la consistencia de la Base de Datos usada durante la recuperacin. Si alguno de los Control Files activos de la Base de Datos ya no est disponible, entonces la Base de Datos no puede funcionar apropiadamente.

2. Contenido del Control File Nombre de la Base de Datos Ubicacin de los data files y de los redo log files Nombres de los tablespaces Fecha de la ceacin de la Base de Datos Nmero actual de secuencia del log Informacin de checkpoint Historia del log

3. Parmetros que afectan el tamao del Control File MAXLOGFILES MAXLOGMEMBERS MAXLOGHISTORY MAXDATAFILES MAXINSTANCES
Pgina 22

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

4. Obteniendo informacin V$CONTROLFILE V$PARAMETER Ejemplo: SELECT name FROM V$controlfile; SELECT value FROM V$parameter WHERE name=control_files;

5. Multiplexando el Control File Control_Files=(/DISK1/control01.con,/DISK2/control02.con)

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 23

VII.

Mantenimiento de los Redo Log Files

1.

Uso de los Redo Log Files El servidor Oracle mantiene online redo log files para minimizar la prdida de datos en la Base de Datos. Los redo log files registran todas las modificaciones hechas a los datos en el database buffer cache con algunas excepciones. Se usan nicamente para recuperacin.

2. Grupos y miembros de Redo Log Grupos Un conjunto de copias idnticas de los Online redo log files se llama un Online redo log group El proceso LGWR escribe simultneamente la misma infromacin a todos los Online redo log files en un grupo Oracle requiere almenos de dos Online redo log groups para la operacin normal de la Base de Datos Miembros Cada Online redo log file en un grupo se llama un miembro Cada miembro en un grupo tiene log sequence members idnticos y el mismo tamao. El log sequence member se asigna cada vez que Oracle inicia la escritura de un log group para identificar cada redo log file de manera nica. El log sequence number se almacena en el control file y en el encabezado de todos los data files.

3. LGWR, Log Switches y Checkpoints

LGWR Oracle registra secuencialmente todas las modificaciones hechas a la Base de Datos en el redo log buffer. Las entradas se escriben a uno de los online redo log groups, llamado el current, bajo las siguientes situaciones:
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 24

Ocurre un commit El redo log buffer se llen en un tercio Ocurre un timeout del LGWR

Log Switches LGWR escribe secuencialmente a los online redo log files un log switch, es el evento durante el cual LGWR finaliza la escritura a un online redo log group y empieza a escribir otro.

Checkpoints Durante un checkpoint: Todos los buffer dirty de la Base de Datos se esriben a los data files por DBWR El proceso CKPT actualiza los encabezados de todos los data files y control files para reflejar que ha finalizado exitosamente. Un checkpoint ocurre en las siguientes situaciones: Cada log switch Cuando una instancia se baja con la opcin NORMAL O IMMEDIATE Parmetros LOG_CHECKPOINT_INTERVAL y LOG_CHECKPOINT_TIMEOUT.

4. Informacin acerca de los grupos V$THREAD Ejemplo: SELECT groups, current_group#, sequence# FROM V$thread;

5. Informacin acerca de grupos y miembros V$LOG Ejemplo: SELECT group#, sequence#, bytes, members, status FROM v$log; V$LOGFILE Ejemplo: SELECT *
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 25

FROM v$logfile;

6. Log Switches y Checkpoints Los log switches se pueden forzar con al comando: ALTER SYSTEM SWITCH LOGFILE; Controlar la frecuencia de los checkpoints con los parmetros: LOG_CHECKPOINT_INTERNAL LOG_CHECKPOINT_TIMEOUT

7. Adicin de Online Redo Log Groups ALTER DATABASE ADD LOGFILE (/DISK3/log3a.rdo,/DISK4/log3b.rdo) SIZE 1M;

8. Adicin de Online Redo Log Members ALTER DATABASE ADD LOGFILE MEMBER /DISK4/log1b.rdo TO GROUP 1, /DISK4/log2b.rdo TO GROUP 2;

9. Cmo relocalizar Online Redo log Files 1- Bajar la Base de Datos 2- Copiar los online redo log files a la nueva ubicacin 3- Montar la Bade de Datos 4- Ejecutar el comando ALTER DATABASE RENAME FILE 5- Abrir la Base de datos

10. Eliminacin de Online Redo Log Groups ALTER DATABASE DROP LOGFILE GROUP 3;

11. Eliminacin de Online Redo Log Members


Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 26

ALTER DATABASE DROP LOGFILE MEMBER /DISK4/log2b.rdo;

12. Posibles errores del LGWR No est disponible un miembro de un grupo de dos o ms miembros No estn disponibles todos los miembros del siguiente grupo No estn disponibles todos los miembros del grupo actual

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 27

VIII.

Manejo de Tablespaces y Data Files

1. Vistazo La arquitectura de la Base de Datos incluye las estructuras lgicas y fsicas que la conforman. La estructura fsica consiste de control files, online redo log files y data files. La estructura lgica incluye tablespaces, segmentos, extents y data blocks.

2. Estructura de la Base de Datos Una Base de Datos Oracle puede dividirse en reas lgicas de espacios ms pequeos conocidas como Tablespaces Tablespaces Un tablespace puede pertenecer a slo una Base de Datos Cada tablespace consiste de uno o ms archivos del Sistema Operativo Pueden colocarse Online mientras la Base de Datos est corriendo Pueden colocarse offline (excepto SYSTEM u otro tablespace con un segmento de rollback activo), permitiendo que la Base de Datos siga corriendo Pueden cambiar entre estado read-write y read-only

Usos de los Tablespaces Controlan la localizacin de espacio y asignacin de espacio a usuario Controlan la disponibilidad de los datos colocando tablespaces individuales online u offline Distribuyen el almacenamiento de datos entre dispositivos para mejorar el desempeo y reducir la contencin Ejecucin de operaciones de backup o recuperacin parcial Mantener gran cantidad de datos estticos en dispositivos read-only

Data Files Cada tablespace consiste de uno o ms archivos llamados data files Un data file puede pertenecer a solo un tablespace
Pgina 28

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Oracle crea un datafile para un tablespace ubicando la cantidad especificada de espacio en disco El DBA puede modificar el tamao de un data file posterior a su creacin o puede especificar que un data file puede crear dinmicamente a medida que crecen los objetos en el tablespace

Segmentos Un segmento es el espacio localizado para un tipo especfico de estructura lgica de almacenamiento dentro de un tablespace. Ejemplos: Tablas, indices, temporales, rollback Un segmento puede estar ubicado en varios data files siempre que stos pertenezcan al mismo tablespace Extents El siguiente nivel de espacio lgico de la Base de Datos se conoce como un extent. Un extent es un conjunto de bloques contigos. Cada tipo de segmento est conformado por uno o ms extents. Un extent debe existir en un data file. Data blocks Un data Block corresponde a uno o ms bloques fsicos localizados para un data file existente. Se especifica un tiempo de creacin de la Base de Datos por el parmetro de inicializacin DB_BLOCK_SIZE. Un data block es la unidad mnima de entrada salida.

3. Tablespaces SYSTEM y NO-SYSTEM El tablespaces SYSTEM contiene: Informacin del diccionario de datos Segmento de rollback SYSTEM

Los tablespaces NO-SYSTEM contienen: Segmentos de rollback Segmentos temporales Datos de la aplicacin
Pgina 29

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Indices de la aplicacin

4. Creacin de tablespaces Comando CREATE TABLESPACE Ejemplo: CREATE TABLESPACE app_data DATAFILE /DISK4/app01.dbf SIZE 100M, /DISK3/app02.dbf SIZE 100M

MINIMUN EXTENT 500K DEFAULT STDRAGE (INITIAL 500K NEXT 500K MAXEXTENTS 500 PCTINCREASE 0);

5. Parmetros de almacenamiento INITIAL NEXT MAXEXTENTS MINEXTENTS PCTINCREASE

6. Tablespace temporal Usado por operaciones de ordenamiento (sort) No puede contener objetos permanentes

Ejemplo: CREATE TABLESPACE sort DATAFILE /DISK2/sort01.dbf SIZE 50M DEFAULT STDRAGE (INITIAL 2M NEXT 2M MAXEXTENTS 500 PCTINCREASE 0) TEMPORARY;

7. Adicin de Data Files a un tablespace


Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 30

Se puede aumentar el tamao de dos formas: Agregar un data file a un tablespace Cambiar el tamao de un data file

Ejemplo: ALTER TABLESPACE app_data ADD DATAFILE /DISK3/app03.dbf SIZE 200M;

8. Crecimiento automatico de data files Se puede alterar el tamao de un data file de dos formas: Automticamente usando la opcin AUTOEXTEND Manualmente usando el comando ALTER DATABASE

Ejemplo: ALTER TABLESPACE app_data ADD DATAFILE /DISK6/app04.dbf SIZE 200M AUTOEXTEND ON NEXT 10M MAXSIZE 500M;

9. Modificacin manual del tamao de los data files ALTER DATABASE DATAFILE /DISK/app02.dbf RESIZE 200M;

10. Modificacin de los parmetros de storage Ejemplo: ALTER TABLESPACE app_data DEFAULT STORAGE (INITIAL 2M NEXT 2M MAXEXTENTS 999);

11. Status OFFLINE El tablespace que est OFFLINE no est disponible para acceder a sus datos El tablespace SYSTEM y cualquier tablespace con segmentos de rollback activos no pueden colocarse OFFLINE;

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 31

12. El status READ-ONLY Ejemplo: ALTER TABLESPACE app_data READ ONLY; El tablespace APP_DATA est disponible nicamente para operaciones de lectura

13. Estableciendo un tablespace como READ-ONLY El tablespace debe estar online No se permiten transacciones activas El tablespace no debe contener segmentos de rollback activos El tablespace no debe estar involucrado en un backup online

14. Eliminacin de tablespaces La siguiente instruccin elimina el tablespace APP_DATA y todo su contenido Ejemplo: DROP TABLESPACE app_data INCLUDING CONTENTS;

15. Informacin de los tablespaces DBA_TABLESPACES Ejemplo: SELECT tablespace_name, initial_extent, next_extent, max_extents, pct_increase. FROM dba_tablespaces;

16. Informacin de los data files DBA_DATA_FILES Ejemplo: SELECT file_name, tablespace_name, bytes, maxbytes FROM dba_data_files;

17. Recomendaciones Usar varios tablespaces Especificar los parmetros de almacenamiento Asignar espacio en los tablespace a los usuarios
Pgina 32

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

IX.

Estructuras de almacenamiento

1. Jerarqua de almacenamiento en la Base de Datos Una base de datos est agrupada lgicamente en tablespaces Un tablespace puede consistir de uno o ms segmentos Cuando se crea un segmento, consiste de al menos un extent el cual es un conjunto de bloques contigos. A medida que crece el segmento se adicionan extents al segmento Un bloque, es la unidad ms pequea usada para operaciones read-write

2. Tipos de segmentos Tabla: Es el medio ms comn de almacenar datos dentro de una base de datos. Los datos dentro de una tabla no se almacenan con un orden particular. Cluster: Las filas en un cluster se almacenan basadas en los valores de ciertas columnas. Un cluster puede contener una o ms tablas y es un tipo de segmento de datos. Indice: Todas las entradas para un ndice particular se almacenan dentro de un segmento ndice. Si una tabla tiene tres ndices, se usan tres segmentos de ndices. El propsito de este ndice es buscar la ubicacin de las filas en la tabla basado en un valor especfico. Rollback: Es usado por una transaccin que est efectuando cambios en una base de datos. Antes de modificar los bloques de datos o de ndices, el valor anterior se almacena en el segmento de rollback. Esto permite que el usuario pueda deshacer los cambios realizados. Temporal: Usando una instruccin SQL requiere de un ordenamiento que requiere mucho espacio, se crean en disco segmentos temporales. SELECT DISTINCT, y SELECT GROUP BY. LOB: Permite almacenar documentos de texto, imgenes, o videos. Ejemplos: CREATE INDEX,

3. Procedencia de la clusula STORAGE Cualquier parmetro de storage especificado a nivel de segmento ignora la opcin correspondiente establecida a nivel de tablespace
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 33

Cuando no se establecen explcitamente parmetros de storage a nivel de segmento, toman el valor de aquellos establecidos a nivel de tablespace Cuando no se establecen explcitamente parmetros de storage a nivel de tablespace, aplican los defaults de Oracle.

4. Localizacin y DeLocalizacin de extents Localizados cuando el segmento se: Crea Extiende Altera

De-Localizados cuando el segmento se: Elimina Altera Trunca Contrae automticamente (nicamente segmentos de rollback)

5. Extents libres y usado Cuando se crea un tablespace, los data files en el tablespace contienen los siguientes elementos: Un bloque encabezado, el cual es el primer bloque en el archivo Un extent libre, compuesto por el resto del data file

A medida que se crean segmentos, localizan espacio a partir de los extents libres en el tablespace. El espacio contigo usado por un segmento se conoce como un extent usado. Cuando los segmentos liberan espacio, los extents liberados se adicionan al conjunto de extents libres disponibles en el tablespace.

6. Bloque Oracle Unidad mnima de I/O Consiste de uno o ms bloques del Sistema Operativo Establecido por DB_BLOCK_SIZE
Pgina 34

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Establecido cuando se crea la base de datos

Cada data block contiene: Header Espacio libre Datos

7. Parmetos de utilizacin del espacio en un bloque INITRANS MAXTRANS PCTFREE PCTUSED

8. Informacin acerca de las estructuras DBA_SEGMENTS Ejemplo: SELECT segment_name, tablespace_name, extents, blocks FROM dba_segments; DBA_EXTENTS Ejemplo: SELECT extent_id, file_id, block_id, block FROM dba_extents WHERE owner =SCOTT;

9. Espacio libre SELECT tablespace_name, count (*), max (blocks), sum (blocks) FROM dba_free_space GROUP BY tablespace_name;

10. Resumen Almacenamiento de la base de datos

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 35

Parmetros de almacenamiento.

INITIAL NEXT MAXEXTENTS MINEXTENTS PCTINCREASE OPTIMAL FREELISTS

Parmetros de utilizacin de espacio PCTFREE PCTUSED INITRANS MAXTRANS BLOQUES DE LA BASE DE DATOS
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 36

Propiedades Un bloque corresponde a uno o mas bloques fsicos en disco. El tamao se determina al crear la base de datos, y en el parmetro DB_BLOCK_SIZE y es constante en todos los datafiles. El DB_BLOCK_SIZE tambin determina el tamao de cada buffer en el SGA. Los bloques de base de datos tambin son conocidos como bloques lgicos y bloques ORACLE. Una vez creada la base de datos, el parmetro DB_BLOCK_SIZE no puede ser cambiado. El tamao tpico del bloque es 2K o 4K. El valor por defecto depende del sistema operativo. En algunas plataformas el tamao del bloque puede ser muy grande (Por ejemplo 32 K). Este bloque es conocido como BIG ORACLE BLOCKS. Todas las operaciones de I/O, estn implementadas para trabajar a nivel de bloques. El servidor de Oracle mantiene bloqueos a nivel de fila.

Partes de un Database Block

Parte Header Table directory Row directory Free Space

Descripcin Contiene la informacin general del bloque, como la direccin y el tipo de segmento. Almacena la informacin acerca de las tablas presentes en el bloque. Contiene informacin de las filas presentes en el bloque. Consiste en un conjunto de bytes en el bloque, disponibles para realizar inserciones o actualizaciones de filas.

Row Data

Almacena los datos de la tabla o indice.

Para el caso de Oracle 8, se observa una diferencia en cuanto a los componentes de un Database block, el Header contiene la informacin del directorio de tablas y el directorio de filas.
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 37

Control del espacio usado El control del uso del espacio libre para inserciones, actualizaciones y borrado de filas en bloques de la base de datos, se especifica en valores apropiados en los siguientes parmetros. PCTFREE PCTUSED INITRANS MAXTRANS

PCTFREE y PCTUSED poseen el control del uso de espacio libre para inserciones o actualizaciones de filas en bloques de la base de datos. Ambos parmetros aplican a tablas, clusters, y vistas usando los comandos CREATE y ALTER. PCTFREE puede ser especificado para indices.

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 38

Los valores por defecto son para PCTFREE 10% y para PCTUSED 40%, la suma de PCTFREE y PCTUSED debe ser menor o igual al 100. INITRANS indica el nmero de transacciones localizadas inicialmente en el encabezado del bloque. MAXTRANS indica el mximo nmero de transacciones que pueden acceder al bloque concurrentemente.

En el caso 1, se pueden insertar filas en el bloque ya que la utilizacin del mismo est por debajo del 80%. En el caso 2, no se pueden insertar filas, el espacio sobrante es utilizado en caso de modificaciones, ejemplo cuando una columna tiene un valor nulo y cambia de valor. En el caso 3, si se borran filas o se reduce el espacio ocupado con modificaciones, la utilizacin del bloque puede estar por debajo del 80%, sin embargo el bloque no es usado para inserciones hasta que la utilizacin del bloque caiga por debajo de PCTUSED. En el caso 4, cuando el nivel baja de PCTUSED el bloque queda disponible para insercin.

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 39

Asignar un valor bajo al parmetro PCTFREE Permite inserciones para llenar bloques ms completamente. Puede requerir menos bloques para almacenar datos. Puede incrementar los costos de proceso si se requiere de reorganizacin de bloques frecuentemente. Puede causar migracin de filas. Asignar un valor alto al parmetro PCTFREE Reserva mas espacio para actualizaciones. Puede requerir mas bloques para almacenar datos. Bajos costos de proceso porque los bloques pueden requerir reorganizacin con poca frecuencia. Reduce la necesidad de encadenar filas. Asignar un valor bajo al parmetro PCTUSED Reduce el costo de procesamiento porque los bloques no son liberados frecuentemente. Incrementa el espacio sin utilizar. Asignar un valor alto al parmetro PCTUSED Incrementa los costos de proceso porque los bloques son liberados frecuentemente. Mejora el uso de espacio ya que los bloques se utilizan con mas capacidad.

INITRANS Es el nmero inicial de entradas de transacciones, para transacciones concurrentes, estas son localizadas en cada encabezado de bloque, cuando un bloque es localizado (Por defecto 1, mnimo 1, mximo 255). Cada entrada de transaccin es aproximadamente de 23 byter de longitud (Depende del sistema operativo).
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 40

MAXTRANS Es el mximo nmero de transacciones concurrentes que puede soportar un bloque (Mximo 255). El valor por defecto para MAXTRANS depende del sistema operativo, pero usualmente es de 255. Cada transaccin puede necesitar aproximadamente 23 bytes de espacio libre en el bloque. Si el espacio libre del bloque est siendo usado, las transacciones pueden tener que esperar para acceder al bloque. EXTENTS Un extent es un conjunto de bloques de datos contigos. Cuando el objeto de la base de datos crece, se localiza espacio para el mismo.

Los extents son localizados cuando: El segmento es creado (INITIAL EXTENT) El segmento crece (NEXT EXTENT) La tabla o cluster es alterado y requiere extents.

Los extents son liberados cuando: El segmento o cluster es borrado. El segmento o cluster es truncado. El segmento es ms grande que el ptimo y contiene extents libres (Unicamente para segmentos de rollback).

Caractersticas de los extents Cada segmento en una base de datos es creado con el menor nmero de extents para almacenar los datos.
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 41

El primer extent es llamado el extent inicial. Los extents siguientes son llamados extents incrementales. Un objeto puede localizar un nuevo extent solamente si los extent localizados actualmente se encuentran llenos. La frecuente liberacin de extents puede ocasionar una defragmentacin del tablespace. El extent inicial es un pedazo de espacio reservado en la base de datos. Cuando el extent inicial se llena, se localiza un NEXT EXTENT. El servidor de oracle considera los bloques como bloques consecutivos, pero esto no significa que deban ser contgos fsicamente en disco.

Control de la localizacin de los extents Parmetro INITIAL Descripcin Tamao en bytes del primer extent localizado en el segmento, por defecto equivale a cinco data blocks. NEXT Tamao en bytes de los extents siguientes, por defecto equivale a cinco data blocks. MAXEXTENTS Nmero total de extents que pueden ser localizados en el segmento, el tamao mximo depende del tamao de los bloques de Oracle, por ejemplo 121 para bloques de 2K. MINEXTENTS Nmero total de extents que pueden ser localizados al momento de ser creado el segmento, por defecto es 1 excepto para los segmentos de rollback que requieren 2. PCTINCREASE OPTIMAL Porcentaje en el cual se puede incrementar los extents siguientes. Especifica el tamao optimo en bytes para los segmentos de rollback. FREELIST Nmero de listas de bloques libres para insercin en na tabla. Por defecto es uno.

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 42

FREELIST GROUPS

Nmero de freelist para ser usado en diferentes instancias de un Parallel Server.

Representacin del almacenamiento en Oracle.

En la grfica anterior se presentan las tablas de las cuales se saca la informacin necesaria para presentar en la aplicacin.

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 43

X.

Segmentos de rollback

1. Vistazo Un segmento de rollback se usa para salvar el valor anterior cuando un proceso est efectuando modificaciones a los datos en una base de datos, almacena informacin como el cdigo del archivo, cdigo del bloque y tambin datos como existan antes de ser modificados. El encabezado de un segmento de rollback contiene una tabla donde se almacena informacin acerca de las transacciones que est usando el segmento. Una transaccin puede usar nicamente un segmento de rollback para almacenar todos los registros de rollback. Muchas transacciones pueden escribir a un segmento de rollback.

2. Segmentos de rollback: Propsito Rollback de la transaccin Recuperacin de la transaccin Consistencia en la lectura

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 44

XI.

Auditora de la base de datos.

Privilegios de operacin de la auditora Auditora siempre Iniciar la base, bajar la base y conexiones de SYSDBA

Auditora de la base de datos Habilitada por DBA Incapaz de grabar registros en la base de datos

Valores base de auditora en aplicaciones Implementacin mediante cdigo Poder grabar registros en la base. Usar pistas de cambios en las tablas

El servidor de Oracle puede auditar acciones en la base de datos como son : Iniciar una instancia, la auditora registra el usuario del sistema operativo quien inicia la instancia, identificacin de la terminal y la fecha y la hora y cuando la auditora es habilitada o inhabilitada. Bajar una instancia, de forma similar se registra la informacin del usuario del sistema operativo, la terminal y la fecha y hora. Conexiones a la base de datos con privilegios de administrador, se graba el registro con la informacin del usuario que ingresa como SYSOPER o SYSDBA.

1. Auditora de la base de datos Auditora es el monitoreo y grabacin de acciones seleccionadas de los usuarios. La informacin de los eventos es almacenada en la pista de auditoria. La pista de auditoria puede ser usada para investigar actividades sospechosas. Por ejemplo, si un usuario sin autorizacin borra datos de las tablas, el administrador de la base de datos puede decidir auditar todas las conexiones a la base de datos en conjunto con borrados exitosos o fallidos de registros.

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 45

Puede por medio de la auditora registrar estadsticas de las tablas mas actualizadas y/o consultadas, para afinar las operaciones de Entrada/Salida.

2. Auditora de valores base La auditora no puede registrar los valores de las columnas que son cambiados, si requiere almacenar los datos anteriores de las columnas que son modificadas, se debe usar auditora de aplicaciones. La auditora de aplicaciones se realiza mediante cdigo en la herramienta cliente, procedimientos almacenados, o triggers de la base de datos. Para verificar la auditora bsica sobre conexiones, se puede examinar el visor de sucesos de Windows NT, en la parte de Registro de aplicacin.

3. Demostracin de auditoria de valores base Se posee una tabla de empleados, donde tenemos los siguientes campos:

Codigo Nombre Direccion Telfono

Por alguna razn se desea conservar la historia de los valores contenidos en esta tabla, en caso de que se cambie la direccin o el telfono del empleado, se desea mantener un registro de los datos anteriores. Para esto se puede crear un trigger a la tabla que posea el siguiente cdigo.

CREATE TRIGGER auditoria_empleados AFTER INSERT OR DELETE OR UPDATE ON empleados FOR EACH ROW BEGIN
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 46

INSERT INTO aud_empleados VALUES (:OLD.codigo, :OLD.nombre, :OLD.direccion, :OLD.telefono, :NEW.codigo, :NEW.nombre, :NEW.direccion, :NEW.telefono, USER, SYSDATE); END;

Con el trigger anterior, cada vez que se inserte, modifique o borre un registro de la tabla empleados, se guardar la informacin en la tabla aud_empleados (La tabla aud_empleados debe ser creada por el administrador o alguna persona encargada de la auditora).

4. Usando auditora de la base de datos

El administrador de la base de datos debe definir claramente el propsito de la auditora, de lo contrario puede que la informacin generada por la auditora pueda crecer desmesuradamente, sin ofrecer informacin valiosa, por otro lado puede llegar a degradar el desempeo de la base de datos.
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 47

Habilitar la auditora de la base de datos Una vez que se decide que auditar, se debe asignar el parmetro de inicializacin AUDIT_TRAIL, para que habilite la auditora para la instancia. Este parmetro indica si la pista de auditora se escribe a una tabla de la base de datos o a la pista de auditora del sistema operativo. 5. Especificacin de las opciones de auditora

El siguiente paso es especificar las opciones de auditora usando el comando AUDIT, con este comando se indica cuales comandos, usuarios, objetos o privilegios auditar. Se puede indicar si un registro de auditora debe ser generado por cada ocurrencia o una vez por sesin. Si una opcin de auditora no es necesaria, se puede desabilitar la opcin con el comando NOAUDIT.

6. Ejecucin de instrucciones Cuando un usuario ejecuta una instruccin SQL o PL/SQL, el servidor procede a examinar las opciones de auditora, para determinar si la ejecucin del mismo debe generar algn registro de auditora. Si el comando SQL se encuentra dentro de un programa PL/SQL, es necesario que sea ejecutado dicho comando para que se registre la auditora, el bloque de instrucciones debe pasar por dicho comando y puede llegar a generar varios registros de auditora.

7. Generacin de datos de auditora La generacin e insercin de un registro de auditora, es independiente de la transaccin del usuario; esto es, si la transaccin del usuario realiza rollback, el registro de auditoria permanece intacto. Sin embargo el registro de auditora es generado durante la fase de ejecucin, lo cual significa que si el comando posee un error de sintaxis no se genera un registro de auditora.
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 48

8. Revisin de la informacin de auditora La informacin de la auditora se revisa, mediante selecciones a la pista de auditora de vistas del diccionario de datos o usando la utilidad del sistema operativo. Esta informacin es utilizada para investigar actividades sospechosas y monitorear la actividad de la base de datos. 9. Habilitando la auditora de la base de datos

El administrador de la base de datos asigna al parmetro de inicializacin AUDIT_TRAIL habilitar la auditora para la instancia.

Sintaxis

AUDIT_TRAIL = valor

Donde valor puede tomar uno de los siguientes valores:


Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 49

VALOR DB

DESCRIPCION Habilita la auditora y direcciona todos los registros de auditora a la pista de auditora de la base de datos (sys.aud$)

OS

Habilita la auditora y direcciona todos los registros de auditora a la pista de auditora del sistema operativo. (Si es permitido por este)

NONE

Deshabilita la auditora (Este es el valor por defecto).

Nota curiosamente al buscar el parmetro en el init.ora, se encontr que el parmetro estaba comentariado y posea el siguiente valor. #audit_trail = true Este valor no se menciona como un posible valor para ser asignado al parmetro. Buscando en la documentacin se encuentra que se puede asignar el valor TRUE al parmetro y se comporta como si fuera DB, anotan que es por compatibilidad con versiones anteriores. 10. Habilitando las opciones de auditora Auditar instrucciones AUDIT user; Auditar privilegios AUDIT select any table BY scott BY ACCESS; Auditar objetos AUDIT LOCK ON scott.emp BY ACCESS WHENEVER SUCCESFUL;

Se utiliza el comando AUDIT para especificar las opciones de auditora. Estos registros de auditora nunca son generados por sesiones del usuario SYS o conexiones como INTERNAL.

Instrucciones de auditora

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 50

Se pueden ingresar los comandos de auditora con instrucciones de SQL para un tipo de objeto, las instrucciones que se pueden auditar por ejemplo son CREATE, ALTER, y DROP USER para todos los usuarios.

Auditora de privilegios La auditora de privilegios se usa para verificar el uso de los privilegios del sistema. Por ejemplo siempre que el usuario Scott realice un SELECT sobre cualquier tabla, se genere un registro de auditora, cuando el usuario realiza una consulta sobre una tabla en la cual no tiene privilegios no se genera el registro de auditora.

Sintaxis de los comandos de auditora Privilegios o auditora de instrucciones

AUDIT {statement|system_priv} [,{statement|system_priv}].... [BY user [, user]...] [BY {SESSION|ACCESS} ] [WHENEVER [NOT] SUCCESSFUL]

Auditora de objetos

AUDIT statement [,statement]... ON {[schema.]objeto|DEFAULT} [BY {SESSION|ACCESS}] [WHENEVER [NOT] SUCCESSFUL]

Donde:

Statement

Especifica la instruccin SQL o el esquema-objeto a auditar.


Pgina 51

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

System_priv Schema.schema-object Default User

Especifica el privilegio del sistema a auditar. Especifica el objeto seleccionado para auditora. Conjunto de objetos especficos como objetos por defecto. Indica el usuario sobre el cual realizar la auditora, si se omite se realizar la auditoria para todos los usuarios.

BY SESSION

Origina que Oracle inserte nicamente un registro por objeto de la base de datos en el audit trail por cada sesin, esta es la opcin por defecto, excepto para instrucciones DDL.

BY ACCESS

Origina que Oracle inserte un registro en el audit trail, cada vez que una instruccin auditada es enviada.

WHENEVER

Especifica que la auditora sea realizada nicamente para instrucciones satisfactorias o fallidas. El valor por defecto es ambas.

Es importante anotar que en caso de realizarse la auditora a instrucciones fallidas, no tiene en cuenta una consulta de una tabla que no exista, el registro de auditora es realizado durante la fase de ejecucin. La auditora de privilegios e instrucciones especificadas por el comando AUDIT, solo aplican para las sesiones siguientes, no para las sesiones activas, en cambio la auditora sobre objetos se hace efectiva inmediatamente.

11. Auditora de esquema de objetos


IV.
Opcin

Objeto

XII.

TABLA

VISTA

SECUENCIA

PROCEDIMIENTO ALMACENADO

SNAPSHOT

ALTER AUDIT COMMENT DELETE EXECUTE

X X X X X X X

X X X

X X X X X

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 52

GRANT INDEX INSERT LOCK READ RENAME SELECT UPDATE

X X X X

X X

X X

X X

X X X

X X X X

X X X

Observar las opciones de auditora Vista del diccionario de datos ALL_DEF_AUDIT_OPTS DBA_STMT_AUDIT_OPTS DBA_PRIV_AUDIT_OPTS DBA_OBJ_AUDIT_OPTS Descripcin Opciones de auditora por defecto Opciones de auditora de instrucciones Opciones de auditora de privilegios Opciones de auditora de objetos

12. Desabilitar las opciones de auditora NOAUDIT user WHENEVER SUCCESSFUL; NOAUDIT create table BY scott; NOAUDIT LOCK ON emp;

La instruccin NOAUDIT para la auditora especificada en el comando. NOAUDIT {statement|system_priv} [, {statement|system_priv} ] . . . [BY user [, user ] . . . ] [WHENEVER [NOT] SUCCESFULL]

NOAUDIT statement [,statement ] . . .


Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 53

ON {[schema.]object | DEFAULT} [WHENEVER [NOT] SUCCESSFUL ]

La instruccin NOAUDIT reversa el efecto de una instruccin AUDIT previa. La instruccin NOAUDIT puede tener la misma sintaxis de una instruccin AUDIT previa y con ello desabilitar la auditora que se haba establecido, sin embargo, si una instruccin AUDIT (Instruccin 1) habilita la auditora para un usuario especfico, y una segunda instruccin AUDIT (Instruccin 2) habilita la auditora para todos los usuarios, al ejecutar una instruccin NOAUDIT que desabilite la auditora para todos los usuarios, sta reversa la Instruccin 2, pero permite que la auditora asignada con la Instruccin 1 contine.

13. Viendo los resultados de la auditora La pista de auditora: Almacena los registros generados por instrucciones, privilegios y objetos auditados. El registro de auditora est almacenado en la tabla del diccionario de datos SYS.AUD$ o en el registro de auditora del sistema operativo. Cada registro en la pista de auditora incluye: El usuario quien ejecut la instruccin El comando emitido Cualquier privilegio de objeto usado Los objetos referenciados en la instruccin La fecha y hora de ejecucin de la instruccin

Localizacin de la pista de auditora Los registros de auditora pueden ser almacenados en una tabla del diccionario de datos, llamada la base de datos de pistas de auditora (Database Audit Trail) o en la pista de auditora del sistema operativo.

Contenido de la pista de auditora


Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 54

Cada registro de la pista de auditora incluye: El nombre del usuario La identificacin de la sesin La identificacin de la terminal El nombre del objeto accesado La operacin desempeada El cdigo completo de la operacin La fecha y la hora Los privilegios del sistema utilizados

Vista de la pista de auditora DBA_AUDIT_TRAIL DBA_AUDIT_EXISTS DBA_AUDIT_OBJECT DBA_AUDIT_SESSION DBA_AUDIT_STATEMENT

Descripcin Todas las entradas de la pista de auditora Registros para AUDIT EXISTS/NOT EXISTS Registros concernientes al ambiente de los objetos Todas las conexiones y desc onexiones Registros de auditora de instrucciones

Recomendacin mover la pista de auditora fuera del tablespace system, ya que la pista de auditora puede ser muy extensa.

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 55

XIII.

Comunicacin con un servidor remoto

1. Resolucin del esquema de nombres de objetos

Para que una aplicacin resuelva las referencias del esquema de objetos (Un proceso llamado name resolution), Oracle utilizar una jerarqua de nombres de objetos. Por ejemplo, en una base de datos sola, se garantiza que un esquema tiene un nombre nico, y dentro de este cada objeto tiene un nombre nico, de esta manera se garantiza la unicidad de un nombre de esquema-objeto.

En una base de datos distribuida, un esquema puede encontrarse repetido en dos bases de datos diferentes, o puede suceder con un nombre de objeto, la solucin es agregando a la jerarqua de nombres el nombre global de la base de datos.

2. Conexin entre versiones diferentes de Oracle

Un sistema distribuido de bases de datos, puede incorporar bases de datos Oracle de diferentes versiones, todas las versiones soportadas de Oracle pueden participar en un sistema distribuido de bases de datos. Es importante anotar que se deben conocer los objetos en ambas versiones para que se puedan comprender las dos bases de datos. Por ejemplo, si en un motor Oracle 8i se poseen tablas de objetos, estas no pueden ser comprendidas por una base de datos basada en la versin 7.

3. Bases de datos distribuidas y procesos distribuidos Los trminos base de datos distribuida y procesos distribuidos se encuentran relacionados pero tienen grandes diferencias entre s.

Base de datos distribuida: Es un conjunto de bases de datos que pueden estar almacenadas en diferentes computadores y se comportan en la aplicacin como una sola base de datos.
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 56

Proceso distribuido: Ocurre cuando una aplicacin distribuye tareas en diferentes computadores en una red.

4. Comunicacin entre servidores

La forma de establecer la comunicacin entre dos bases de datos ORACLE es mediante un database link, por lo menos fue una forma de comunicacin que encontr. Cada base de datos es conocida por un global database name, este se encuentra definido por el dominio de la mquina y por el nombre de la base de datos, de esta forma se puede lograr la comunicacin a travs de una red, intranet o internet.

En la figura se describe una base de datos distribuida.

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 57

5. Database Links

Para facilitar los requerimientos de un sistema distribuido de bases de datos, ORACLE utiliza los database links, un database link define una via de comunicacin desde una base de datos a otra.

Un database link es escencialmente transparente para los usuarios de un sistema de base de datos distribuido, a causa que el nombre del database link es el nombre global de la base de datos.

Por ejemplo, basado en la grfica anterior, se va a crear un database link a la base remota SALES.US.AMERICAS.ACME_AUTO.COM

CREATE DATABASE LINK sales.us.americas.acme_auto.com ... ;

Despus de la creacin del database link, las aplicaciones conectadas a la base de datos local pueden acceder a la informacin de la base de datos remota, de la siguiente manera:

SELECT * from scott.emp @sales.us.americas.acme_auto.com

Para realizar la prctica se instal otra base de datos en la misma mquina, para poder realizar el database link, la base de datos fue creada mediante la utilizacin del asistente para la creacin de bases de datos, de esta forma quedaron instaladas en la mquina las bases de datos DBCAREM y DBCAREM2, para crear el database link es necesario que el listener conozca la ruta de las dos bases de datos, por encontrarse en la misma mquina no fue necesario realizar cambios.

Al crear el database link no present ningn inconveniente, pero al ejecutar una instruccin donde se utilizaba si, se presentaba un error, el cul significa que no puede localizar el nombre de la base de datos.

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 58

En la oficina con ayuda por parte de mi jefe se realizaron pruebas en dos bases de datos montadas en el mismo servidor sobre ambiente Unix, las cuales fueron satisfactorias, despus de realizar varios ensayos, se comentario una lnea del init.ora de cada una de las bases de datos, las cuales poseen la siguiente informacin:

Global_names = true

Estas mismas lneas se encuentras en el archivo de configuracin de las bases de datos sobre Unix y no impedian el funcionamiento del database link, pero en el caso de NT no permitian que este funcionara. Tipos de database links Para soportar que la aplicacin acceda a los datos de bases de datos diferentes en un ambiente distribuido, los administradores deben crear todos los database link necesarios, existen diferentes tipos de database link como son: PRIVATE PUBLIC GLOBAL DATABASE LINK

Private database link

Se puede crear un database link privado en un esquema especfico de la base de datos, de forma que nicamente el dueo del database link privado, o subprograma PL/SQL en el esquema pueda usar el database link para acceder a datos y objetos en la correspondiente base de datos remota.

Public database link Es el caso contrario donde todos los usuarios pueden acceder a los datos y objetos en la correspondiente base de datos remota.
Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F. Pgina 59

Global database link

Cuando una red ORACLE utiliza Oracle names, los nombres de los servidores automticamente crean y manejan global database links por cada base de datos Oracle en la red, de esta forma todos los usuarios y subprogramas en una base de datos pueden acceder a la informacin y objetos de las dems bases de datos en la red.

Un private database link es ms seguro que un public database link y que un global database link, ya que el dueo es el nico que puede acceder a la base de datos distribuida.

Cuando se requiere que muchos usuarios accedan a la informacin de otra base de datos, lo ms recomendable es la creacin de un public database link.

Cuando se trabaja en un ambiente Oracle Network que utilice Oracle names, la administracin de los database links es centralizada y simple.

Opciones de seguridad para database link Un database link define un camino de comunicacin entre dos bases de datos. Cuando una aplicacin usa un database link para acceder a la base de datos remota, Oracle establece una sesin en la base de datos remota. Cuando se crea el database link pblico o privado, se puede establecer el esquema de trabajo en el base de datos remota, mediante la asignacin del usuario con el cual va a ingresar a la base de datos remota.

Sintaxis de CREATE DATABASE LINK

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 60

Parmetros: Shared : Utiliza una conexin de red para crear un database link que pueda ser

compartido por mltiples usuarios. Public : Crea un database link pblico disponible para todos los usuarios, si se

omite esta palabra el database link es privado y solo es disponible para el usuario que lo crea. Dblink : Es el nombre completo o parcial del database link, las restricciones

corresponden a que no se puede crear otro database link con el mismo nombre en otro esquema. Connect to : Habilita una conexin a la base de datos remota.

Current_user : Crea el link con el usuario actual, de modo que el usuario debe poseer una cuenta vlida en el servidor remoto. User identified by : Es el nombre y password del usuario con el que se conecta a la base de datos remota.

Ejemplos

CREATE DATABASE LINK sales.hq.acme.com CONNECT TO CURRENT_USER USING sales;

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 61

CREATE DATABASE LINK sales.hq.acme.com CONNECT TO scott IDENTIFIED BY tiger USING sales;

Oracle Administracin de Bases de Datos Presentado por Carlos Mayorga al Ing. Ismael Castaeda F.

Pgina 62

Das könnte Ihnen auch gefallen