AOWS

Just another adrian’s weblog

Backups con mysqldump

with one comment

Una herramienta muy interesante en el lado cliente de MySQL es mysqldump, la cual nos servirá para realizar backups de nuestras bases de datos pudiendo exportarlas, por ejemplo, a un fichero de texto. Este archivo contendrá la estructura de las tablas y su contenido en sentencias sql listas para ser ejecutadas.

El primer paso es el logueo. En nuestro caso lo haremos a través de un script por lo que tendremos que indicar el password:

$ mysqldump -u usuario -ppassword [OTROS COMANDOS]

Nota: entre la opción -p y el password no hay ningún espacio.

Para hacer el volcado de una base de datos, simplemente indicamos su nombre. A nosotros nos interesará además guardarlo en un fichero.

$ mysqldump basededatos > fichero

También podemos indicar unas tablas concretas si no queremos hacer un volcado completo:

$ mysqldump basededatos tabla1 tabla2 tabla3

Puede resultar interesante añadir directivas DROP TABLE, para facilitar la recuperación desde el backup. Esto significa que el fichero resultante al ser ejecutado en el servidor MySQL borrará las tablas a crear si ya existen. Si no hacemos esto, tendremos que borrarlas nosotros mismos a mano.

$ mysqldump –add-drop-table

Más cómodo es utilizar grupos de opciones, como puede ser:

$ mysqldump –opt

que sería equivalente a:

$ mysqldump –add-drop-table –add-locks –create-options –disable-keys –extended-insert –lock-tables –quick –set-charset

Por cierto, --opt viene activado por defecto.

El script final

Una vez vistas las opciones más comunes de mysqldump, ¿qué pasa con nuestro script?


#!/bin/bash
suffix = $(date +%y%m%d)
mkdir /home/aotero/backups/$suffix

mkdir mysql
mysqldump --opt -uusuario -ppassword -h host basededatos > mysql/basededatos.$suffix.sql
tar -zcf /home/aotero/backups/$suffix/basededatos.$suffix.tar.gz mysql/*
rm -rf mysql

Sólo nos resta añadirlo como trabajo al cron y diariamente (por ejemplo) tendremos un nuevo directorio con el backup de nuestra base de datos. Podemos repetir los 4 últimos comandos por cada base de datos que queramos volcar, de forma que tengamos toda nuestra información a salvo.

Basado en el artículo Making backups using mysqldump. Mucha más información en el manual de referencia.

Written by adrian

22 agosto, 2007 a 17:46

Publicado en Posts

Tagged with , ,

Una respuesta

Subscribe to comments with RSS.

  1. […] imaginemos que queremos ejecutar un script para hacer backup de nuestra BD todos los días en la madrugada para que los usuarios no noten ninguna disminución del rendimiento […]

    Cron » AOWS

    5 septiembre, 2007 at 19:23


Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: