从联机服务器还原截断的表

时间:2018-09-15 08:14:18

标签: mysql database hosting truncate

我不小心从在线服务器上删除了我的表,但无法备份它。请任何人帮助我该怎么办。

1 个答案:

答案 0 :(得分:0)

最可行,最少的工作:

  • 来自备份
    • 再次检查是否有一个
    • 请问您的托管人是否为they do backups;它们在某些设置下的默认配置可能包括您不知道的备份,例如用于wordpress的数据库备份,或者如果您有vm的文件备份

在某些情况下可行,如果适用,几乎不需要做任何工作

  • 来自binary logs。检查是否启用了它们(可能是托管者默认配置的一部分,也可能只有托管者可以访问它们,因此您可能需要询问它们)。它们包含您数据库的最新更改,如果幸运的话,“最近”可能足够长,可以包含所有内容

缺乏可行性,需要更多工作:

  • 尝试从相关数据中恢复,例如历史记录表,其他相关表或日志文件(例如,您应用程序创建的mysql general query log或日志文件);您可以尝试对其进行分析,以找出表格中应该包含的内容

最不可行,最多工作,最昂贵:

  • 理论上,由于数据仍会存储在硬盘驱动器上,直到被新数据覆盖为止,因此您可以尝试恢复数据,类似于在硬盘驱动器上查找丢失的块或删除的文件的工具。
    • 您需要停止硬盘驱动器上的任何活动以增加成功的可能性。这将取决于您的配置和设置。例如,在共享主机中,释放的磁盘空间可能会被您无法控制的其他用户覆盖,另一方面,如果您使用innodb并禁用了innodb_file_per_table,则数据存储在单个文件中(并且磁盘空间为没有释放),因此停止mysql服务器应防止覆盖任何剩余的可恢复数据。
    • 尽管有some tools可以帮助您解决此问题,但您可能需要支付某人的费用(即使这样,您也只能取回到目前为止尚未覆盖的数据)。仅当您的数据非常有价值时,此选项才可能可行