Maison base de données tutoriel mysql 无全量备份、未开启binlog日志,利用percona工具恢复delete的数

无全量备份、未开启binlog日志,利用percona工具恢复delete的数

Jun 07, 2016 pm 02:52 PM
binlog 利用 备份 开启 日志

当我们忘记做全量备份时,并且没有开启binlog,并执行了 deletefromsbtest; 数据全部丢失,要想恢复是很有难度的。 今天,利用Percona Data Recovery Tool for InnoDB工具 (仅支持InnoDB,MyISAM不支持) ,可以找回被删除的数据。 原理:在InnoDB引擎,del

当我们忘记做全量备份时,并且没有开启binlog,并执行了

delete from sbtest;
Copier après la connexion
Copier après la connexion

数据全部丢失,要想恢复是很有难度的。


今天,利用Percona Data Recovery Tool for InnoDB工具(仅支持InnoDB,MyISAM不支持),可以找回被删除的数据。


原理:在InnoDB引擎,delete删除操作,不是真正的删除物理文件上的行,而是增加一个删除的标记,我们都用过WORD吧?在修改字体的时候,有一个删除线的标记,如《MySQL 管理之道》,该工具利用这个特性,找回那些标注了删除线的数据,并存入到一个文本里,然后通过load data命令,批量插入到表里。


注:truncate不能恢复(truncate是直接清空数据行,并不是添加删除标记,你可以通过查看物理文件,执行了truncate操作,ibd文件变小,而执行了delete操作,ibd文件还跟之前的一样大),drop不能恢复(数据文件都没了,还怎么恢复?)。


一、安装Percona Data Recovery Tool for InnoDB工具

# wget https://launchpad.net/percona-data-recovery-tool-for-innodb/trunk/release-0.5/+download/percona-data-recovery-tool-for-innodb-0.5.tar.gz

# cd percona-data-recovery-tool-for-innodb-0.5/mysql-source
# ./configure
# cd ..
# make
Copier après la connexion

二、全表删除sbtest表

delete from sbtest;
Copier après la connexion
Copier après la connexion

三、恢复

1、提取ibd物理文件,按照每页16K,单独存放。

# cd percona-data-recovery-tool-for-innodb-0.5/
# ./page_parser -5 -f /usr/local/mysql-5.5.37/data/test/sbtest.ibd
Copier après la connexion

650) this.width=650;" style="max-width:90%" title="1.jpg" alt="wKioL1QWjBbQtR24AAcTs4jETjo710.jpg" />

650) this.width=650;" style="max-width:90%" title="2.jpg" alt="wKioL1QWjBfQ5v4eAAMOU75u5yE417.jpg" />


会在当前目录生成一个pages-1410414511目录(后面的数字是变化的,在你的机器上会跟我的不同)

650) this.width=650;" title="3.jpg" alt="wKioL1QWjNeRc1gzAAGi--J2QzM705.jpg" />

650) this.width=650;" title="5.jpg" alt="wKiom1QWjUXSIuLRAAjqU2V4Rmk266.jpg" />


在FIL_PAGE_INDEX目录下面,会生成主键和索引,数据最小的是主键,后面依次是每个列的索引

650) this.width=650;" title="4.jpg" alt="wKioL1QWjcfTyYIVAACR8hnJJ78355.jpg" />

在这里,0-28是sbtest表的主键(id),0-29是sbtest表的索引(k)。记住这个目录数字,后面我们需要通过这个目录恢复数据。


2、生成表结构

# cd percona-data-recovery-tool-for-innodb-0.5/
# ./create_defs.pl --host localhost --port 3306 --user root --password 123456 --db test --table sbtest > include/table_defs.h
Copier après la connexion

-- host 主机地址

-- port 端口

-- user 用户名

-- password 密码

-- db 数据库名

-- table 表名


3、再次执行make编译命令

# cd percona-data-recovery-tool-for-innodb-0.5/
# make
Copier après la connexion

650) this.width=650;" title="6.jpg" alt="wKiom1QWj3nzmDC0AAUbkA6b0jc746.jpg" />


4、恢复删除的数据

# cd percona-data-recovery-tool-for-innodb-0.5/
# ./constraints_parser -D -5 -f pages-1410414511/FIL_PAGE_INDEX/0-28/ > /tmp/sbtest.txt
Copier après la connexion

-D 恢复删除的行

-5 表的文件格式,默认是Compact

(不清楚的朋友,可以用show table status命令查看)

650) this.width=650;" title="7.jpg" alt="wKioL1QWkRiDTihIAAI9NJg8fOQ199.jpg" />

-f 指定生成sbtest表的主键目录


执行完毕,如下图:

650) this.width=650;" title="8.jpg" alt="wKiom1QWknDBeZOHAAIWMrwbsBE715.jpg" />

会自动生成一个load data infile命令,请把这个复制下来,一会我们要导入数据。


在/tmp目录下,会生成sbtest.txt,我们就要用这个文件做恢复。

650) this.width=650;" title="9.jpg" alt="wKioL1QWkuHwSGz6AARoxsVwT9s990.jpg" />



5、导入到表里

LOAD DATA INFILE '/tmp/sbtest.txt' REPLACE INTO TABLE `sbtest` FIELDS TERMINATED BY '\t' OPTIONALLY ENCLOSED BY '"' LINES STARTING BY 'sbtest\t' (id, k, c, pad);
Copier après la connexion

wKioL1QWk57TtLghAAFSBQvfbic614.jpg


总结:

通过上述方法,顺利的完成了delete数据恢复。在数据被删除后,切记要备份ibd数据文件,一定不要覆盖,否则都是不能完成修复的。目前该工具不支持字符串set类型。



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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment activer le DLSS ? stratégie d'ouverture dlss Comment activer le DLSS ? stratégie d'ouverture dlss Mar 13, 2024 pm 07:34 PM

Il existe une fonction dlss dans NVIDIA. Une fois que les utilisateurs ont activé le dlss, la fréquence d'images du jeu peut être considérablement améliorée. Par conséquent, de nombreux amis demandent à l'éditeur comment activer le dlss. Tout d’abord, assurez-vous que la carte graphique prend en charge le dlss et que le jeu prend en charge le dlss, vous pourrez ensuite l’activer dans le jeu. Jetons un coup d'œil aux didacticiels spécifiques ci-dessous. Réponse : DLSS doit généralement être ouvert dans le jeu. Pour activer DLSS, vous devez remplir les conditions de l'appareil et du jeu. dlss est "l'effet de traçage de rayons", vous pouvez entrer dans les paramètres du jeu. Accédez ensuite aux paramètres "Image ou Graphiques". Recherchez ensuite « Ray Tracing Lighting » et cliquez pour l’ouvrir. d

Dois-je activer l'accélération matérielle GPU ? Dois-je activer l'accélération matérielle GPU ? Feb 26, 2024 pm 08:45 PM

Est-il nécessaire d’activer le GPU à accélération matérielle ? Avec le développement et l’avancement continus de la technologie, le GPU (Graphics Processing Unit), en tant que composant central du traitement infographique, joue un rôle essentiel. Cependant, certains utilisateurs peuvent se demander si l'accélération matérielle doit être activée. Cet article discutera de la nécessité de l'accélération matérielle pour le GPU et de l'impact de l'activation de l'accélération matérielle sur les performances de l'ordinateur et l'expérience utilisateur. Tout d’abord, nous devons comprendre comment fonctionnent les GPU à accélération matérielle. Le GPU est un spécialiste

Comment utiliser la sauvegarde et la restauration MySQL en PHP ? Comment utiliser la sauvegarde et la restauration MySQL en PHP ? Jun 03, 2024 pm 12:19 PM

La sauvegarde et la restauration d'une base de données MySQL en PHP peuvent être réalisées en suivant ces étapes : Sauvegarder la base de données : Utilisez la commande mysqldump pour vider la base de données dans un fichier SQL. Restaurer la base de données : utilisez la commande mysql pour restaurer la base de données à partir de fichiers SQL.

Comment restaurer le fichier d'hôtes supprimé Comment restaurer le fichier d'hôtes supprimé Feb 22, 2024 pm 10:48 PM

Titre : Comment restaurer le fichier hosts après suppression Résumé : Le fichier hosts est un fichier très important dans le système d'exploitation et est utilisé pour mapper les noms de domaine aux adresses IP. Si vous supprimez accidentellement le fichier hosts, vous ne pourrez peut-être pas accéder à certains sites Web ou rencontrer d'autres problèmes de réseau. Cet article explique comment récupérer un fichier hosts supprimé accidentellement dans les systèmes d'exploitation Windows et Mac. Texte : 1. Restaurez le fichier hosts dans le système d'exploitation Windows.

Comment installer, désinstaller et réinitialiser la sauvegarde du serveur Windows Comment installer, désinstaller et réinitialiser la sauvegarde du serveur Windows Mar 06, 2024 am 10:37 AM

WindowsServerBackup est une fonction fournie avec le système d'exploitation WindowsServer, conçue pour aider les utilisateurs à protéger les données importantes et les configurations système, et à fournir des solutions complètes de sauvegarde et de récupération pour les petites, moyennes et grandes entreprises. Seuls les utilisateurs exécutant Server2022 et versions ultérieures peuvent utiliser cette fonctionnalité. Dans cet article, nous expliquerons comment installer, désinstaller ou réinitialiser WindowsServerBackup. Comment réinitialiser la sauvegarde de Windows Server Si vous rencontrez des problèmes avec la sauvegarde de votre serveur, si la sauvegarde prend trop de temps ou si vous ne parvenez pas à accéder aux fichiers stockés, vous pouvez envisager de réinitialiser vos paramètres de sauvegarde de Windows Server. Pour réinitialiser Windows

Comment activer les conditions de circulation en temps réel sur Amap Comment activer les conditions de circulation en temps réel sur Amap Feb 28, 2024 pm 07:22 PM

Le logiciel de cartographie AMAP offre une grande commodité pour les déplacements des utilisateurs grâce à ses excellentes fonctions. Parmi eux, la fonction de trafic en temps réel est très appréciée par les utilisateurs car elle peut les aider à comprendre plus précisément les conditions routières, à éviter les embouteillages et à choisir le meilleur itinéraire. Ensuite, Zian peut ouvrir les conditions de circulation en temps réel de la carte Amap. Les utilisateurs qui souhaitent en savoir plus peuvent suivre le guide tutoriel de l'éditeur ci-dessous pour en savoir plus ! Comment activer les conditions de circulation en temps réel sur la carte Amap ? Réponse : [Amap] - [Couche] - [Conditions de circulation]. Étapes spécifiques : 1. Ouvrez d'abord le logiciel Amap et accédez à la page d'accueil. Nous pouvons voir les boutons de notification, de couche et de commentaires dans le coin supérieur droit. Cliquez sur [Couche] ici ; 2. Ensuite, après avoir cliqué, une boîte de dialogue apparaîtra. , ici nous cliquons sur [Conditions de circulation]

Comment sauvegarder le système avec un didacticiel de sauvegarde fantôme-fantôme Comment sauvegarder le système avec un didacticiel de sauvegarde fantôme-fantôme Mar 06, 2024 pm 04:30 PM

Récemment, de nombreux amis ont demandé à l'éditeur comment sauvegarder le système avec ghost. Ensuite, apprenons le tutoriel sur la façon de sauvegarder le système avec ghost. J'espère que cela pourra aider tout le monde. 1. Après avoir exécuté Ghost, cliquez sur « OK », comme indiqué sur la figure. 2. Cliquez sur « Local » → « Partition » → « ToImage » (c'est-à-dire : local → partition → vers le fichier image), comme indiqué sur la figure. 3. La fenêtre Sélectionner le disque dur local apparaît, cliquez sur le disque dur sur lequel se trouve la partition à sauvegarder, puis cliquez sur « OK », comme indiqué sur la figure. 4. La fenêtre Sélectionner la partition source apparaît (la partition source est la partition que vous souhaitez sauvegarder), cliquez sur la partition où se trouve le système (généralement la zone 1, assurez-vous de bien faire les choses), puis cliquez sur "OK". , comme le montre la figure. 5. Jouez à ce moment

Mar 22, 2024 pm 03:15 PM

Dans la société moderne, les téléphones portables sont devenus un outil indispensable dans la vie des gens. Les fonctions des téléphones intelligents deviennent de plus en plus puissantes, répondant aux divers besoins de la vie quotidienne, du travail et des loisirs. Pour certains utilisateurs qui doivent utiliser plusieurs comptes WeChat en même temps, il est particulièrement important d'activer la double fonction WeChat. Cet article vous apprendra comment activer les fonctions doubles WeChat sur votre téléphone Huawei, vous permettant de gérer facilement plusieurs comptes WeChat. Tout d'abord, le système EMUI fourni avec les téléphones mobiles Huawei prend déjà en charge les deux fonctions WeChat au niveau du système, il vous suffit donc de suivre les étapes suivantes pour le configurer.

See all articles