martes, 23 de abril de 2013

modos de operacion 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

No hay comentarios:

Publicar un comentario