- investigar los conceptos de roolback, commit, recovery de un sgbd,
- investigar como se realizan dichas operaciones en mysql y oracle.
Rollback.-En tecnologías de base de datos, un rollback es una operación que devuelve a la base de datos a algún estado previo.
Commit.- Es el primer lenguaje de programación para la manipulación de cadenas y de reconocimiento de patrones. Se basa en la traducción automática de máquina, donde se pueden sustituir cadenas de símbolos por otras cadenas.
recovery de un sgbd.-
Los SGBD deben proporcionan instrumentos par evitar o remediar fallos. Ante cualquier tipo de fallo hay que asegurar que después de una actualización, la BD queda en estado consistente Un sistema de recuperación consiste en restaurar la BD a un estado que se sepa correcto, tras cualquier fallo que la haya dejado en un estado incorrecto o al menos sospechoso.
Un sistema de recuperación consiste en restaurar la BD a un estado que se
sepa correcto, tras cualquier fallo que la haya dejado en un estado incorrecto.
Recuperación de BD:
“devolver la BD a un estado consistente”
En Oracle hay recuperación automática ante fallos, el proceso varía
Recuperación Oracle
Ficheros Redo Log :
Ficheros de almacenamiento de cambios en la BD,
(Recovery).
Ficheros de Control:
Almacenan el estado de la estructura física de la BD.
Guían la recuperación.
Rollback Segments: Almacenan las últimas sentencias realizadas sobre la
BD. Saben cuándo se ha confirmado o no una transacción.
Backups de la BD:
Copias de Seguridad, (Restoring)
Almacenan el estado de la estructura física de la BD.
• Contienen:
Nombre de la BD
Localización de los ficheros de datos y redo log
Nombre de los Tablespaces
Número de secuencia de log actual
Log histórico
información de las copias de seguridad (backup)
etc.
Es necesario para montar, abrir y mantener la BD
Guían la recuperación. Sin este fichero la BD no podrá ser montada y la
• Se recomienda como mínimo dos ficheros de control en discos diferentes
Ejemplo:
recuperación sería dificultosa.
• Se recomienda como mínimo dos ficheros de control en discos diferentes
-
EJEMPLOS DE ROLLBACK Y COMMIT.
Comando de recuperación:
RECOVER [AUTOMATIC] [FROM ‘localizacion’][BD]
[ UNTIL CANCEL]
[UNTIL TIME fecha]
[UNTIL CHANGE entero]
[USING BACKUP CONTROLFILE]
Oracle
Commit
COMMIT [WORK] [COMMENT 'comment_text']
COMMIT [WORK] [FORCE 'force_text' [,int] ]
Si ejecutamos:
DELETE FROM T_PEDIDOS WHERE COD_PEDIDO=15;
COMMIT;+
Borrar un registro y guarda los cambios.
Ejemplo:
BEGIN
....
update alumnos set edad=20 where n_alumno=109;
update nuevos set apellido='perez' where n_alumno=200;
commit work;
...
EXCEPTION
WHEN OTHERS THEN
rollback work;
END;
Ejemplo:
BEGIN
....
update alumnos set edad=20 where n_alumno=109;
update nuevos set apellido='perez' where n_alumno=200;
commit work;
...
EXCEPTION
WHEN OTHERS THEN
rollback work;
END;
Rollback
ROLLBACK [WORK] [TO [SAVEPOINT]'savepoint_text_identifier'];
ROLLBACK [WORK] [FORCE 'force_text'];
Si ejecutamos:
DELETE FROM T_PEDIDOS WHERE COD_PEDIDO=15;
COMMIT;
Ejemplo:
create or replace procedure prueba (nfilas number)
as
begin
savepoint ninguna;
insert into tmp values ('primera fila');
savepoint una;
insert into tmp values ('segunda fila');
savepoint dos;
if nfilas=1 then
rollback to una;
else if nfilas=2 then
rollback to dos;
else
rollback to ninguna;
end if;
commit;
exception
when other then
rollback
end prueba;
as
begin
savepoint ninguna;
insert into tmp values ('primera fila');
savepoint una;
insert into tmp values ('segunda fila');
savepoint dos;
if nfilas=1 then
rollback to una;
else if nfilas=2 then
rollback to dos;
else
rollback to ninguna;
end if;
commit;
exception
when other then
rollback
end prueba;
Bibliografía
• Sistemas de gestion de Bases de Datos, Ramakrishnan, R., Gehrke, J.,
2007. (Capítulo 8)
• Fundamentos de sistemas de Bases de Datos, Elmasri, Ramez / Navathe,
Shamkant B. , 2007. (Capítulo 17)
• Fundamentos de Bases de Datos, 5ª Edicion. Silberschatz, Abraham;
Korth, Henry F. & Susarshan, S., 2006. (Capítulo 15 y 27)
• Oracle® Database Backup and Recovery Basics, 10g Release 2 (10.2)
http://download.oracle.com/docs/cd/B19306_01/backup.102/b14192/toc.
htm
No hay comentarios:
Publicar un comentario