J'utilise xtrabackup de Percona pour faire une sauvegarde de mes bases de données en ligne. Existe-t-il un moyen de convertir les fichiers de base de données de sauvegarde en un dump SQL similaire à une sauvegarde créée à l'aide de mysqldump ?
Réponses
Trop de publicités?Malheureusement, la façon dont Percona exécute la procédure XtraBackup comprend l'exécution de quelque chose comme rsync contre un serveur de production en cours d'exécution et applique ensuite la récupération en cas de crash InnoDB contre un dossier tmp (le répertoire de sauvegarde) avec l'option de générer ib_logfile0 et ib_logfile1 qui peuvent être des remplacements immédiats pour ceux de la production. . Ces données sont juste une sauvegarde.
Si toutes vos données sont en InnoDB, vous feriez mieux de simplement faire un mysqldump contre la production en utilisant le paramètre --single-transaction. Encore mieux, vous pouvez faire des mysqldump parallèles de bases de données ou de tables intermédiaires en utilisant le paramètre --single-transaction sur chaque processus mysqldump. .
Voulez-vous dire qu'il prend une copie au niveau du fichier de /var/lib/mysql
(ou l'équivalent Windows) ?
Si c'est le cas, restaurez les fichiers quelque part et changez le répertoire de données MySQL à l'endroit où vous avez restauré /var/lib/mysql
à, par exemple, dans /etc/my.cnf
(ou l'équivalent Windows) :
datadir=/tmp/restore/var/lib/mysql
Ensuite, redémarrez MySQL et vous utiliserez vos bases de données récupérées que vous pouvez utiliser mysqldump
contre.
Si vous utilisez des tables InnoDB, vous devrez peut-être lisez ceci .