viernes, 4 de marzo de 2016

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

No hay comentarios:

Publicar un comentario