如果是 MyISAM - 没有机会通过备份进行恢复。
如果是 InnoDB - 这取决于。InnoDB 将记录标记为已删除并将其保留在页面中一段时间。当树重新平衡时,已删除的记录将被清除。
因此,是否可以取消删除记录取决于删除后对表进行了多少写入。
在十六进制编辑器中打开 InnoDB 表空间并尝试查找已删除的记录:
hexdump -c table.ibd
Run Code Online (Sandbox Code Playgroud)
如果表相对较小,我更喜欢bvi
(它允许通过字符串或二进制模式进行搜索)
bvi table.ibd
Run Code Online (Sandbox Code Playgroud)
因此,如果您看到已删除的记录 - 它是可以恢复的。
查找已删除记录的其他位置是 binlog。如果它是某种row
格式 - 删除事件将包含旧值和新值。
InnoDB 重做日志也存储更改。但绝对不会让他们呆一个月。
要从 InnoDB 页检索已删除的记录,您可以使用MySQL 数据恢复工具。已删除记录的恢复类似于从损坏的表空间中恢复。但在这种情况下,必须使用仅转储已删除记录的选项c_parser
来调用。-D
免责声明:我是该工具的作者
归档时间: |
|
查看次数: |
18071 次 |
最近记录: |