Ads 468x60px

viernes, 26 de abril de 2013

Realiza Respaldos En Caliente Con MySQLHotCopy

Realiza Respaldos En Caliente Con MySQLHotCopy


Una de las facilidades que otorga la base de datos MySQL es la capacidad de realizar respaldos sin necesidad de detener o apagar el motor de base de datos. Los respaldos en caliente (hot copy) de MySQL no requieren ningun cambio opcional al motor - Como ocurre con Oracle donde la BD ha de estar en modo Archivelog para poder realizar copias en caliente -.

Aqui la tarea es mas simple, MySQL hace uso del script perl mysqlhotcopy, un script desarrollado por Tim Bunce.  La manera de funcionar del script es dando uso de LOCK TABLES por cada tabla a respaldar, es decir si quieres respaldar un database que posee 50 tablas, el script en su momento de ejecucion va haciendo un LOCK en cada fila y columna que va respaldando, una vez respaldada una fila y columna procede a hacerle un UNLOCK y bloquea la siguiente fila o columna que va a respaldar.

Realiza Respaldos En Caliente Con MySQLHotCopy
mysqlhotcopy solo funciona sobre tablas MyIsam. Y la manera de ejecutarlo es con el siguiente comando:

shell> mysqlhotcopy nombre_de_base_de_datos [/ruta/al/nuevo_directorio]
shell> mysqlhotcopy nombre_de_base_de_datos_1 ... nombre_de_base_de_datos_n /ruta/al/nuevo_directorio

mysqlhotcopy soporta los siguientes parametros:
  • --help, -?
    Muestra un mensaje de ayuda y sale.
  • --allowold
    No aborta si el objetivo ya existe (lo renombra añadiendo un sufijo _old ).
  • --checkpoint=nombre_de_base_de_datos.nombre_de_tabla
    Inserta puntos de referencia en la base de datos nombre_de_base_de_datos y en la tabla nombre_de_tabla.
  • --debug
    Activa la opción de depuración.
  • --dryrun, -n
    Reporta acciones sin ejecutarlas realmente.
  • --flushlog
    Vuelca logs tras bloquear todas las tablas.
  • --keepold
    No borra objetivos previos (renombrados) cuando acaba.
  • --method=#
    Método para copiar (cp o scp).
  • --noindices
    No incluye los índices en la copia de seguridad. Esto hace que la copia de seguridad sea más inteligente y rápida. Los índices pueden reconstruirse posteriormente con myisamchk -rq.
  • --password=contraseña, -pcontraseña
    La contraseña a usar al conectar con el servidor. Tenga en cuenta que el valor de la contraseña no es opcional para esta opción, no como con otros programas MySQL.
  • --port=número_de_puerto, -P número_de_puerto
    El puerto TCP/IP a usar cuando se conecta el servidor local.
  • --quiet, -q
    Es silencioso excepto para errores.
  • --regexp=expresión_regular
    Copia todas las bases de datos con nombres que cumplan la expresión regular dada.
  • --socket=ruta, -S ruta
    El fichero socket Unix a usar para la conexión.
  • --suffix=cadena
    El sufijo para nombres de bases de datos copiadas.
  • --tmpdir=ruta
    Directorio temporal (en lugar de /tmp).
  • --triggers
    Vuelca disparadores para cada tabla volcada. Esta opción está activada por defecto; desactívela con --skip-triggers. Esta opción se añadió en MySQL 5.0.11. Antes de esta versión, los disparadores no se vuelcan.
  • --user=nombre_de_usuario, -u nombre_de_usuario
    El nombre de usuario MySQL a usar cuando se conecta al servidor.
Recuerda, que para poder realizar estas copias de seguridad el usuario en cuestion debe tener privilegios de SELECT y RELOAD en las tablas que quieres respaldar.

No hay comentarios:

Publicar un comentario