[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Comment transferer des DB d'un serveur a un autre



Bonjour a tous


Merci pour vos reponses :)

@Bernard: Non je ne peux pas changer de DB et passer sous postgesql. Cela me demanderai trop de travail

@ajh-valmer: j'utilise beaucoup phpmyadmin mais je n'ai jamais trouve comment faire cela.
En regardant ce matin, je viens de vois qu'il y a un onglet "Replication", est ce a cela que tu penses?

@no way: Mon archi est assez simple, j'ai un serveur dedie sous strech qui heberge des sites internet, chacun ayant sa DB
Certains de ces DB contiennent 300/400 tables et certaines tables contiennnent plusieurs million d'enregistrements
J'envisage de changer de serveur mais vu le volume des donnees, je cherche une solution pour transferer toutes les DB en une seule fois.

@Ph. Gras: je l'utilse beaucoup, c'est tres pratique phpmyadmin. Par contre a la derniere tentative d'un mysqldump, j'ai eu quelques mauvaises surprises.
surement des problemes de formats comme tu le dis. Dans mon cas c'est un peu ingerable car je ne connais pas reellement le contenu des DB car un utilisateur peut tres bien utiliser un caractere que j'utilise comme delimiteur dans un champs de la DB. De ce fait le mysqldump devient un peu complique , voir tres complique

@G2PC: merci, je garde ca sous le coude, meme si je connais, c'est un bon aide memoire ;-)

@Sébastien Dinot: Ce que je considere comme grosse DB, ce sont des DB qui quand je fais un mysqldump j'obtient un fichier qui fait entre 1 et 2 Go
Je n'ai pas de referentiel pour savoir si c'est de grosse DB ou pas... mais pour moi c'est deja enorme ;-)


Je vais me pencher sur l'idee du tunnel ssh sans passer par un fichier intermediaire ou avec redirection de la sortie de mysqldump.
Et sur la "replication" dans le phpmyadmin.


Je vous tiens au courant, et je suis toujours ouvert de nouvelles suggestions.


Merci pour votre aide
Cordialement
Hugues




Le ven. 23 nov. 2018 à 22:32, Sébastien Dinot <sebastien.dinot@free.fr> a écrit :
Hugues MORIN a écrit :
> Je cherche une solution pour transferer plusieurs grosses bases de
> donnees d'un serveur a un autre.

Je ne sais pas ce qu'est une « grosse » base de données. Plusieurs
millions d'enregistrements, cela ne réclame pas forcément beaucoup de
place.

> Je connais la solution du mysqldump mais quand il y a autant de
> donnees, ce n'ai pas tres efficient. Lors de la derniere utilisation
> de ce procede sur une grosse DB, j'ai perdu des donnees et j'ai galere
> a les reconstituer.

C'est donc que le moteur utilisé n'était pas transactionnel. Dommage.

> Est ce que vous avez ete deja confronter a ce genre de travail? Quelle
> solutin avez vous retenu?

Je n'ai jamais été confronté à ce besoin, mais si j'avais à le faire,
pour ne pas exposer les bases, j'opterais sans doute pour un tunnel
SSH :

ssh -f -L 1111:localhost:3306 user@remote.example.com -N

Ce faisant, le serveur MySQL distant devient accessible localement sur
le port 1111 :

mysql -h localhost -P 1111 database < database.sql

Et du coup, on peut même éviter le passage par un fichier
intermédiaire :

mysqldump -q -h localhost -P 3306 database | mysql -h localhost -P 1111 database

Sinon, pour gagner un peu de temps, tout en procédant de manière
classique, on peut rediriger la sortie de mysqldump vers une connexion
SSH afin d'éviter l'écriture intermédiaire des données sur le disque
local et de créer directement le fichier sur le serveur cible :

mysqldump -q database | ssh -C user@remote-server 'cat > database.sql'

> Suffit-il de copier le repertoire contenant la DB
> (/var/lib/mysql/nomdb dans mon cas) et redemarrer mysql pour que le
> transfert soit effectif?

Non, var il faut aussi dumper et recréer sur le serveur distant les
informations globales stockées dans la base nommée « mysql » :

mysqldump -q mysql > mysql.sql

Sébastien

--
Sébastien Dinot, sebastien.dinot@free.fr
http://sebastien.dinot.free.fr/
Ne goûtez pas au logiciel libre, vous ne pourriez plus vous en passer !


Reply to: