Respaldar bases de datos MySQL automaticamente con Cron

Jueves, Septiembre 25th, 2008

Muchas veces es necesario generar respaldos de bases de datos MySQL sobre todo para evitar posibles contigencias. Ya mostramos anteriormente como se puede hacer esto por consola con MySQLDump y ahora mostraremos como automatizar esta tarea en un servidor mediante cron.

Para esto en el blog de UnadeCodigo nos presentan un script bash que realiza la tarea de respaldar todas las bases de datos que existen en el servidor.

El código es el siguiente:

#!/bin/bash

# Ruta en la que se guarda el log de la operacion de backup.
logfile=”/path/to/mysql.log”

# Ruta en la que guardar los backups
backup_dir=”/path/to/saved/mysql”

# Usuario
username=”<nombre_usuario>”
password=”<password_de_acceso>”

# Creamos un nuevo log del proceso de backup
rm -rf $logfile
touch $logfile

# Mediante esta instruccion, generamos un nombre de fichero con el dia y la hora del proceso de backup.
timeslot=’date +%Y%m%d_%H%M’

cd $backup_dir

# Iteramos a traves de la lista de bases de datos a la que el usuario tiene acceso.
for BBDD in $( mysql -u $username –password=$password -h localhost -Bse ’show databases’ ); do
echo “Creando copia de seguridad de $BBDD”

# Volcamos la base de datos en un fichero temporal
mysqldump –user=$username –password=$password $BBDD > datos.sql

# Y lo comprimimos en un tar.bz2 para ocupar lo mínimo. Util en bases de datos grandes.
tar cvjf mysql-$BBDD-$timeslot.tar.bz2 *.sql

# El nombre del fichero resultante contiene el nombre de la base de datos y la fecha de la copia.
# De esta manera, cuando sea necesaria su restauracion sera mas sencillo de localizar.

echo “Backup completo en la base de datos: $BBDD (mysql-$BBDD-$timeslot.tar.bz2)” >> $logfile

# Borramos el fichero temporal
rm datos.sql
done

#————————————————-
# Finalmente podemos enviar un email con el log de acciones para tener controlado el proceso de copia
#
cat $logfile|mail -s “Proceso Backup $HOSTNAME = MySQL” <direccion_email_de_control>

(more…)

Eliminar todas las tablas de una base de datos MySQL

Lunes, Marzo 31st, 2008

Los que utilizamos MySQL en algún momento nos habremos topado con que queremos eliminar todas las tablas de nuestra base de datos, sin embargo MySQL no cuenta con un comando DROP ALL TABLES por lo que para eliminar las tablas tenemos que hacer un DROP TABLE y especificar los nombres de todas nuestras tablas que queremos eliminar. Hacer esto en un entorno gráfico realmente es algo sencillo pero ¿qué pasa cuando no tenemos acceso a un entorno gráfico (sobre todo si manejamos servidores remotos) y tenemos una base de datos con gran cantidad de tablas?

Pues bien un truco que me encontré en la página de MySQL y que funciona a la perfección es el siguiente:

Exportamos la base de datos únicamente con la sentencia drop table para cada tabla contenida en nuestra bd:

mysqldump nombrebd –add-drop-table –no-data > droptablesbd.sql

y luego importamos el archivo:

mysql nombrebd < droptablesbd.sql

Como ven es una tarea sencilla y que nos puede servir en cualquier momento sobre todo para los que trabajan con bases de datos que contienen muchas tablas.

También te puede interesar:

Sistemas de Almacenamiento de MySQL

Martes, Enero 22nd, 2008

Si eres usuario de MySQL o apenas comienzas a utilizarlo un punto importante a entender son los diferentes sistemas de almacenamiento que podemos encontrarnos en este sistema administrador de bases de datos. Entre estos estan:

  • MyISAM
  • HEAP
  • Archive
  • Merge
  • InnoDB
  • NDB

En Software Projects han realizado un artículo muy interesante explicando cada uno de esos sistemas de almacenamiento incluyendo ejemplos y notas importantes sobre cada sistema.

Sistemas de Almacenamiento de MySQL

El artículo esta en ingles pero es entendible si conocemos al menos un poco de este lenguaje o bien podemos utilizar la herramienta de traducción de google.

Enlace: MySQL Storage Engines

Tambien te puede interesar:

Sun Compra MySQL

Jueves, Enero 17th, 2008

MySQLSin duda esta es la nota de la semana y es que los de Sun han dado a conocer que compran el famoso motor open source  de bases de datos MySQL.

La transferencia fue por nada mas y nada menos que por $1000 Millones de dolares una cantidad para nada despreciable. Para el que no sepa Sun es la compañía que esta detrás de Java y Solaris por lo que debemos esperar a futuro cambios que esperemos sean para bien sobre esta excelente base de datos.

Pueden ver mas detalles de la transferencia en el blog de sun.

Lo vi primero en MicroSiervos 

Convertir Access a MySQL

Jueves, Enero 10th, 2008

Access es una buena base de datos para cosas muy sencillas pero cuando ya va creciendo es necesario pasar esa base de datos a otra mas robusta. La mas utilizada por ser gratuita es MySQL una excelente base de datos utilizada por grandes proyectos y la cual recomiendo ampliamente. Pues bien si estas buscando como convertir una base de datos de access a MySQL te presento esta herramienta gratuita creada por BullZip.

Access a MySQL

Access To MySQL te permite convertir una base de datos de access a MySQL, entre sus características estan:

  • Asistente de importación
  • Transferencia de un servidor a otro.
  • Crear ficheros Dump
  • Permite seleccionar las tablas a convertir.
  • Permite seleccionar campos a convertir.
  • Convierte bases de datos protegidas.
  • Fácil de instalar, desinstalar y actualizar.
  • Entre otras…

Enlace: Access To MySQL

Utilizar expresiones regulares con MySQL

Jueves, Agosto 2nd, 2007

Ya que estamos con el tema de MySQL, Andres Nieto hace un artículo bastante interesante sobre el uso de las expresiones regulares en consultas de MySQL.

Las expresiones regulares son un poco tediosas pero sin duda nos pueden ahorrar varios dolores de cabeza una ves que las sepamos implementar. Poco a poco voy aprendiendo muchas cosas nuevas de MySQL jeje siempre es recomendable leer la documentacion :P para poder exprimirlo del todo.

Enlace: Usando expresiones regulares con MySQL

Posts Relacionados:



Tu banner aquí

Recibir Artículos Por Email