我的sql server将一个数据库标记为疑似,在检查时我发现我的mdf,ldf文件丢失,但chkdsk没有错误,这意味着什么病毒?
答案 0 :(得分:1)
http://support.microsoft.com/kb/180500
启动时,SQL Server会尝试获取设备文件的独占锁定。如果设备正由另一个进程(例如,备份软件)使用,或者如果文件丢失,则将遇到上述情况。在这些情况下,设备和数据库通常没有任何问题。 要使数据库正确恢复,必须使设备可用,并且必须重置数据库状态。
答案 1 :(得分:1)
这意味着有人删除了文件。
他们在使用时无法删除,所以它发生了:
默认情况下,所有用户dbs将共享相同的文件夹(编辑)(结束编辑),所以这是故意的
更奇特的选项包括恢复主数据库,其中恢复的主数据库中列出的数据库/ MDF文件不存在等等。但我对此表示怀疑。
答案 2 :(得分:1)
文件已删除,或者已移动文件,并且在更改位置之前还原了主数据库备份。在这两种情况下,只有在数据库脱机时才能删除或移动物理文件 - 因为sql server已关闭或数据库已关闭。
这些事情中的任何一个都不太可能偶然发生。它不太可能是通用病毒或木马,因为它必须在SQL Server启动之前专门删除启动时的文件(假设您的数据库自动启动)或关闭数据库然后专门删除文件。鉴于chkdsk不会报告错误,或者它不太可能是磁盘问题,因此可以确定错误的原因是故意的数据库(错误)管理。
我认为最可能的选择是dba已经决定将文件移动到其他地方 - 通常这是出于空间或性能原因 - 例如,如果将新驱动器添加到空间不足的计算机中然后数据库可以移动到那个。由于某种原因,随后从移动前的一个点恢复了主数据库的备份。
我的第一个动作是对所有mdf / ldf文件进行系统的全面扫描,并(希望)找到它们。我还会扫描备份并查找最新的主数据库备份。然后你可以尝试恢复最后一个主备份,看看是否解决了这个问题(当然我先备份当前的主机),然后失败,或者直接重新挂起丢失的文件。
如果找不到mdf / ldf文件,那么您唯一的选择就是从备份恢复。如果您没有备份,则数据库将丢失。
答案 3 :(得分:0)
在SQL Server中,怀疑数据库是用户无法与数据库连接的模式。 此时用户无法执行任何操作,也无法执行任何操作,例如无法打开无备份和无还原等。
此问题的可能原因可能是以下之一: 1.数据库已损坏 2.内存状态不足。 3.意外停机等 4.操作系统无法找到数据库文件
答案 4 :(得分:0)
在这种情况下,您可以检查 SQL Server 日志。转到管理,单击 SQL Server 日志并单击当前并检查消息。
就我而言,我得到了这个: 错误 17207,严重性 16,状态 1(与日志文件删除或损坏有关)
解决方案:
将数据库设置为单用户模式:
Alter database dbname set single_user
现在将数据库设置为紧急模式:
Alter database dbname set emergency
修复丢失的日志文件或损坏的日志文件并丢失数据。
DBCC CHECKDB ('dbname', REAPIR_ALLOW_DATA_LOSS)
注意:使用此命令可能会丢失数据。这也取决于客户的批准。
现在将数据库设置为多用户模式;
alter database dbname set multi_user