是否可以从 sql server 日志文件中恢复一天的查询?

Rem*_*yth 6 sql-server recovery sql-server-2012 transaction-log

昨天我丢失了在我的系统中输入和编辑的所有数据,我的 ISP 向我宣布昨晚的备份已损坏且无法恢复。

有没有办法访问数据库的日志文件,尝试将数据库恢复到当天数据被删除之前的点?我正在使用 SQL Server 2012 标准版。

我试过这个(我在本网站的另一个问题中找到了):

SELECT deqs.last_execution_time AS [Time], dest.TEXT AS [Query]
FROM sys.dm_exec_query_stats AS deqs
CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest
ORDER BY deqs.last_execution_time DESC
Run Code Online (Sandbox Code Playgroud)

但我从今天早上开始才收到查询。

如果有任何帮助,我将不胜感激。

Jon*_*gel 7

您唯一真正的机会是使用 3rd 方日志分析器工具,即使这样也可能行不通。进程发生SIMPLE时恢复会截断日志CHECKPOINT,这很可能在此时发生。

此外,如果在备份之间丢失整个更改集是不可接受的,则可以更频繁地备份SIMPLE(如果您的数据库很小),或者切换到FULL并进行日志备份以获得时间点恢复能力。尽管有损坏的备份。

  • @Remi:不客气。很抱歉您的数据丢失。此时最好的办法是设置一个更能满足您需求的备份策略。而且,请确保测试您所做的备份。 (3认同)
  • 是的,你应该有一个还原策略,而不是一个备份策略。如果您创建了备份并将它们塞到某个磁盘上的某个地方,但没有验证您实际上可以从它们恢复,那么首先不要费心进行备份。除非您对它们进行过测试,否则无法保证它们。 (2认同)