@Raphael : les max_allowed_packet pourrait créer des problèmes si il est trop petit ou si il est trop gros (ou les deux ?). Que recommanderais-tu ?
Je vais jeter un coup d'oeil aux produits Percona que je ne connais pas du tout.
J'ai essayé de faire un dump avec le mysqldump que tu m'as indiqué et ca n'a rien changé mais je comprends bien l'idée de la chose.
2010/12/10 Raphael Mazelier raph@futomaki.net
Et t'es pas capable de savoir quelles données sont manquantes en faisant
ne serait-ce qu'un COUNT(*) sur chacune des tables ?
Bref... http://www.maatkit.org/doc/maatkit.html et plus précisément http://www.maatkit.org/doc/mk-table-checksum.html
Si tu lis bien, l'outil peut même te sortir un diff avec les requetes SQL à réinjecter.
PS: Mon sentiment premier sur ton histoire est un soucis d'encodage qui pourri de ton dump (genre UTF8 d'un côté mais pas de l'autre). Le mieux pour sync 2 serveurs MySQL, ça reste quand même mysqlhotcopy...
Il y a plein de raison qui peuvent foirer un reimport d'un dump. Au
hasard les foreign keys, les triggers/prod stock, etc... Une parmi d'autre est le 'max_allowed_packet' de ton mysqldump.
Effectivement le meilleur moyen de synchroniser une base est mysqlhotcopy ou mieux son remplacant du coté de chez perconna : innobackupex et xtrabkup. Sinon une commande relativement safe pour un dump : mysqldump -u root -pXXXXX --add-drop-database --add-drop-table --all-databases --create-options --routines --disable-keys --lock-all-tables
ou : --single-transactions (mais j'ai eu des cas bizarres).
-- Raphael
Liste de diffusion du FRsAG http://www.frsag.org/