使用DBRECOVER FOR MYSQL针对delete table SQL场景的恢复
mysql> use employees; Database changed mysql> select count(*) from employees; +----------+ | count(*) | +----------+ | 1000 | +----------+ 1 row in set (0.00 sec) mysql> delete from employees; mysql> flush table employees with read lock; Query OK, 0 rows affected (0.01 sec)
例如以上误删除表上记录的场景,我们可以用dbrecover for mysql的undelete功能恢复。
找到该表对应的ibd文件,例如 上例中employees表对应employees.ibd。
启动dbrecover for mysql程序,在开始菜单中选择添加ibd文件,并加入该ibd文件。
右击ibd文件选择扫描,扫描后出现对应的page文件,右键选择输入建表的SQL语句。
建表语句可以通过show create table 命令在mysql中获得:
mysql> show create table employees; +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Table | Create Table | +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | employees | CREATE TABLE `employees` ( `emp_no` int(11) NOT NULL, `birth_date` date NOT NULL, `first_name` varchar(14) NOT NULL, `last_name` varchar(16) NOT NULL, `gender` enum('M','F') NOT NULL, `hire_date` date NOT NULL, PRIMARY KEY (`emp_no`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC | +-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.01 sec)
点击确定后,界面右侧出现表信息,点击deleted数据:
点击导出到文件,即可将delete掉的数据恢复为MYSQLDUMP形式的INSERT语句