我们有一个客户端使用我们的MSSQL软件,我们正在努力解决他们的问题。 我们更多地使用MySQL,所以请原谅我对MSSQL Server的不了解。
它们在该物理服务器上有三个卷:C:\; d:\; 和L:\ D:\卷保存SQL DB,L:\卷保存事务日志。
由于一些非常糟糕的准备和pipe理,在我们联系之前,他们停止了SQL,把SQL事务日志移到了有空间的D:\,然后继续做一个新的L:\ raid更大的物理磁盘,然后将事务日志移回并重新启动SQL服务。
由于这一点,他们已经无法login到SQL Management Studio或访问数据库。
我能够进入,但所有的数据库被标记为(可疑)。 我无法检索数据库上的任何属性。
一些谷歌search出现了一些build议的查询运行数据库来解决这个问题,但我不愿意运行它们。 看起来像是DBCC的一部分检查数据库,但我不熟悉其余部分。
这是这个链接。
任何人有任何build议来解决这个问题,或知道可能发生了什么?
在此先感谢您的帮助,
亚伦
备份数据库(停止服务,复制.mdf),并运行该脚本。 REPAIR_ALLOW_DATA_LOSS行可能具有破坏性。
脚本在这里为未来参考:
EXEC sp_resetstatus [YourDatabase]; ALTER DATABASE [YourDatabase] SET EMERGENCY DBCC checkdb([YourDatabase]) ALTER DATABASE [YourDatabase] SET SINGLE_USER WITH ROLLBACK IMMEDIATE DBCC CheckDB ([YourDatabase], REPAIR_ALLOW_DATA_LOSS) ALTER DATABASE [YourDatabase] SET MULTI_USER
如果有任何安慰,我们的产品使用合并复制,所以我们有数以千计的运行SQL Express的领域的笔记本电脑,我们经常看到可疑的数据库。 在备份数据库之后运行确切的脚本可以在99%的时间内修复问题,而不会产生不利影响。
至于原因,很难说,你可能需要做一些挖掘日志。 可能的话,如果是Express,它将被限制在打开日志的时候,但是可能的原因是:
所有其他的失败,恢复备份,如果他们存在。 虽然上面的步骤应该让你在短时间内运行。