Está en la página 1de 29

Operacin y mantenibilidad

UNIDAD 4

OBJETIVOS
Crear bitcoras de operacin para el diagnstico del rendimiento del DBMS.
Crear y mantener ndices.

BITCORAS DE TRABAJO DEL DBMS

BITCORA
Herramienta que permite registrar, analizar, detectar y notificar eventos que sucedan en un momento determinado.
Es una estructura usada para grabar las modificaciones de la base de datos.

IMPORTANCIA DE UNA BITCORA


Recuperar informacin ante incidentes Deteccin de comportamiento inusual Informacin para resolver problemas Evidencia Legal Computo Forense

TIPOS DE BITCORAS
Alertas
Archivo alert_orcl.log

Transacciones
Redo: bitcora de toda transaccin. La operacin ROLLBACK est basada en el uso de una bitcora. ARCHIVELOG

Auditorias (seguimiento de intentos de inicio de sesin, accesos a


objetos y acciones de la base de datos)

DISPARADORES

FUNCIONES ESPECFICAS DE LAS BITCORAS


Las bitcoras graban las modificaciones de la base de datos en registros. Cada registro de la bitcora escribe una nica escritura de base de datos y tiene las siguientes caractersticas:

Nombre de la Transaccin Valor antiguo Valor nuevo

DISPARADOR / TRIGGER
BITACORA

Disparador/ Trigger Un disparador (trigger) es un procedimiento que se ejecuta en respuesta a un evento INSERT, DELETE o UPDATE sobre filas de una tabla.
Ej. Al aumentar el sueldo de un empleado, que se aumente automticamente el total de gastos de la empresa.

La accin disparada por un evento se especifica mediante una secuencia de sentencias SQL.

Aplicaciones de un Disparador/ Trigger Se obliga a el cumplimiento de las reglas comerciales que debe cumplir una BD en cada transaccin. Realizar cambios en la base de datos de forma transparente al usuario. Generar automticamente valores de columnas en base a un valor proporcionado por una sentencia INSERT UPDATE. Sincronizar el mantenimiento de tablas duplicadas que estn localizadas en nodos distintos de una base de datos distribuida.

Desventajas de un Disparador/ Trigger Crean complejidad en la planeacin lgica de la BD Las reglas ocultas hacen que programas aparentemente sencillos generen una enorme cantidad de actividad

1 2

1 Data Manipulation Language 2 Data Definition Language

DEFINICION DE LOS TRIGGERS


CREATE OR REPLACE TRIGGER 1. Comando: Se especifica el comando SQL que dispara el Trigger (Delete, Insert Update), y la tabla asociada. Se puede especificar cundo se dispara el Trigger: BEFORE, antes de ejecutar el comando. AFTER, despus de ejecutar el comando. 2. Restriccin: Se define la condicin que tiene que verificar cada fila de la tabla para que se ejecute la accin del trigger
3. Accin: Se define mediante comandos y sentencias SQL la tarea especfica que realiza el Trigger.

Expresiones
:OLD y :NEW Prefijos para referirse al valor nuevo y al antiguo de una columna de una fila de la tabla. UPDATE
Valor antes de ser modificado (:OLD) Valor despus de la modificacin (:NEW)

INSERT
Podemos referenciar slo el valor nuevo (:NEW)

DELETE
Podemos referenciar slo el valor antiguo (:OLD)

Ej. :NEW.salario > (:OLD.salario*1.25) Compara si el salario ha aumentado en ms del 25% de salario antiguo

Estado de triggers
TRIGGER habilitado
ALTER TRIGGER nombre_trigger ENABLE; ALTER TABLE nombre_tabla ENABLE ALL TRIGGERS;

TRIGGER deshabilitado
ALTER TRIGGER nombre_trigger DISABLE; ALTER TABLE nombre_tabla DISABLE TRIGGERS; ALL

Es conveniente desactivar los triggers sobre una tabla cuando se hace una carga masiva de datos.
CUANDO SE CREAN ESTN ACTIVOS.

Borrado de triggers
DROP TRIGGER nombre_trigger;

Documentacin de triggers Se pueden consultar las vistas:


USER_TRIGGERS ALL_TRIGGERS DBA_TRIGGERS SELECT TRIGGER_NAME USER_TRIGGERS; , STATUS FROM

OTRAS FUNCIONES Ver errores en la sintaxis


show errors trigger nombre_disparador ; Ver el cuerpo de un disparador
SELECT TRIGGER_BODY FROM USER_TRIGGERS WHERE TRIGGER_NAME=nombre_disparador ; Ver la descripcin de un disparador SELECT DESCRIPTION FROM USER_TRIGGERS WHERE TRIGGER_NAME= nombre_disparador ;

GRANULARIDAD DEL EVENTO FOR EACH ROW. El disparador es a nivel de fila. El cuerpo del disparador se debe aplicar fila a fila a la tabla afectada.
WHEN condicin (slo para disparadores a nivel de fila) Operadores relacionales: < <= > >= = <> Operadores lgicos AND, OR, NOT

FOR EACH STATEMENT. El disparador es a nivel de orden. El cuerpo del disparador se debe aplicar a toda la tabla a la vez.

FUNCIONES DEL CUERPO DEL DISPARADOR CREATE OR REPLACE TRIGGER ejemplo EVENTO BEFORE INSERT OR UPDATE OR DELETE ON tabla BEGIN CONDICIN IF DELETING THEN Acciones asociadas al borrado ACCIN ELSIF INSERTING THEN Acciones asociadas a la insercin ELSE Acciones asociadas a la modificacin END IF; END ejemplo; /

FUNCIONES DEL CUERPO DEL DISPARADOR


RAISE_ERROR_APPLICATION (nro_error, mensaje); [-20000 y -20999] Error definido por el usuario
CREATE OR REPLACE TRIGGER ejemplo BEFORE DELETE ON tabla FOR EACH ROW BEGIN IF tabla.columna= valor_no_borrable THEN

RAISE_APPLICATION_ERROR(-20000,La fila no se puede borrar);


END IF;

END;

DECLARACIN DE VARIABLES
Dentro de un disparador se pueden declarar variables que se utilizarn dentro del cuerpo del mismo.
CREATE... BEFORE... [FOR EACH ROW ...]

DECLARE Nombre CONSTANT NUMBER:=valor; nombre TIPO;


BEGIN

...

EJEMPLO
CREATE OR REPLACE TRIGGER jefes BEFORE INSERT ON empresa.empleados FOR EACH ROW DECLARE supervisa INTEGER; BEGIN SELECT count(*) INTO supervisa FROM empresa.empleados WHERE jefe = :new.jefe; IF supervisa > 4 THEN raise_application_error (-20600,:new.jefe||'no se puede supervisar mas de 5'); END IF; END; /

RECUPERACIN (ROLLBACK)

ROLLBACK Es una operacin que devuelve a la base de datos a algn estado previo. Los Rollbacks son importantes para la integridad de la BD, ya que significan que la BD puede ser restaurada a una copia limpia incluso despus de que se han realizado operaciones errneas. Son cruciales para la recuperacin de cadas de un servidor de base de datos.

PERMANENCIA (COMMIT)
Marca el final de una transaccin correcta, implcita o explcita.

COMMIT Una sentencia COMMIT en SQL finaliza una transaccin de base de datos dentro de un sistema gestor de base de datos relacional (RDBMS).
Pone visibles todos los cambios a otros usuarios. El formato general es emitir una sentencia BEGIN WORK, una o ms sentencias SQL, y entonces la sentencia COMMIT. Alternativamente, una sentencia ROLLBACK se puede emitir, la cual deshace todo el trabajo realizado desde que se emiti BEGIN WORK.

DEFINICIN DE LOS MODOS DE OPERACIN DE UN DBMS. (ALTA, BAJA, RECOVERY)

Referencias
Base de Datos Oracle 10g Taller de Administracin I Volumen I Gua del Alumno Edicin 3.0

Oracle 11g Curso Prctico Teaching Soft Group Alfaomega Ra-Ma

http://www.oracle.com http://docs.oracle.com/cd/B10501_01/appdev.920/a96624/ 07_errs.htm

Operacin y mantenibilidad
UNIDAD 4

También podría gustarte