我的问题是这样的:我的机器上安装了SqlServer 2012的副本。它已存在超过3年没有任何故障。就在4-5天前,一个问题出现了。当我启动Management Studio时,它告诉我
msdb损坏,因此无法打开。
完整的信息是这样的:
无法在服务器级别显示策略运行状况,因为用户没有权限。要使此功能正常工作,需要使用数据库msdb权限。
那么这里可能出现什么问题?突如其来的变化/异常可能会使这种情况变得不稳定?有人告诉我这可能是由于各种各样的可能性。原因可能是任何事情。甚至一些nuget包也会影响数据库。最初我虽然这可能是登录,权限等问题所以我试图以管理员身份运行。不,它没有解决这个问题。如果你试图创建一个新的数据库,它只是告诉我,我不能这样做。消息是这样的:
执行T-SQL语句或批处理时发生异常。[Microsoft.SqlServer.ConnectionInfo]。无法打开数据库msdb。通过恢复将其标记为可疑。 [Microsoft Sql Server,错误:926]
如何从中恢复?你能给我一些指导吗?或者一个线索,在哪里准确地寻找问题的提示?我的所有工作都停滞了。
将谦虚地接受恢复我的病毒sqlserver安装的任何帮助所以,我要求大家给我指路。 感谢您的期待。
答案 0 :(得分:0)
如果您的MSDB已损坏,请从最新的备份中恢复。这是最安全的事情,这也是我们开始备份的原因。
如果您没有MSDB的备份,则有几个选项。
重新创建它。详细说明如下:https://msdn.microsoft.com/en-us/library/dd207003(v=sql.110).aspx#CreateMSDB。这是确保您获得干净,功能强大的MSDB的最佳方式,也是最快的启动和运行方式。重要信息:执行此操作意味着您将丢失存储在MSDB中的所有作业,备份历史记录等。在你完成其他工作之后,请记住重新创建所有维护工作,等待下一件事情不再发生(例如,事务日志备份不再运行,tlog会一直增长,直到磁盘空间不足为止 - 现在你可以& #39;运行任何将提交交易的查询。)
DBCC CHECKDB WITH Repair_allow_data_loss是您可能会在google / bing问题时找到的另一个选项。这可能有效,但不建议这样做。问题是你真的不知道会丢失什么。它的工作原理是删除它无法读取的内容然后修复链接以使数据库在物理上再次正常运行。完成后,您将不得不返回并找出剩余的内容并且仍然可以正常运行。这很乏味且容易出错。此外,如果您要进行非常彻底的手动检查以确保您的所有工作完好无损,那么您最好只需在新的,干净的MSDB上重新创建它们。
答案 1 :(得分:0)
我通过以下网站修复了我的解决方案C.我的MSDB已损坏且未加载,因此我停止了服务并将其替换为SQL Server目录中模板中的文件。
https://www.mssqltips.com/sqlservertip/3191/how-to-recover-a-suspect-msdb-database-in-sql-server/
“模板保存在”C:\ Program Files \ Microsoft SQL Server \ MSSQL11.MSSQLSERVER \ MSSQL \ Binn \ Templates“中(路径因版本和安装选择而异,这是SQL Server 2012的默认设置)。通过关闭实例并用模板文件替换错误的MSDB数据(msdbdata.mdf)和事务日志(msdblog.ldf)文件,我能够无错误地重启实例!“ (只是因为网站链接不起作用我在这里引用它。)
Fissh