如何通过sql日志,查看以前执行过的sql语句

如题所述

如果你的数据库是完全恢复模式的话,可以通过log Explorer,查看。
具体使用搜索一下就成。
使用Log Explorer查看和恢复数据

Log Explorer 4.1.可用于SQL Server2005的日志查看工具

使用方法:

打开Log Explorer -> Attach Log File -> 选择SQL Server服务器和登陆方式 -> Connect ->
在Database Name中选择数据库 -> Attach-> 左面对话框中Browse-> View Log-> 就可以看到log记录了

想恢复的话: 右键Log记录 Undo Transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行
T-sql代码就可以了

例如 如果Log是delete table where ...的话,生成的文件代码就是insert table ....
然后将此insert table的代码放到查询分析器里执行.就可以恢复数据.

----------------------------------------------------------------------
--如何恢复被delete/update的数据
----------------------------------------------------------------------
1 连接到被删除数据库的Db
打开log explorer 选择 "file"->"attach log file"->选择服务器和登陆方式->"connect"->选择"数据库"->"attach"
2 查看日志
在左面操作项目的对话框中选择"browse"项目->"view log"->就可以看到当前的Log记录了
3 恢复数据
右键某一条log记录,选择"undo transation"->"选择保存文件名和路径"->然后打开该文件到查询分析器里执行
T-sql代码就可以了
例如: 如果log是delete table where ...的话,生成的文件代码就是insert table ....

----------------------------------------------------------------------
--Log Explorer恢复被drop table和truncate table后的数据
----------------------------------------------------------------------
1 连接到被删除数据库的Db
操作同上
2 恢复方法
1) 选择"salvaage dropped/truncate"菜单,在右边的对话框中选择表名,和droped/trucated的日期,
File Name中选择生成insert语句脚步的存放位置,condition选择是droped还是truncated,
最后点击"create" 就会生成insert语句,把生成的语句到查询分析器里面执行一下就可以了
2) 选择"ViewDDL Commands"菜单->选"truncate table" 操作项->点击"Salvage"->生成语句->查询分析器里执行

----------------------------------------------------------------------
--log explorer使用的几个问题
----------------------------------------------------------------------
1) 对数据库做完全/差异/日志备份
备份时如果选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,提示No log recorders found that match the filter,would you like to view unfiltered data 选择yes 就看不到刚才的记录了

如果不选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,就能看到原来的日志并做恢复
2) 修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复
3) 然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上,
否则会出现数据库正在使用无法恢复)
恢复完后,再打开log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复.
4) 不要用SQL的备份功能备份,搞不好你的日志就破坏了.

正确的备份方法是:
停止SQL服务,复制数据文件及日志文件进行文件备份.

然后启动SQL服务,用log explorer恢复数据
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2016-06-05
--关键字:cross apply  & outer apply 
SELECT TOP 1000 
    --创建时间
    QS.creation_time,
    --查询语句
    SUBSTRING(ST.text,(QS.statement_start_offset/2)+1,
    ((CASE QS.statement_end_offset WHEN -1 THEN DATALENGTH(st.text) 
        ELSE QS.statement_end_offset END - QS.statement_start_offset)/2) + 1
    ) AS statement_text,
    --执行文本
    ST.text,
    --执行计划
    QS.total_worker_time,
    QS.last_worker_time,
    QS.max_worker_time,
    QS.min_worker_time
FROM 
    sys.dm_exec_query_stats QS
--关键字
CROSS APPLY 
    sys.dm_exec_sql_text(QS.sql_handle) ST
WHERE
    --根据时间搜索
    QS.creation_time BETWEEN '2011-10-20 16:00:00' AND '2011-10-20 17:00:00'
    --根据语句内容搜索
    AND ST.text LIKE '%%'
ORDER BY 
    QS.creation_time DESC

 Log Explorer 4.1.可用于SQL Server2005的日志查看工具

使用方法:
 
打开Log Explorer -> Attach Log File -> 选择SQL Server服务器和登陆方式 -> Connect ->  
在Database Name中选择数据库 -> Attach-> 左面对话框中Browse-> View Log-> 就可以看到log记录了  
 
想恢复的话: 右键Log记录 Undo Transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行  
T-sql代码就可以了  
 
例如 如果Log是delete table where ...的话,生成的文件代码就是insert table ....  
    然后将此insert table的代码放到查询分析器里执行.就可以恢复数据.

----------------------------------------------------------------------
--如何恢复被delete/update的数据
----------------------------------------------------------------------  
1 连接到被删除数据库的Db
打开log explorer  选择  "file"->"attach log file"->选择服务器和登陆方式->"connect"->选择"数据库"->"attach"
2   查看日志
在左面操作项目的对话框中选择"browse"项目->"view log"->就可以看到当前的Log记录了
3   恢复数据
    右键某一条log记录,选择"undo transation"->"选择保存文件名和路径"->然后打开该文件到查询分析器里执行
T-sql代码就可以了
例如: 如果log是delete table where ...的话,生成的文件代码就是insert table ....

----------------------------------------------------------------------
--Log Explorer恢复被drop table和truncate table后的数据
----------------------------------------------------------------------
1  连接到被删除数据库的Db
    操作同上
2   恢复方法
   1)  选择"salvaage dropped/truncate"菜单,在右边的对话框中选择表名,和droped/trucated的日期,
   File Name中选择生成insert语句脚步的存放位置,condition选择是droped还是truncated,
   最后点击"create" 就会生成insert语句,把生成的语句到查询分析器里面执行一下就可以了
   2) 选择"ViewDDL Commands"菜单->选"truncate table" 操作项->点击"Salvage"->生成语句->查询分析器里执行

----------------------------------------------------------------------
--log explorer使用的几个问题
----------------------------------------------------------------------
1) 对数据库做完全/差异/日志备份
备份时如果选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,提示No log recorders found that match the filter,would you like to view unfiltered data 选择yes 就看不到刚才的记录了
 
如果不选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,就能看到原来的日志并做恢复
2)  修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复
3)  然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上,
否则会出现数据库正在使用无法恢复)
恢复完后,再打开log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复.
4)  不要用SQL的备份功能备份,搞不好你的日志就破坏了.
 
正确的备份方法是:
停止SQL服务,复制数据文件及日志文件进行文件备份.
 
然后启动SQL服务,用log explorer恢复数据

第2个回答  2015-12-15
使用Log Explorer查看和恢复数据

Log Explorer 4.1.可用于SQL Server2005的日志查看工具

使用方法:

打开Log Explorer -> Attach Log File -> 选择SQL Server服务器和登陆方式 -> Connect ->
在Database Name中选择数据库 -> Attach-> 左面对话框中Browse-> View Log-> 就可以看到log记录了

想恢复的话: 右键Log记录 Undo Transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行 T-sql代码就可以了

例如 如果Log是delete table where ...的话,生成的文件代码就是insert table ....
然后将此insert table的代码放到查询分析器里执行.就可以恢复数据.

--如何恢复被delete/update的数据
----------------------------------------------------------------------
1 连接到被删除数据库的Db
打开log explorer 选择 "file"->"attach log file"->选择服务器和登陆方式->"connect"->选择"数据库"->"attach"
2 查看日志
在左面操作项目的对话框中选择"browse"项目->"view log"->就可以看到当前的Log记录了
3 恢复数据
右键某一条log记录,选择"undo transation"->"选择保存文件名和路径"->然后打开该文件到查询分析器里执行
T-sql代码就可以了
例如: 如果log是delete table where ...的话,生成的文件代码就是insert table ....

----------------------------------------------------------------------
--Log Explorer恢复被drop table和truncate table后的数据
----------------------------------------------------------------------
1 连接到被删除数据库的Db
操作同上
2 恢复方法
1) 选择"salvaage dropped/truncate"菜单,在右边的对话框中选择表名,和droped/trucated的日期,
File Name中选择生成insert语句脚步的存放位置,condition选择是droped还是truncated,
最后点击"create" 就会生成insert语句,把生成的语句到查询分析器里面执行一下就可以了
2) 选择"ViewDDL Commands"菜单->选"truncate table" 操作项->点击"Salvage"->生成语句->查询分析器里执行

----------------------------------------------------------------------
--log explorer使用的几个问题
----------------------------------------------------------------------
1) 对数据库做完全/差异/日志备份
备份时如果选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,提示No log recorders found that match the filter,would you like to view unfiltered data 选择yes 就看不到刚才的记录了

如果不选用了删除事务日志中不活动的条目
再用Log explorer打试图看日志时,就能看到原来的日志并做恢复
2) 修改了其中一个表中的部分数据,此时用Log explorer看日志,可以作日志恢复
3) 然后恢复备份,(注意:恢复是断开log explorer与数据库的连接,或连接到其他数据上,
否则会出现数据库正在使用无法恢复)
恢复完后,再打开log explorer 提示No log recorders found that match the filter,would you like to view unfiltered data,选择yes 就看不到刚才在2中修改的日志记录,所以无法做恢复.
4) 不要用SQL的备份功能备份,搞不好你的日志就破坏了.

正确的备份方法是:
停止SQL服务,复制数据文件及日志文件进行文件备份.

然后启动SQL服务,用log explorer恢复数据

如何通过sql日志,查看以前执行过的sql语句
如何通过sql日志,查看以前执行过的sql语句 使用方法:打开Log Explorer -> Attach Log File -> 选择SQL Server服务器和登陆方式 -> Connect -> 在Database Name中选择数据库 -> Attach-> 左面对话框中Browse-> View Log-> 就可以看到log记录了 想恢复的话: 右键Log记录 Undo Transation-> 选择保...

如何查询最近执行的sql怎么查询执行
1.mysql查看已经执行的历史sql语句方法:开启日志模式:SETGLOBALlog_output=‘TABLE’;SETGLOBALgeneral_log=‘ON’;2.找到文件位置:\/home\/root\/mysql\/data\/mysql\/general_log.CSV,查看mysql执行过的语句。3.关闭日志模式:SETGLOBALlog_output=‘FILE’;SETGLOBALgeneral_log=‘OFF’;在查询到所需要的...

怎么利用sql server日志查看执行的语句
{查询-查询选项-高级里,有个SET STATISTICS TIME勾上,然后执行SQL,看消息,就有执行时间了}

怎么查看用户的SQL执行历史
more report.txt --这个文件包括了启停trace之间所有SQL语句的执行信息,执行计划、统计。【方法四:logminer】只包含DML与DDL语句,不能查询select语句。另外需要开启supplemental logging,默认是没有开启的。conn \/ as sysdba --安装LOGMINER SQL> @$ORACLE_HOME\/rdbms\/admin\/dbmslmd.sql;SQL> @$O...

在ORACLE中怎么查看SQL执行日志
在Oracle中查看SQL执行日志的操作相对简单,以下是具体步骤:首先,确保你已经安装了OracleSQLDeveloper,如果没有,可通过浏览器轻松下载安装。步骤如下:1.打开SQLDeveloper工具,你可以通过菜单栏找到它,点击进入。接着,进入工具后,找到并使用以下方法查看SQL历史记录:2.在二级菜单中,可以直接选择"SQL...

如何查看sql数据库操作日志?
详细记录了每次数据库操作的时间、用户、以及执行的SQL语句。要查看这些日志,只需鼠标右键点击"SQLServer日志",然后选择"查看"选项。这样,你就能直观地查看到SQL数据库的操作日志,以便于监控和审计数据库活动。整个过程相当直接,无需额外设置,只需常规的操作步骤即可获取你需要的信息。

sql 如何查询历史操作语句
想恢复的话: 右键Log记录 Undo Transation-> 选择保存文件名和路径-> 然后打开该文件到查询分析器里执行 T-sql代码就可以了 例如 如果Log是delete table where ...的话,生成的文件代码就是insert table ... 然后将此insert table的代码放到查询分析器里执行.就可以恢复数据.Log Explorer使用的一...

如何查看sql数据库操作日志?
查看SQL数据库操作日志的方法:1. 利用数据库自带的日志功能:大多数数据库系统都提供了日志记录功能,可以记录数据库的所有操作。这些日志通常包括执行的SQL语句、操作时间、执行结果等信息。例如,MySQL可以通过配置general log来记录所有服务器的操作;Oracle有审计追踪和日志挖掘功能;SQL Server有SQL Server...

sql2000如何查看用户执行了哪些语句,更改了什么数据?用什么工具,具体操 ...
1、用windows身份验证登陆数据库,点击【连接】2、展开数据库服务器下面的【管理】【SQL Server日志】;3、双击【当前】可以打开【日志文件查看器】里面有所有的运行日志;4、点击任意一行,可以看见具体的信息,错误原因和时间;5、勾选相应的复选框,可以筛选查看相应的日志内容;6、点击【筛选】还可以...

怎么查sql里运行过的语句?
到SQL Server里面找Activity Monitor,就能看见你刚才运行的SQL语句。

相似回答