Modos de operación de un SGBD

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. Los Rollbacks son importantes para la integridad de la base de datos, a causa de que significan que la base de datos puede ser restaurada a una copia limpia incluso después de que se han realizado operaciones erróneas.
 
Commit:  En el contexto de la Ciencia de la computación y la gestión de datos, 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.
 
Recovery: El Modo de Recuperación, también conocido como Modelo de Recuperación ó Modo de Registro, es una opción de configuración de base de datos que indica cómo se gestiona el uso del LOG de Transacciones de SQL Server para dicha base de datos (esta opción se configura para cada base de datos de forma independiente).
 
 Como realizar estas operaciones en MySQL

1) Creamos una tabla

mysql> CREATE TABLE innotest (campo INT NOT NULL PRIMARY KEY) TYPE = InnoDB;
Query OK, 0 rows affected (0.10 sec)

mysql> INSERT INTO innotest VALUES(1);
Query OK, 1 row affected (0.08 sec)

mysql> INSERT INTO innotest VALUES(2);
Query OK, 1 row affected (0.01 sec)

mysql> INSERT INTO innotest VALUES(3);
Query OK, 1 row affected (0.04 sec)

mysql> SELECT * FROM innotest;
+-------+
| campo |
+-------+
|     1     |
|     2     |
|     3     |
+-------+
3 rows in set (0.00 sec)



2) Ahora realizamos una transacción


mysql> BEGIN;
Query OK, 0 rows affected (0.01 sec)

mysql> INSERT INTO innotest VALUES(4);
Query OK, 1 row affected (0.00 sec)

mysql> SELECT * FROM innotest;
+-------+
| campo |
+-------+
|     1     |
|     2     |
|     3     |
|     4     |
+-------+
4 rows in set (0.00 sec)


Si aplicamos el Rollback los cambios no tendran efecto:

mysql> ROLLBACK;
Query OK, 0 rows affected (0.06 sec)

mysql> SELECT * FROM innotest;
+-------+
| campo |
+-------+
|     1     |
|     2     |
|     3     |
+-------+
3 rows in set (0.00 sec)


3) Si hacemos una operación commit por lo contrario, los cambios se realizaran:

mysql> BEGIN;
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO innotest VALUES(4);
Query OK, 1 row affected (0.00 sec)

mysql> COMMIT;
Query OK, 0 rows affected (0.02 sec)


mysql> SELECT * FROM innotest;
+-------+
| campo |
+-------+
|     1     |
|     2     |
|     3     |
|     4     |
+-------+
4 rows in set (0.00 sec)


Como hacer el recovery:

Backup:mysqldump –host IP_DEL_SERVER –user USUARIO –opt DATABASE -p > BACKUP_NAME(La opción –opt optimiza el proceso de backup y es recomenado su uso)
Restore:
mysql –host IP_DEL_SERVER -u USUARIO -p DATABASE < BACKUP_NAME

Como realizar las operaciones en Oracle

1) Para realizar un rollback en Oracle se hace lo siguiente:

ij> autocommit off;
ij> INSERT INTO menu VALUES ('dessert', 'rhubarb pie', 4);
1 row inserted/updated/deleted
ij> SELECT * from menu;
COURSE    |ITEM                |PRICE
-----------------------------------------------
entree    |lamb chop           |14
dessert   |creme brulee        |7
appetizer |baby greens         |7
dessert   |rhubarb pie         |4

4 rows selected
ij> rollback;
ij> SELECT * FROM menu;
COURSE    |ITEM                |PRICE
-----------------------------------------------
entree    |lamb chop           |14
dessert   |creme brulee        |7
appetizer |baby greens         |7

3 rows selected


2) Para hacer un commit:

ij> DROP TABLE menu; 0 rows inserted/updated/deleted
ij> CREATE TABLE menu (course CHAR(10), item CHAR(20), price INT); 0 rows inserted/updated/deleted
ij> INSERT INTO menu VALUES ('entree', 'lamb chop', 14), ('dessert', 'creme brulee', 6), ('appetizer', 'baby greens', 7);
3 rows inserted/updated/deleted
ij> commit;
 
3) Para hacer un recovery

RMAN> run {
  set until time to_date('04-Aug-2004 00:00:00', 'DD-MON-YYYY HH24:MI:SS');
  restore database;
  recover database;
}

 
Fuentes:
 
 
 

No hay comentarios:

Publicar un comentario en la entrada