viernes, 14 de junio de 2013

#Extraer una sola tabla de respaldo MySQL

Esta sentencia es muy util para ahorrar tiempo, supongamos que tenemos un respaldo de una base de datos, y queremos extrar unicamente una tabla , con su información (inserts), para no tener que subir toda la base de datos. Ya sabemos que subir toda una base de datos y esta es muy grande, pues nos puede llevar horas, tengo una base de datos de 23GB y me a durado hasta 5horas haciendo el restore.

En este caso con el comando sed vamos a extraer el script y lo mandamos a otro archivo. Por terminal.

sed -n -e '/CREATE TABLE.*catalogo_tienda/,/CREATE TABLE/p' backup_basedatos.sql > catalogo_tienda.dump

Explicandolo poquito:
Busca en el respaldo(backup_basedatos.sql), la coincidencia "CREATE TABLE " y pues el nombre de la tabla es lo quese cambiara, "catalogo_tienda".

Luego ponemos el nombre del archivo del respaldo "backup_basedatos.sql"

Y por ultimo mandamos la salida a otro archivo que en el ejemplo es: catalogo_tienda.dump

El trabajo no termina aquí, tenemos que editar el archivo de salida (en mi caso con el editor vim).

vim catalogo_tienda.dump

Quitamos lo que este de mas, dado que puede encontrar otras coincidencias, como alguna otra tabla que se llame catalogo_tienda_foranea, quizas. Eliminas esos datos de mas del archivo y gravas y ya tienes el archivo final, para subirlo.

Paresen muchos pasos,pero ya que lo haces, te das cuenta que es sencillo y rapido. Claro que se puede  optimizar un poco mas el proceso, haciendo un script donde mandes de parametros, el nombre de la tabla  a buscar, el nombre del archivo del respaldo.

PD: En una chancita genero el script y dejo el codigo. 


No hay comentarios.:

Publicar un comentario