几个月前,我在我的一台客户端机器上安装了 sql server 2005。我给了他一个备份选项,以便及时进行备份,但他从未进行任何备份。
今天他叫我“我看不到我的任何记录”。我访问了我的客户系统,发现桌子上没有任何记录。任何一张桌子上都没有一行。然后我检查了他是否有任何我发现不存在的备份文件。
我问他原因可能是什么原因。他说这可能是由于病毒。
在此之后,我检查了 mdf 和 ldf 文件的大小,发现它应该是它的大小。当我创建他的服务器 mdf ldf 文件时,它有 2MB 的数据库,现在分别是 83 MB 和 193Mb mdf/ldf。
这表明数据仍然存在于其中,但未显示。
可能的原因是什么?如何将所有数据恢复到我的表中?
您无法根据文件的大小来判断。如果他
DELETE * FROM table
在每张表上运行,数据库的大小在他运行之前都是一样的DBCC SHRINKDATABASE
。我会复制文件,然后在编辑器中打开它,看看里面是否真的有任何东西。或者你可以试着缩小它。如果它缩小到什么都没有,它就是空的。(再次,进行备份)。
对我来说,所有数据的完全丢失听起来像是一个用户问题。没有备份,没有数据,神秘病毒?可能是病毒,但也很可能是用户错误。
由于数据库结构看似完整(您应该检查),最可能的原因是有人直接在数据库中乱搞,也许是为了绕过使用它的应用程序中的一些业务逻辑。病毒?极不可能。
数据现在似乎只存在于事务日志中。您可以使用Apex SQL Audit或Quest 的 Litespeed For SQL Server 之类的产品来查看日志、查看发生了什么并可能恢复数据。