[Dédié] Importer une base de 4 Go ?

  • Auteur de la discussion Auteur de la discussion mowmow
  • Date de début Date de début
WRInaute impliqué
Bonjour,

J'ai actuellement un problème qui concerne mon serveur dédié. J'ai uploadé 46 fichiers de 100 Mo chacun sur mon serveur, et j'essaie de les réunir via un script. Le problème est qu'il semble y avoir une limite de 2 Go sur les fichiers. Est-il possible de créer un fichier de 4 Go sur un serveur Kimsufi ? Sinon j'avais pensé à faire un script sous SSH qui utiliserais mysqldump et une concaténation des deux fichiers de 2 Go en même temps, mais je n'ai pas assez de connaissances pour faire ca, si quelqu'un a une idée :)

Merci d'avance pour votre aide.

[EDIT] Apparament Apache ne peut pas gérer plus les fichiers de plus de 2 147 483 647 octets, quelqu'un a une solution ?
 
WRInaute accro
Personnellement j'utilise le Webmin pour importer ou exporter des bases sans limite de quota.

Mais le webmin n'étant plus supporté par la dernière version de debian (4.0 - Etch) j'ai du fouiller pour trouver le paquet .deb (que je conserve précieusement sur 2 HD :D).

En gros je serais également intéressé par une alternative à Webmin pour importer et exporter mes bases de donnée en tout quiétude.

Webmin le fait mais peut-être plus pour très longtemps...
 
WRInaute impliqué
Bah en fait j'en suis même pas au niveau de l'exportation dans la base, parce qu'il semble y avoir une limite sur le disque même au niveau de la taille (limite de 2 Go !) donc je sais pas trop comment m'y prendre. Mon script arrête de réunir les fichiers une fois qu'il a atteint cette limite.
 
WRInaute occasionnel
Moi ce que j'ai fais, j'ai pris directement les fichiers sources. Je ne sais pas si ca marchera avec vous mais je vous explique comment je procède.
en ssh :
Code:
cd /var/lib/mysql (Dossier des fichiers sources des bdd (.MYI, .MYD, .frm, db.opt))
tar cvf mysql.tar * (Vous avez toutes vos bdd taré)

Vous reste plus qu'a up ca sur le nouveau serv dédié puis
Code:
cd /var/lib/mysql
tar xvf mysql.tar

Voilà, j'espère que ca fonctionnera pour vos grosses BDD ;)

EDIT
J'oubliais aussi, si vous bossez en root faut remettre mysql en owner et groupe :
Code:
cd /var/lib/mysql
chown -R mysql *
chgrp -R mysql *

EDIT 2
Je connais un pote bien calé en serveur dédié je vais lui demandé pour la limite ;)
 
WRInaute impliqué
Pourquoi Apache est mélé à ce traffic ? :lol:

Le mieux est d'utiliser MySQL en ligne de commande pour sauvegarder/restaurer des grosses tables.
Code:
mysql -u USERNAME -p DATABASE < FILE.sql
 
WRInaute impliqué
J'ai une limite de 2 giga, ma base en fait 4.6. Mon seul problème n'est pas l'upload, c'est la reconstruction du fichier à partir des fichiers découpés. Je cherche donc un truc du style en shell :
Code:
mysqldump < (concaténation de deux fichiers ou 3 fichiers de 1 Go)

La solution de prendre directement les fichiers sql revient au même, ca revient toujours à prendre le fichier de 4 Go :)

Pour ce qui est de mon script, oui j'ai une Internal Error 500 quand le fichier atteint 2 Go.
 
WRInaute impliqué
C'est ce que je fais ... Mais j'ai 46 fichiers de 100 Mo, une limite de 2 Go par fichier, et un seul fichier à faire. Fais le calcul, j'ai un problème :)

J'ai donc besoin d'une commande shell pour donner à mysqldump un fichier qui est une concaténation de deux autres de 2 Go.
 
WRInaute impliqué
un rapport avec un php mysql serait de faire un script qui ouvre tes fichiers un par un, qui lit bloc par bloc et qui execute via un mysql_query :)
 
WRInaute impliqué
Bonjour,
C'est bien sous linux / Unix ton OS ?

pour la concaténation l'instruction cat te sera utile

cat FICHIER1 FICHIER2 ... FICHIERn > gros_fichier

tu as aussi tac pour inverser la lecture des fichiers ou zcat pour décompresser les fichiers à la volée
 
WRInaute occasionnel
la commande shell pour concatener des fichiers sous linux c'est "cat" . donc :

Code:
cat fichier1 fichier2 > fichier3

mais il y aura toujours le probleme des 2Go que tu ne pourras pas depasser...
 
WRInaute impliqué
sinon, as tu essayé ceci ?
Code:
mysql -u USERNAME -p DATABASE < FILE4.sql < FILE3.sql < FILE2.sql < FILE1.sql
 
WRInaute impliqué
mais il y aura toujours le probleme des 2Go que tu ne pourras pas depasser...

Ca semble bizarre cette restriction sous linux, à moins qu'il a une vieille version de linux. De mémoire la dernière fois que j'ai vu cette restriction c'était sous redhat 9.

C'est clair qu'il y a des solutions, par exemple alimenter la base avec un fichier compressé avec zcat. avec un peu de chance le fichier compressé sera < 2Go.

ou encore utiliser dd avec cat et un pipe
cat fichier1 fichier2 | dd ...
 
WRInaute accro
Je dis peut-être une connerie, mais le ridicule ne tue pas (en tout cas, il n'a encore pas eu ma peau) : Un logiciel style MySQL-front ne vous suffirais pas ?
 
WRInaute impliqué
Leonick a dit:
une fois incorporé dans la bdd, si les fichiers de cette base de données dépassent les 2 Go, le problème sera le même
ca serait 2Go par table et peut être que ses data sont partitionnées dans pleins de tables ?
 
WRInaute passionné
je ne vois pas trop comment trouver une solution à un probleme dont on ne connait pas la cause exacte

normalement un simple scp fait tranquilement l'affaire

rog
 
WRInaute impliqué
Je viens de lire toutes vos réponses, je vais essayer demain, mais c'est vrai que j'avais complètement oublié le problème du fichier myd mysql, parce que même si j'arrive à importer la base je suis pas sûr que je puisse avoir une base de 4 Go étant donné que tout est stocké dans le même fichier... Le problème des 2 Go vient dans tous les cas d'apache qui gère pas les fichiers > 2 Go.
 
WRInaute impliqué
Avant même de pouvoir dumper il faut que je réunisse les fichiers en un seul, mais le fichier est trop gros pour apache.
 
WRInaute impliqué
mowmow a dit:
Avant même de pouvoir dumper il faut que je réunisse les fichiers en un seul, mais le fichier est trop gros pour apache.
Quel est le rapport avec Apache ?!?

Tes fichiers sont coupés comment (est-ce qu'une requete peut-être coupée en 2 ou un fichier se termine bien avec une requete complète) ?

Si les fichiers ne sont pas coupés n'importe comment, tu les restaure un par un et c'est bon.

Mais je ne vois pas du tout ce que viens faire Apache là-dedans, tout se passe en ligne de commande. Et tu envoies tes fichiers par FTP ...
 
Discussions similaires
Haut