SQL Server数据库里的一个表,向里面导入了数据后,每隔一段时间就会自动被删除掉一些数据,现在无法查到到底是什么操作引起的这个表的删除动作,请教各位大虾,有没有方法对在这个表上进行的所有操作进行跟踪,查询出到时是哪个操作,或哪个客户端进行的操作。
问题解决后继续加分!
问题解决后继续加分!
解决方案 »
- 来人啊
- vista下 sql2005权限问题 急....急
- C#调用存储过程出错
- 在VB中连接SQL SERVER怎样用SQL的条件查询
- insert触发器如何对同一个表的字段进行赋值?
- 我XPSP3GHOST系统,无法安装SQL2005的组件,只最后一个可以安装,剩下的都是灰色,不能选择,求解决办法
- 关于在存储过程使用变量的问题?
- 用SQL Server存储过程建DBF表并导出数据出现的问题(急)
- sql server导入dbf表时,小数位数据导不进来,sql server给自动取整了,如何解决?
- vb如何用adodc调用sql存程过程
- 【晕~突然忘了这个该怎么写鸟~】
- 求SQL语句,最好一句搞定,有点小麻烦
是一个软件,安装后可以登录查看SQL的所有操作日志的。
你可以去网上搜索,下载一个试试。
---------------------------------------------------------------------------------------------------------------------------------
用第三方工具Log Explorer for SQL Server v4.0.2
http://js.fixdown.com/soft/8324.htm注册机产生的是注册码,是两个用解压缩密码解开后,压缩包里也有一个注册机的打开log explorer file=>attach log file->选择服务器和登陆方式->connect->
选择数据库->attach->左面对话框中browse->view log->就可以看到log记录了
点击“View DDL Commands”里面就有很多drop table 命令
点击下面的“undo”按钮是生成表结构的语句(create table ....)
点击下面的“Salvage”按钮是生成插入语句的(insert into ...values....)
(以上lynx1111提供)想恢复的话: 右键log记录 undo transation->选择保存文件名和路径->然后打开该文件到查询分析器里执行
T-sql代码就可以了例如 如果log是delete table where ...的话,生成的文件代码就是insert table ....
使用经验总结帖:
http://community.csdn.net/Expert/topic/2954/2954818.xml?temp=.9148676
------------------------------------------------------------------------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中修改的日志记录,所以无法做恢复.3)
不要用SQL的备份功能备份,搞不好你的日志就破坏了.正确的备份方法是:
停止SQL服务,复制数据文件及日志文件进行文件备份.然后启动SQL服务,用log explorer恢复数据4)
如果你的数据库的日志恢复模型是simple,那就不可能用log explorer恢复5)
Log explorer必须安装在要恢复数据库的sql server服务器上,或者在sql server服务器上安装服务端,在操作的电脑上安装客户端进行数据恢复---------------------------------------------------------------------------------------------------------------------------------2、对于将来可能发生的事件,在事件探查器中建立跟踪,跟踪此后一个表上所发生的所有操作系统。
---------------------------------------------------------------------------------------------------------------------------------
开始--程序--MS SQLSERVER
--事件探察器(SQL Profiler)
--文件
--新建--跟踪...
--设置要跟踪的服务器的信息(连接服务器)--确定
--设置跟踪的项目...
--然后数据库的调用情况就会显示出来在跟踪项目设置中,如果不熟悉的话,一般用默认设置
筛选项目有几个可以注意一下:1.DatabaseName 同于你要监测的数据库名(不过这个好像不起作用,我的电脑上设置无效)
2.DatabaseID 同于你要检测的数据库的dbid,可以用 select db_id(N'你要监测的库名')得到dbid
3.ObjectName 同于你要监测的对象名,例如表名,视图名等
4.ObjectID 同于你要监测的对象的id,可以用 select object_id(N'你要监测的对象名')得到id
5.Error 同于错误,如果经常出现某个编号的错误,则针对此错误号
6.Seccess 同于0,失败,1,成功,如果是排错,就过滤掉成功的处理
---------------------------------------------------------------------------------------------------------------------------------