Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/06861.jsonl.gz/555

Etant donné que les tables de MySQL sont enregistrées sous la forme de fichiers, les sauvegardes sont très faciles à faire. Pour créer une sauvegarde cohérente, verrouillez les tables dont vous avez besoin avec
LOCK TABLES.
LOCK TABLES. Vous n'aurez besoin que d'un verrou de lecture, cequi permettra aux autres threads de continuer à interroger la base, tout en vous laissant le champs libre pour faire la copie des fichiers de la base. Si vous voulez faire une requête SQL pour sauver la table, utilisez donc
SELECT INTO OUTFILE.
Un autre moyen de faire des sauvegardes d'une base de données est d'utiliser l'utilitaire
mysqldump :
-
Sauvegarde complète des bases de données :
shell> mysqldump --tab=/path/to/some/dir --lock-tables --opt
Vous pouvez aussi simplement faire une copie de touts les fichiers de tables (``*.frm'', ``*.ISD'' et ``*.ISM''), tant que le serveur ne fait pas de modiication.
-
Stoppez le serveur
mysqld si il était lancé, puis relancez le avec l'option
--log-update. Vous allez obtenir des fichiers d'historique avec des noms du type ``nomDHote.n'', où
n est un nombre incrémenté à chaque fois que vous faites un
mysqladmin refresh ou
mysqladmin flush-logs, une commande
FLUSH LOGS statement, ou que vous redémarrez le serveur. Ces fichiers d'historiques fournissent les informations dont vous aurez besoin pour répliquer une base, ou la régénérer à partir de la sauvegarde faite avec
mysqldump.
Si vous devez reconstruire une base ou une table, essayer d'abord de récupérer vos tables avec
isamchk -r. Cet utilitaire fonctionne dans 99.9% des cas. Si
isamchk échoue, utilisez la procédure suivante :
-
Réinstallez la sauvegarde originale à partir de
mysqldump.
-
Lancez la commande suivante pour re excécuter les modifications à partir des fichiers d'historique
shell> ls -1 -t -r hostname.[0-9]* | xargs cat | mysql
ls est utilisé pour mettre les fichiers d'historiques dans le bon ordre.
Vous pouvez aussi effectuer des sauvegardes sélectives avec
SELECT * INTO OUTFILE 'nom_de_fichier' FROM nom_table et les recharger avec
LOAD DATA INFILE 'nom_de_fichier' REPLACE ... Pour éviter d'avoir des enregistrements en double, utilisez une colonne de type
PRIMARY KEY ou
UNIQUE dans la table. L'option
REPLACE forcera le remplacement des anciens enregistrements par les nouveaux, dès que l'on tentera de doubler une valeur de la clé unique.