J'ai un fichier SQL de sauvegarde de 250 Mo mais la limite sur le nouvel hébergement n'est que de 100 Mo ...
Existe-t-il un programme qui vous permet de diviser un fichier SQL en plusieurs fichiers SQL?
Il semble que les gens répondent à la mauvaise question ... alors je vais clarifier davantage:
Je n'ai que le fichier de 250 Mo et je n'ai que le nouvel hébergement utilisant phpMyAdmin qui n'a actuellement aucune donnée dans la base de données. J'ai besoin de prendre le fichier de 250 Mo et de le télécharger sur le nouvel hôte, mais il y a une limite de taille de téléchargement de fichier de sauvegarde SQL de 100 Mo. J'ai simplement besoin de prendre un fichier trop volumineux et de le diviser en plusieurs fichiers contenant chacun uniquement des instructions SQL valides (aucune instruction ne peut être divisée entre deux fichiers).
Réponses:
De Comment diviser la sortie de mysqldump en fichiers plus petits?
la source
Le moyen le plus simple de diviser le fichier de sauvegarde consiste à utiliser un logiciel
sqldumpsplitter
qui vous permet de diviser le fichier db en plusieurs fichiers db. Téléchargez iciOu bien utilisez cette commande de terminal.
Ici, 600 est le nombre de lignes que vous souhaitez avoir dans vos fichiers fractionnés. Et les deux arguments sont respectivement la source et la destination des fichiers.
REMARQUE: vous devez vérifier les fichiers divisés, vous ne divisez aucune commande.
la source
split
je recommande d'utilisercsplit
. Il ne se divisera pas juste après un certain numéro de ligne, qui pourrait être entre une liste deINSERT
valeurs par exemple. Vous pouvez passer une expression régulière pour identifier les lignes à diviser. Utilisez-le de la manière suivante, par exemple : `csplit -k dump.sql '/ ^ CREATE TABLE. * /' '{900}' 'Cela divisera votre fichier de vidage avant chaquecreate table …
instruction. Modifiez cela selon vos besoins. (Au fait, je passe{900}
au lieu de{*}
car j'obtiens une erreur "csplit: *}: mauvais nombre de répétitions" , peut-être juste un problème sur MacOS?)J'ai écrit mysqldumpsplitter (script shell), qui divise les bases de données / tables comme indiqué de manière simple et rapide. Voir tous les cas d'utilisation possibles de comment extraire de mysqldump .
la source
Ce code fera exactement ce que vous voulez (et c'est open source):
https://web.archive.org/web/20160313044916/http://rodo.nl/index.php?page=mysql-splitter
Il vous permet de diviser n'importe quel fichier SQL en plusieurs fichiers plus petits (vous pouvez définir la taille maximale). La syntaxe SQL sera conservée correctement et elle fonctionne avec la syntaxe de requête «insertion multiple».
J'espère que cela t'aides!
la source
1) Avez-vous la possibilité de télécharger le fichier par une autre méthode, par exemple: scp ou ftp, puis de le restaurer à partir du fichier local?
2) Votre FAI prendra-t-il le fichier sur CD et le chargera-t-il pour vous?
3) Pouvez-vous restaurer le fichier sur un serveur local, puis créer une série de fichiers de sauvegarde à partir de celui-ci en utilisant des critères spécifiques pour réduire les tailles individuelles?
4) Vous pourriez diviser le fichier manuellement puis ranger les commandes SQL à la fin des fichiers?
la source
4 was my first thought, but I can't even open the large file in notepad or any editor
- Notepad ++ peut les gérer correctement . sinon regardez superuser.com/questions/34749/…Vous pouvez fractionner un gros fichier dans Eclipse. J'ai essayé avec succès un fichier de 105 Go dans Windows:
Ajoutez simplement la bibliothèque MySQLDumpSplitter à votre projet: http://dl.bintray.com/verace/MySQLDumpSplitter/jar/
Note rapide sur la façon d'importer:
la source
J'ai également eu ce problème et j'ai décidé de coder un morceau de code extrêmement efficace en mémoire et en processeur qui divise un seul fichier .sql en plusieurs (un par table).
J'ai dû l'écrire car toute autre solution que j'ai trouvée ne fonctionnait pas assez bien. Sur un vrai vidage de 16 Go, j'ai réussi à le diviser en moins de 2 minutes.
Le code et les instructions sont disponibles sur la page du projet sur github
la source
Il y a quelques options si vous pouvez exécuter un script bash ou perl. Essayez celui-ci de yoodey.com
la source
Au lieu de diviser le fichier, vous pouvez utiliser un client MySQL sur votre machine locale et le connecter à la base de données MySQL distante. J'utilise HeidiSQL et je l' ai trouvé très bon.
Bien sûr, l'envoi des 250 Mo d'instructions SQL sur Internet peut prendre un certain temps.
Vous pouvez également essayer BigDump
la source