Maison > base de données > tutoriel mysql > le corps du texte

Comment récupérer des fichiers de données supprimés dans MySQL

Daniel James Reed
Libérer: 2024-04-14 19:33:50
original
1233 Les gens l'ont consulté

Lorsque le fichier de données MySQL est accidentellement supprimé, la méthode de récupération dépend de la situation : lorsque le journal binaire est activé, les instructions SQL peuvent être récupérées via la commande mysqlbinlog. Si une sauvegarde existe, vous pouvez utiliser des outils de récupération pour restaurer vos fichiers. S'il n'y a pas de sauvegarde, vous pouvez essayer d'utiliser le dictionnaire de données pour restaurer le fichier : interrogez la table innodb_table_stats pour obtenir les métadonnées. Copie l'en-tête du fichier .ibd supprimé et écrase l'en-tête du fichier .ibd du tablespace. Redémarrez le serveur MySQL pour recharger le fichier.

Comment récupérer des fichiers de données supprimés dans MySQL

Comment récupérer des fichiers de données supprimés dans MySQL

Lorsque vous supprimez accidentellement des fichiers de données MySQL importants, il est crucial de les récupérer. Ce tutoriel vous guidera étape par étape tout au long du processus de récupération.

Étape 1 : Vérifiez les journaux binaires

Si vous avez activé les journaux binaires avant la suppression, vous pouvez récupérer l'instruction SQL des données supprimées à l'aide de la commande suivante :

<code>mysqlbinlog --start-datetime="YYYY-MM-DD HH:MM:SS" --stop-datetime="YYYY-MM-DD HH:MM:SS" /path/to/binary-log-file | grep 'table_name'</code>
Copier après la connexion

Étape 2 : Utilisez l'outil de récupération

Si la journalisation binaire n'est pas activée, vous pouvez utiliser des outils de récupération tels que MySQL Enterprise Backup ou Percona XtraBackup pour restaurer des fichiers à partir de sauvegardes. Assurez-vous de disposer de sauvegardes d'une granularité suffisante pour que les fichiers concernés puissent être restaurés.

Étape 3 : Récupérer des fichiers à l'aide du dictionnaire de données

Si la méthode ci-dessus n'est pas réalisable, vous pouvez essayer d'utiliser le dictionnaire de données pour récupérer des fichiers. Cette méthode s'appuie sur la structure de la table et sur les données encore existantes dans la table du dictionnaire de données.

  1. Connectez-vous au serveur MySQL et accédez à la base de données du schéma d'informations :
<code>mysql -u <username> -p
USE information_schema;</code>
Copier après la connexion
  1. Interrogez la table innodb_table_stats pour obtenir les métadonnées des fichiers supprimés : innodb_table_stats 表以获取已删除文件的元数据:
<code>SELECT table_name, data_file_pos FROM innodb_table_stats WHERE table_id = <table_id>;</code>
Copier après la connexion
  1. 确定包含已删除数据的 .ibd 文件的位置。
  2. 复制 .ibd 文件的头部,其中包含文件元数据。
  3. 定位包含已删除数据的表空间 .ibd 文件。
  4. 使用 dd 命令将 .ibd 文件的头部复制到表空间 .ibd 文件中:
<code>dd if=<deleted_ibd_file_path> of=<table_space_ibd_file_path> bs=512 count=2048</code>
Copier après la connexion
  1. 重新启动 MySQL 服务器,以便 MySQL 重新加载表空间 .ibd
  2. rrreee
      OK L'emplacement du fichier .ibd contenant les données supprimées.

      Copiez l'en-tête du fichier .ibd, qui contient les métadonnées du fichier.

      Localisez le fichier tablespace .ibd contenant les données supprimées.
    • Utilisez la commande dd pour copier l'en-tête du fichier .ibd dans le fichier .ibd de l'espace table :
    • rrreee
      1. Redémarrez le serveur MySQL pour que MySQL puisse recharger le fichier .ibd du tablespace.
      🎜Remarque : 🎜🎜🎜🎜La récupération de fichiers supprimés peut prendre du temps et des ressources. 🎜🎜Effectuez toujours des sauvegardes régulières pour vous assurer de pouvoir récupérer vos données en cas de perte de données. 🎜🎜Veuillez consulter votre administrateur de base de données ou votre expert technique avant d'effectuer une récupération. 🎜🎜

      Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

      Étiquettes associées:
      source:php.cn
      Déclaration de ce site Web
      Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
      Derniers articles par auteur
      Tutoriels populaires
      Plus>
      Derniers téléchargements
      Plus>
      effets Web
      Code source du site Web
      Matériel du site Web
      Modèle frontal