一 下载
https://download.csdn.net/download/sunke861/11449739
二 使用
解压安装包后,点击:ApexSQLLog.exe
2.1 连接数据库
连接要审计的数据库:
假如报错:
则点击ok关闭该窗口,然后点击左上方的New按钮:
再重连下就可以了:
2.2 解析事务日志或事务日志备份
2.2.1 解析事务日志
2.2.2 解析事务日志备份
由于sql server 备份事务日志会截断事务日志信息(截断的概念:就是把某个位置之前的所有事务日志信息全都设置为可重用,后续就可以被其他信息覆盖),所以如果要追查的事务日志已经被截断,那么则需要添加上事务日志备份。
点击下方的’Add file’:
指定备份文件后,勾选该备份文件,并取消勾选在线日志:
2.3 过滤时间范围等信息
在’Operation’这里可以选择解析哪种操作类型:
在‘Tables’这里可以只勾选要操作的表:
2.4 查看redo sql,undo sql,事务信息
点击要查看的那行操作记录,在下方可以看到详细信息:
可以看到操作历史,回滚sql,redo sql,事务信息(操作账号):
也可以选中该记录,点击上方的Undo按钮,生成回滚sql:
点击执行按钮可以连接数据库执行回滚语句:
2.5 怎样批量解析某个事务
如果说,并发很多或者行数太多,我们手动恢复比较困难。比如,我们这里的误操作是
delete test2 where where id >50 and id<=100;
但实际运行的时候可能中间还夹杂了很多 insert/update以及其他行的delete,假如我们只想要这个事务语句操作的undo脚本,则可以根据事务号来恢复数据。
APEXSQL LOG会将delete test2 where where id >50 and id<=100; 解析成一条条的delete记录,比如这里delete了50条数据,则能看到50条delete记录,但是事务号是一样的:
可以鼠标点击其中一行记录,然后点击‘Select transaction’,会自动勾选同一事务的所有相关操作:
可以点击上面的undo按钮,生成回滚sql:
--本篇文章参考了https://www.cnblogs.com/gered/p/13182523.html#autoid-6-0-0