- Investigar los conceptos de roolback, commit, recovery de un sgbd.
Commit (acción
de comprometer).- Se refiere a la idea de consignar un
conjunto de cambios "tentativos, o no permanentes". Un uso popular es
al final de una transacción de base de datos.
Una sentencia COMMIT en SQL finaliza
una transacción de base de datos dentro de un sistema gestor de base
de datos relacional (RDBMS) y pone visibles todos los cambios a otros usuarios.
Recovery.- Los
procesos de restauración (restore o recovery) de los que todo SGBD dispone
pueden reconstruir la BD y darle el estado consistente y correcto anterior al
incidente. Esto se acostumbra a hacer gracias a la obtención de copias
periódicas de los datos (se denominan copias de seguridad o back-up) y mediante
el mantenimiento continuo de un diario (log) donde el SGBD va anotando todas
las escrituras que se hacen en la BD.
2. Investigar
cómo se realizan dichas operaciones en mysql y oracle.
Rollback en mysql:
CREATE
TABLE AS SELECT emp_name employee_id, apellidos FROM Empleados;
CREAR empname_ix índice único en emp_name (employee_id);
CREATE TABLE AS SELECT emp_sal employee_id, sueldo de los
empleados;
CREAR empsal_ix índice único en emp_sal (employee_id);
CREATE
TABLE AS SELECT emp_job employee_id, job_id DESDE empleados;
CREAR empjobid_ix índice único en emp_job (employee_id);
DECLARAR
NÚMERO emp_id
(6);
emp_lastname
VARCHAR2 (25);
NÚMERO
emp_salary (8,2);
emp_jobid
VARCHAR2 (10);
COMENZAR
SELECT
employee_id, apellidos, salario, job_id EN emp_id, emp_lastname,
emp_salary,
emp_jobid DESDE empleados DONDE employee_id = 120;
INSERT INTO VALORES emp_name
(emp_id, emp_lastname);
INSERT INTO VALORES emp_sal (emp_id,
emp_salary);
INSERT INTO VALORES emp_job (emp_id,
emp_jobid);
EXCEPCIÓN
CUANDO ENTONCES
DUP_VAL_ON_INDEX
ROLLBACK;
DBMS_OUTPUT.PUT_LINE ('Inserta han
revertido');
END;
Rollback en Oracle:
begin
.----
----
savepoint inicio;
---
insert...
update ...
delete ...
...
rollback to savepoint inicio
.----
----
savepoint inicio;
---
insert...
update ...
delete ...
...
rollback to savepoint inicio
Commit
en mysql:
Crear cuentas (NÚMERO DE MESA account_id (6), NÚMERO
balance (10,2));
INSERT INTO VALORES cuentas (7715, 6350,00);
INSERT INTO VALORES cuentas (7720, 5100,50);
DECLARAR
la transferencia
del número (8,2): = 250;
COMENZAR
Actualizar las
cuentas de saldo = saldo SET - transferir DONDE account_id = 7715;
Cuentas UPDATE
SET saldo = saldo + transferencia DONDE account_id = 7720;
COMMIT 'Traslado
Desde 7715 hasta 7720 "Comentario Escriba NOWAIT inmediata;
END;
/
Commit
en Oracle:
Libera
los recursos bloqueados por cualquier actualización hecha con la transacción actual.
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.
Recovery en msql:
1. Primero abrimos una ventana de comandos de Windows
(menuInicio =>Ejecutar=> cmd).
2. Ya abierta
dicha ventana nos situamos en la carpeta de los binarios de mySQL,
pues ahí se encuentra el ejecutable de mysqldump, la cual
se encuentra en la
carpeta bin del directorio de instalación
("c:\Archivos de programa\MySQL\MySQL Server 5.1\bin").
3. A continuación
ejecutamos el programa mysqldump con las opciones que mas
nos convengan.
mysqldump --opt -a
--single-transaction -h localhost -u root -pmiServer --databases
bdd_practica1 >
c:\Users\G10\backup_bdd_practica1.sql
Recovery en Oracle:
SQL> startup
mount;
SQL> recover
automatic database;
SQL> alter
database open;
No hay comentarios:
Publicar un comentario