sábado, 5 de marzo de 2016

Actividades finales

Realizar las siguientes actividades y hacer capturas de pantalla en un documento:
  1. Crear un usuario con permisos para dar mantenimiento a una base de datos
  2. Hacer el respaldo de la base de datos de tu proyecto
  3. OPCIONAL: Crear un trigger que después de insertar un registro en alguna tabla, actualice el valor de un campo de otra tabla
  4. Hacer la actualización del algún campo de una tabla que maneje el uso de transacciones

viernes, 4 de marzo de 2016

Transacciones

Desde MySQL Workbench:
https://www.youtube.com/watch?v=fRagI3qiMDk

Ejemplos: https://drive.google.com/drive/folders/0BzWLIzGSJ9SMNjFxV0RaVWJiOGs

Triggers

http://es.slideshare.net/galvis/ejemplo-de-triggers-en-mysql
http://www.hermosaprogramacion.com/2014/06/mysql-trigger/
http://www.mysqltutorial.org/create-the-first-trigger-in-mysql.aspx
Ejemplo:

Respaldo y restauración de BD

Desde MySQL Workbench: https://www.youtube.com/watch?v=i3j9PHNhbVk

Desde línea de comandos
La recuperabilidad significa que, si se da algún error en los datos, hay un bug de programa ó de hardware, el DBA (Administrador de base de datos) puede traer de vuelta la base de datos al tiempo y estado en que se encontraba en estado consistente antes de que el daño se causara. Las actividades de recuperación incluyen el hacer respaldos de la base de datos y almacenar esos respaldos de manera que se minimice el riesgo de daño o pérdida de los mismos, tales como hacer diversas copias en medios de almacenamiento removibles y almacenarlos fuera del área en antelación a un desastre anticipado. La recuperación es una de las tareas más importantes de los DBA’s.

Para hacer una copia de respaldo de una base de datos se recomienda crear un dump.
  • Para hacer un dump de todas las bases de datos es necesario ejecutar el comando:
mysqldump --user=****** --password=****** -A > /Ruta/Hacia/archivo_dump.SQL
  • Para hacer un dump de sólo algunas bases de datos es necesario ejecutar el comando:
mysqldump --user=****** --password=******  db_1 db_2 db_n> /Ruta/Hacia/archivo_dump.SQL
  • Para hacer un dump de todas las tablas de una base de datos es necesario ejecutar el comando:
mysqldump --user=****** --password=****** db > /Ruta/Hacia/archivo_dump.SQL
  • Para hacer un dump de sólo ciertas tablas de una base de datos es necesario ejecutar el comando:
mysqldump --user=****** --password=****** db --tablas tab1 tab2 > /Ruta/Hacia/archivo_dump.SQL
Para cada uno de estos comando es necesario indicar un usuario (user) y la contraseña (password) con derechos de administrador en la base de datos. 
Restauración
Para restaurar un dump tan sólo hay que ejecutar el comando: 
mysql --user=****** --password=****** db_nom < /Ruta/Hacia/archivo_dump.SQL

1.     <?php
2.     // Realiza el Backup de las bases de datos
3.     $bdd = “–all-databases”;
4.     $opt = “”;
5.      
6.     $backupFile = date(“Y-m-d-H-i-s”) . ‘.gz’;
7.     $command = “mysqldump –opt $opt $bdd | gzip > $backupFile”;
8.      
9.     exec($command, $salida);
10.    
11.   // Mantiene los ultimos 3 backups
12.   $days=3;
13.   $archivos = scandir(“./”);
14.   foreach ($archivos as $key => $val)
15.   {
16.   if(substr($val,-2) != “gz”)
17.   unset($archivos[$key]);
18.   }
19.    
20.   $i=count($archivos);
21.   foreach ($archivos as $key => $val)
22.   {
23.   if($i<=$days)
24.   break;
25.   unlink($val);
26.   $i–;
27.   }
28.   ?>
Es decir, para sacar un respaldo a tu base de datos usas el mysqldump:
Código PHP:
//
shell> mysqldump -u usuario [-p] nombreBase > respaldoBase.sql
// 
shell> mysqldump -u usuario [-p] nombreBase > /directorio/donde/guardas/respaldoBase.sql

Administración de usuarios y privilegios

Desde consola:

Desde MySQL Workbench