Deplacer une BDD d'un serveur A à un serveur B

14 réponses
AuteurMessage

krucial |
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 08/02/2012 à 06:48

Yop

Cette nuit j'ai voulu changer de serveur SQL.

J'ai donc coupé le site, fait un mysqldump sur l'ancien serveur, telechargé le fichier depuis l'ancien vers le nouveau, puis installé la base sur le nouveau serveur.

Le probleme, c'est que ca a pris un temps fou. J'ai commencé a minuit et à 3h30, c'etait toujours pas fini. Je me suis endormi en attendant, la session SSH a coupé, ca n'a pas été jusqu'au bout... Bref, faut recommencer la nuit prochaine

Qu'est ce que vous me conseillez comme technique pour gagner du temps ? Copier directement les fichiers de /var/lib/mysql ? Faire un mysql < mysqldump ?

Merci

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

thomas33 | Thomas
Membre

Photo de thomas33

Inscrit le : 08/05/2007

# Le 08/02/2012 à 09:08

Hello,
j'avais eu la même problématique sur une petite base de 500mo.
Un mysqldump c'est normalement assez rapide. Tu transfert ensuite par ssh et un mysql pour recharger le fichier.

Tu as une base de combien ?

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 08/02/2012 à 09:10

Conseils :
disque ssd
faire un essai avec une sauvegarde pour avoir une idée du temps à prévoir

Mais ta base doit etre enorme pour prendre autant de temps

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

llaume | Guillaume
Membre

 

Inscrit le : 27/01/2010

# Le 08/02/2012 à 10:04

Tu peux pas faire de la réplication, master SQL sur A et slave sur B, ensuite tu passes le slave en master ?

Salemioche | Nicolas
Membre

Photo de Salemioche

Inscrit le : 26/12/2008

# Le 08/02/2012 à 10:25

nouveau serveur :

cd /var/lib/
nc -l -p 3435 -w 30 | tar xz

ancien serveur
(stop site)
cd /var/lib/
tar cz ... | nc IP_nouveau_serveur 3435
(... bascule ip nouveau serveur)

bhamp0 | Benjamin
Membre

Photo de bhamp0

Inscrit le : 09/05/2005

# Le 08/02/2012 à 10:28

Pour éviter les problèmes de fin de session SSH : screen
Pour le dump : mysqldump, mysqldump avec option --quick, mysqlhotcopy (à voir)

Quand on voit c'qu'on voit, et qu'on entend c'qu'on entend, on a raison d'penser c'qu'on pense !

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 08/02/2012 à 10:46

La base fait 7Go, tous les disques sont SSD. Le dump prend pas mal de temps, le transfert en ssh (10M/s) dure 20 minutes (J'ai pas osé bzipper le fichier .sql, ca aurait pris un temps fou) et l'installation de la base a pris plusieurs heures.

Du coup, je me dis qu'une copie des fichiers /var/lib/mysql est peut etre la solution car je n'ai pas a faire la manip BDD -> fichier SQL et fichier SQL -> BDD.

Salemioche, je ne connais pas du tout nc, je vais regarder ça.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

devtribu | Olivier
Modérateur

Photo de devtribu

Inscrit le : 16/06/2005

# Le 08/02/2012 à 10:52

Bizarre
les bases de BT font plus de 30Go et ca va plus vite que ca (meme pour une copie sur le serveur de dev qui n'est pas en ssd)

tu dois avoir une mauvaise configuration sql
peut etre que les index se regenerent à chaque insert par exemple

Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0fOuvrir dans une nouvelle fenetre

MathieuC | Mathieu
Modérateur

Photo de MathieuC

Inscrit le : 15/07/2005

# Le 08/02/2012 à 11:03

Deja pour eviter que ton SSH coupe, tu fais d'abord "screen", ca t'ouvre un terminal non lié à ta connection SSH.
Dedans tu lance tes commandes, et quand tu veux te "détacher", tu fais CTRL a -> d (sans lacher controle, a puis d), ca te remet dans ton ssh normal avec ton terminal screen qui continue de bosser.
Tu te rebranche sur ton screen avec "screen -r".
Tu peux avoir plusieurs screen qui tournent si tu veux, etc.. c'est juste vital quand tu fais des operations sur un serveur.

Sinon, coté SQL, moi je fais une dump avec ca :
/usr/bin/mysqldump --flush-logs --add-drop-table --extended-insert --quick --delayed-insert --disable-keys -u [USER] -h [SERVEUR SQL] -p [PASSWORD] [NOM DE LA BASE] | gzip > /data/backup/[BDD]-backup-`date -I`.sql.gz
Ca t'evite le problème du recalcule des clés à chaque lot d'insert, si tu as une table avec 10 millions d'enregistrements, les insert vont se faire en paquets de genre 50 000 enregistrement, et dans ton cas il doit recalculer les index après chaque insert... avec le --disable-keys il ne le fera qu'une seule fois à la fin.

J'ai déjà transféré des BDD de plusieurs dizaines de Go, ca se passe très très bien. Sur SSD, je pense pas que tu doive mettre plus d'une heure dans ton cas.

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 08/02/2012 à 11:46

Ok je vais tenter ça Telaxo. Merci à toi.

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

Rano | Jean
Modérateur

Photo de Rano

Inscrit le : 13/04/2005

# Le 08/02/2012 à 12:14

Moi je laisse tout tourner, je fais un rsync à l'arrache pendant que ça tourne. Une fois terminé, je coupe mysql, je refais un rsync (ca permet d'avoir quelques tables qui ont pas changé, mais ça dépend du site). et je bascule sur le nouveau serveur. C'est gore, mais ça a toujours fonctionné et c'est rapide

Chambres d'hote tavelOuvrir dans une nouvelle fenetre
Séjours en provenceOuvrir dans une nouvelle fenetre
Forum mariageOuvrir dans une nouvelle fenetre

cerise | Gaël
Modérateur

Photo de cerise

Inscrit le : 31/10/2008

# Le 08/02/2012 à 12:27

Franchement, d'accord avec rano.
je fais ça depuis des années. Sinon, impossible de migrer des grosses bases avec MysqlDump. Même un forum, bonjour

Donc tu coupes mysql. Tu fais un rsync, ça prend quelques minutes. Si ta conf est la même sur l'autre serveur, il n'y a rien de plus à faire.

Et franchement, je le fais même sur des serveurs avec mysql qui continue de tourner, j'ai jamais rien cassé

krucial | Jean Christophe
Administrateur

Photo de krucial

Inscrit le : 09/03/2005

# Le 08/02/2012 à 12:30

Allez, je tenter le rsync je crois Merci a tous en tout cas pour vos retours d'experiences. J'aurais au moins appris screen

JC - Mes sitesOuvrir dans une nouvelle fenetre | Affiliation devis travauxOuvrir dans une nouvelle fenetre | Cotes voitures anciennesOuvrir dans une nouvelle fenetre

Bool | Olivier
Modérateur

Photo de Bool

Inscrit le : 09/05/2005

# Le 08/02/2012 à 14:14

Idem j'utilise rsync, et c'est seulement quand il y a de grosses différences (version de MySQL typiquement) que je joue avec mysqldump.

daevel : infogérance et conseilOuvrir dans une nouvelle fenetre || moiOuvrir dans une nouvelle fenetre

darkham | Adrien
Membre

Photo de darkham

Inscrit le : 11/05/2005

# Le 08/02/2012 à 19:41

idem rsync !!!

Widoox : http://www.widoox.frOuvrir dans une nouvelle fenetre

Répondre

Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.

© MHN - Tous droits réservés | CNIL N°844440 | 23/11/2024 17:41:02 | Généré en 7.56ms | Contacts | Mentions légales |