Tengo un archivo SQL de respaldo de 250 MB, pero el límite en el nuevo alojamiento es de solo 100 MB ...
¿Hay algún programa que te permita dividir un archivo SQL en múltiples archivos SQL?
Parece que la gente está respondiendo la pregunta equivocada ... así que aclararé más:
SOLO tengo el archivo de 250 MB y solo tengo el nuevo alojamiento usando phpMyAdmin que actualmente no tiene datos en la base de datos. Necesito tomar el archivo de 250 MB y subirlo al nuevo host, pero hay un límite de tamaño de carga del archivo de copia de seguridad SQL de 100 MB. Simplemente necesito tomar un archivo que es demasiado grande y dividirlo en varios archivos, cada uno de los cuales contiene solo declaraciones SQL válidas (no se pueden dividir declaraciones entre dos archivos).
Respuestas:
De ¿Cómo dividir la salida de mysqldump en archivos más pequeños?
fuente
La manera más simple de dividir el archivo de respaldo es usar un software
sqldumpsplitter
, que le permite dividir el archivo db en múltiples archivos db. Descargar aquíO bien, use este comando de terminal.
Aquí, 600 es el número de líneas que desea tener en sus archivos divididos. Y los dos argumentos son el origen y el destino de los archivos, respectivamente.
NOTA: debe verificar los archivos divididos, no divide ningún comando.
fuente
split
, recomiendo usarcsplit
. No se dividirá justo después de un cierto número de línea, que podría estar entre una lista deINSERT
valores, por ejemplo. Puede pasar una expresión regular para identificar líneas para dividir. Úselo de la siguiente manera, por ejemplo : `csplit -k dump.sql '/ ^ CREATE TABLE. * /' '{900}'` Esto dividirá su archivo de volcado antes de cadacreate table …
instrucción. Cambia esto a tus necesidades. (Por cierto, paso en{900}
lugar de{*}
porque me sale un error "csplit: *}: mal recuento de repeticiones" , ¿tal vez solo un problema en MacOS?)Escribí mysqldumpsplitter (script de shell), que divide las bases de datos / tablas según las instrucciones de una manera rápida y fácil. Vea todos los casos de uso posibles de cómo extraer de mysqldump .
fuente
Este código hará exactamente lo que quieres (y es de código abierto):
https://web.archive.org/web/20160313044916/http://rodo.nl/index.php?page=mysql-splitter
Le permite dividir cualquier archivo SQL en varios archivos más pequeños (puede definir el tamaño máximo) La sintaxis SQL se mantendrá correcta y funciona con la sintaxis de consulta de 'inserción múltiple'.
¡Espero que esto ayude!
fuente
1) ¿Tiene la opción de cargar el archivo por otro método, por ejemplo: scp o ftp y luego restaurarlo desde el archivo local?
2) ¿Su ISP tomará el archivo en CD y lo cargará por usted?
3) ¿Puede restaurar el archivo en un servidor local y luego hacer una serie de archivos de copia de seguridad utilizando criterios específicos para mantener bajos los tamaños individuales?
4) ¿Podría dividir el archivo manualmente y luego ordenar los comandos SQL al final de los archivos?
fuente
4 was my first thought, but I can't even open the large file in notepad or any editor
- Notepad ++ puede manejarlos bien. mirada más en superuser.com/questions/34749/...Puede dividir un archivo grande en Eclipse. He intentado con éxito un archivo de 105 GB en Windows:
Simplemente agregue la biblioteca MySQLDumpSplitter a su proyecto: http://dl.bintray.com/verace/MySQLDumpSplitter/jar/
Nota rápida sobre cómo importar:
fuente
También tuve este problema y decidí codificar una pieza de código extremadamente eficiente en memoria y CPU que divide un solo archivo .sql en varios (uno por tabla).
Tuve que escribirlo ya que cualquier otra solución que encontré no funcionaba lo suficientemente bien. En un volcado real de 16GB logré dividirlo en menos de 2 minutos.
El código y las instrucciones están disponibles en la página del proyecto en github
fuente
Hay un par de opciones si puede ejecutar un script bash o perl. Prueba este de yoodey.com
fuente
En lugar de dividir el archivo, puede usar un cliente MySQL en su máquina local y conectarlo al DB MySQL remoto. Yo uso HeidiSQL y lo he encontrado muy bueno.
Por supuesto, puede llevar un tiempo enviar los 250 MB de declaraciones SQL a través de Internet.
También puedes probar BigDump
fuente