【问题标题】:Is there a way how to recover deleted rows in Mysql Database?有没有办法恢复 Mysql 数据库中已删除的行?
【发布时间】:2022-05-19 18:42:54
【问题描述】:

我不小心删除了 MSQL 数据库中的记录,没有备份没有回滚事务,我真的想恢复删除的数据,有什么工具可以帮助吗?我该怎么办?请帮帮我。

【问题讨论】:

  • 如果您没有备份数据库,您可能无法恢复。大多数计算机工作中的一个伟大口头禅......“尽早保存,经常保存”。
  • 除非有备份,否则根本无法恢复这些记录。
  • 检查二进制日志是否启用。 SHOW VARIABLES LIKE %log%。并检查变量log_bin 的状态。如果它打开,那么您可以恢复丢失的数据。
  • 是的。使用您所做的备份。
  • 我没有任何备份,也没有启用二进制日志。我糟糕的一天@@!

标签: mysql recovery


【解决方案1】:

MySQL 还是MSSQL,它们都不一样。 MSSQL 代表 SQL Server,但无论如何,如果您已经维护了 事务日志,您应该采取最近的完整/差异 备份 来恢复已删除的数据。然后可以通过从备份中恢复(或)通过读取事务日志来取回数据。否则,不,没有办法恢复这些数据。

【讨论】:

  • 嗨,Rahul,它是 MySQL。在 sql server 上看到,我们可以使用工具 apexsql 取回数据,但我不知道如何在 MySQL 上执行。
  • @KolikaChan,除非您维护备份或传输日志,否则任何工具都无济于事。
  • 没有我们从不启用的事务日志。我糟糕的一天@@! .谢谢你。
【解决方案2】:

对于 InnoDB 表,如果启用了二进制日志,可以使用:

mysqlbinlog path_to_binary_log_file > query_log.sql

如果未启用二进制日志,Percona 提供的恢复 tool 可能会有所帮助。

创建了一个script 以自动化 Percona 工具中的步骤,该工具恢复已删除的行(如果存在)并提供 SQL 查询以将数据加载回数据库。

请注意:

删除行和数据库停止之间的时间是 至关重要的。如果页面被重复使用,您将无法恢复数据。

【讨论】:

    猜你喜欢
    • 2015-11-21
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 2023-03-16
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多