Como hacer una copia de seguridad de una base de datos


Introducción

Antes de nada, asegúrese que tiene a mano los códigos de acceso a su base de datos (los habrá recibido por email en el momento de la creación de la base o del alojamiento).

Nota : Si ha perdido los códigos de acceso de su alojamiento compartido, puede consultar nuestra guía de PerdidoEncontrado.


Existen varios modos de recuperar el contenido de una base de datos.

  • Mediante el Manager
  • Mediante phpMyAdmin
  • Mediante script
  • Mediante línea de comandos (SSH)

Esta guía los explica todos ellos.


Por el Manager

Para recuperar el contenido a través del espacio Manager, seleccione el alojamiento que desea de la lista desplegable.

Esta opción está disponible para todos los alojamientos compartidos con bases de datos (Start1g, Personal y superiores)

Haga click en la sección Alojamiento

Alojamiento

Encontrará la sección Gestión SQL en la rúbrica Bases de datos SQL

Gestión SQL

Encontrará la opción Copias de seguridad en el cuadro Gestión en línea

Copias de seguridad

Podrá seleccionar qué copia de su base de datos (actual, D-1, W-1) desea recuperar.

  • actual : La base de datos en el estado actual
  • copia D-1 : Copia de seguridad nocturna realizada el día anterior
  • copia W-1 : Copia de seguridad semanal realizada el domingo anterior


Recibirá un email con un enlace para la descarga.

Por PhpMyadmin

Entrar en phpMyadmin

Para entrar a su phpMyadmin, puede dirigirse a su espacio Manager, seleccionando el alojamiento que desea de la lista desplegable.

Haga click en la sección Alojamiento

Alojamiento

Encontrará la sección phpMyAdmin en en cuadro Gestión en línea

phpMyAdmin

Seleccione la base de datos que desea y entre en el phpMyadmin.
El phpMyadmin le solicitará la contraseña de la base de datos.

Realizar la copia en phpMyAdmin

Una vez dentro de phpMyadmin, haga click en el nombre de la base de datos - arriba del todo en la lista la izquierda.

Seleccione la pestaña Exportar. Aparecerá el cuadro con todas las opciones de la exportación.

Ajuste los parámetros :
- Marque la casilla Estructura y Datos
- Marque la casilla Transmitir

Pulse el botón Continuar.



Recibirá un fichero a través del navegador, con el contenido elegido.

Por script

Una vez que tiene los datos, puede editar el script con el código siguiente:


En los scripts siguientes, reemplace
  • nombre_de_la_base.sql por el nombre de su archivo,
  • servidor_sql por el nombre del servidor en el cual está instalado su base,
  • nombre_de_la_base por el nombre de su base de datos
  • contraseña por la contraseña asociada a su base


Script PHP (backupbase.php) :


<?
echo "Su base está siendo salvada.......";
system("mysqldump --host=servidor_sql --user=nombre_de_la_base --password=contraseña nombre_de_la_base > nombre_de_la_base.sql");
echo "Fin. Puede recuperar la base por FTP";
?>


Script PERL (backupbase.cgi) :


#!/usr/bin/perl

print "Su base está siendo salvada.......";
system("mysqldump --host=servidor_sql --user=nombre_de_la_base --password=contraseña nombre_de_la_base > nombre_de_la_base.sql");
print "Fin. Puede recuperar la base por FTP";


Este comando genera un archivo nombre_de_la_base.sql dentro del directorio donde esté ubicado el script.

En este archivo, encontrará todas las instrucciones SQL para volver a crear la base tal y como es durante la salvaguarda con el conjunto de sus datos.

Para ejecutarlo, introduzca en un navegador esta url : http://sudominio.com/ruta_del_script/backupbase.php


Proceso tabla por tabla

Si alguna vez su base llega a ser demasiado grande, puede hacer un dump "vaciado" tabla por tabla añadiendo la opción "--tables nombre_de_la_tabla" al final para tener este comando:


mysqldump --host=servidor_sql --user=nombre_de_la_base --password=contraseña --tables nombre_de_la_base nombre_de_la_tabla > nombre_de_la_base_-_nombre_de_la_tabla.sql


De esta manera tendrá un fichero SQL por cada tabla de la base de datos.

Ejemplo:

Script PHP :


<?
echo "Su base está siendo salvada.......";
system("mysqldump --host=sql3 --user=testbackup --password=RtPgDsmL --tables testbackup tabla01 > testbackup-tabla01.sql");
echo "Fin. Puede recuperar la base por FTP";
?>



Script PERL :


#!/usr/bin/perl

print "Su base está siendo salvada.......";
system("mysqldump --host=sql3 --user=testbackup --password=RtPgDsmL --tables testbackup tabla01 > testbackup-tabla01.sql");
print "Fin. Puede recuperar la base por FTP";





Compresión mediante Gzip

También puede comprimir este fichero para lo descargar mejor en su ordenador (por FTP o por la web).
Para comprimir el archivo, ejecute el comando gzip que creara por la extensión .sql.gz :


system("gzip nombre_de_la_base.sql");



_Ejemplo:

Script PHP :


<?
echo "Su base está siendo salvada.......";
system("mysqldump --host=sql3 --user=testbackup --password=RtPgDsmL testbackup > testbackup.sql");
echo "Compresión del archivo.....";
system("gzip testbackup.sql");
echo "Fin. Puede recuperar la base por FTP";
?>



Script PERL :


#!/usr/bin/perl

print "Su base está siendo salvada.......";
system("mysqldump --host=sql3 --user=testbackup --password=-+RtPgDsmL-+ testbackup > testbackup.sql");
print "Compresión del archivo.....";
system("gzip testbackup.sql");
print "Fin. Puede recuperar la base por FTP";




Por linea de comandos

Para los alojamientos Profesional y superiores, tiene la posibilidad de hacer directamente la salvaguarda por SSH.

Conéctese mediante SSH a su servidor FTP, después diríjase dentro del directorio elegido para almacenar la salvaguarda y ejecute el comando MYSQLDUMP:


$ mysqldump --host=servidor_sql --user=nombre_de_la_base --password=contraseña nombre_de_la_base > nombre_de_la_base.sql


Ejemplo:


$ mysqldump --host=sql3 --user=testbackup --password=RtPgDsmL testbackup > testbackup.sql




Proceso tabla por tabla

Si el proceso consume demasiados recursos, deberá ir tabla por tabla:


$ mysqldump --host=servidor_sql --user=nombre_de_la_base --password=contraseña --tables nombre_de_la_base nombre_de_la_tabla > nombre_de_la_base_-_nombre_de_la_tabla.sql


Ejemplo:

$ mysqldump --host=sql3 --user=testbackup --password=RtPgDsmL --tables testbackup tabla01 > testbackup-tabla01.sql



Compresión mediante Gzip

Para comprimir un fichero sql puede usar al final el comando gzip:

$ gzip nombre_fichero.sql



De este modo se crea el fichero con el mismo nombre y la extensión .sql.gz que ya está comprimido y listo para descargarse.

Ejemplo:

$ mysqldump --host=sql3 --user=testbackup --password=RtPgDsmL testbackup > testbackup.sql
$ gzip testbackup.sql


Nota : Recuerde que para restaurarlo deberá descomprimirlo antes, también mediante Gzip.



Más información
: BackupsDePlanSql :: Las copias de seguridad SQL
: SaveBasesMySQL :: ¿Como recuperar una copia de seguridad de mi base de datos?