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 [email protected] -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, [email protected] http://sebastien.dinot.free.fr/ Ne goûtez pas au logiciel libre, vous ne pourriez plus vous en passer !

