Barra de progreso al importar o exportar en MySQL

Es muy común importar o exportar una base de datos desde la línea de comandos:

# Exportar una base de datos
mysqldump -u usuario -p nombre_db > db.sql

# Importar una base de datos
mysql -u usuario -p nombre_db < db.sql

Pero muchas veces la DB es tan pesada que toma demasiado tiempo y uno se vuelve un poco paranoico por saber si todo va bien o si falta mucho para que termine. Esta última pregunta se puede responder gracias al comando Pipe-Viewer  pv.

IMPORTAR

624x162xpipe-viewer.png.pagespeed.ic.c86gBrOMth
Gracias a ToTheNew.com por la imagen
pv db.sql | mysql -u usuario -p nombre_db

EXORTAR

Este toma un paso extra, ya que debemos estimar el tamaño de la base de datos para que pv pueda saber el progreso real.

SELECT table_schema AS "Database", ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS "Size (MB)" FROM information_schema.TABLES GROUP BY table_schema;

Esto nos retornará el tamaño en MB. Tomando ese valor, ya podemos ejecutar pv. Supongamos que pesa 500MB.

mysqldump -u usuario -p nombre_db | pv -s 500M > db.sql

FUENTES

http://dubbs.github.io/blog/2013/09/05/mysql-import-slash-export-progress-bar/

http://stackoverflow.com/questions/4852933/is-there-a-way-to-have-mysqldump-progress-bar-which-shows-the-users-the-status-o

Deja un comentario (puedes utilizar Markdown)