一大早发现生产数据库的基础资料被删除。
由于每天都做了差异备份,而且是基础资料,这样数据就不会担心找不回来。
首先通过每天的差异本分文件进行查看数据丢失的大概时间,查到数据丢失是在17晚上备份过后18丢失的。
然后找18号的数据库执行记录
贴上语句:
SELECT ST.text AS '执行的SQL语句', QS.creation_time AS '执行时间' FROM sys.dm_exec_query_stats QS CROSS APPLY sys.dm_exec_sql_text(QS.sql_handle) ST where ST.text like '%BIL_SPC%' or ST.text like '%bil_spc%' ORDER BY QS.creation_time DESC
找出对应的18号的,查询出来过后发现有一句delete语句。
然后在测试环境中,用sqlserver profiler 工具,测试在前段删除一组数据,追踪出来的语句中发现没有写入系统log的语句。
最后,锅终于甩出去了,数据被客户手动删除了。