我们有一个客户使用我们的 MSSQL 软件,我们正在努力为他们解决问题。我们更多地使用 MySQL,所以请原谅我对 MSSQL Server 方式的无知。
他们在该物理服务器上有 3 个卷:C:\; D:\; L:\ D:\ 卷保存 SQL DB,L:\ 卷保存事务日志。
L:\ 卷由于一些非常糟糕的准备和管理而被填满,在联系我们之前,他们停止了 SQL,将 SQL 事务日志移到有空间的 D:\,然后继续创建一个新的 L:\ raid更大的物理磁盘,然后将事务日志移回并重新启动 SQL 服务。
从那时起,他们就无法登录 SQL Management Studio 或访问数据库。
我能够进入,但所有数据库都被标记为(可疑)。我根本无法检索数据库上的任何属性。
一些谷歌搜索出现了一些建议的查询来针对数据库运行以解决这个问题,但我不愿意运行它们。看起来它的一部分是针对数据库的 DBCC 检查,但我不熟悉其余部分。
有人对解决此问题有任何建议或知道可能发生了什么吗?
提前感谢您的帮助,
亚伦
备份数据库(停止服务,复制 .mdf),然后运行该脚本。REPAIR_ALLOW_DATA_LOSS 线可能具有破坏性。
在此处编写脚本以供将来参考:
如果有什么安慰的话,我们的产品使用合并复制,因此我们有数千台笔记本电脑在现场运行 SQL Express,并且我们经常看到可疑的数据库。备份数据库后运行该确切脚本可在 99% 的时间内解决问题,而不会产生不利影响。
至于原因,很难说,你可能需要做一些挖掘日志。很可能,如果是 Express,它将仅限于为日志记录打开的内容,但可能的原因是:
所有其他方法均失败,如果存在备份,请还原备份。不过,上述步骤应该可以让您快速运行。