打开SQL Server 2008 R2提示“无法打开数据库 'msdb' SQL Server 错误945”的大致说明

[重要通告]如您遇疑难杂症,本站支持知识付费业务,扫右边二维码加博主微信,可节省您宝贵时间哦!

有网友在群里发了一张图,询问解决办法,错误为“由于文件不可访问,或者内存或磁盘空间不足,所以无法打开数据库msdb。有关详细信息,请参阅 SQL Server 错误日志。 (Microsoft SQL Server错误945)”如下图所示

但是SQL Server编辑框里还可以照常选择其他账套,如下图所示

打开SQL Server 2008 R2提示“无法打开数据库 'msdb' SQL Server 错误945”的大致说明

看SQL Server错误第一段提示“由于文件不可访问,或者内存或磁盘空间不足,所以无法打开数据库 'msdb'。”显示内存或磁盘不足,再看第二段“ SQL Server,错误: 945”,其实这个945错误代码是溢出内存不足造成的,这么看还是内存不足造成的,出现这种的错误,不乏有权限不足造成的,但这次的问题主要看打开数据库版本下面的提示“正在展开”,这种就是无法打开了,还一种就是数据库错误或质疑造成的;

一、在Server配置管理器->中,Server属性->登录( -> )选择“此帐户”,并使用帐户名“系统管理员账户”及其密码登录尝试一下;

二、给予安装路径“X:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA或X:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA”下给予“SQL运行用户”与 “Everyone”,然后勾选 “允许” 列下的全部权限,如 “完全控制”“读取”“写入” 等;

三、给予sa用户对'msdb'库“db_owner与public”角色权限;

数据库角色说明:

public
--public 角色是一个特殊的数据库角色,每个数据库用户都属于它。public 角色:
--捕获数据库中用户的所有默认权限。
--无法将用户、组或角色指派给它,因为默认情况下它们即属于该角色。
--含在每个数据库中,包括 master、msdb、tempdb、model 和所有用户数据库。
--无法除去。

db_owner
--进行所有数据库角色的活动,以及数据库中的其它维护和配置活动。
--该角色的权限跨越所有其它固定数据库角色。

db_accessadmin
--在数据库中添加或删除 Windows NT 4.0 或 Windows 2000 组和用户以及 SQL Server 用户。

db_datareader
--查看来自数据库中所有用户表的全部数据。

db_datawriter
--添加、更改或删除来自数据库中所有用户表的数据

db_ddladmin
--添加、修改或除去数据库中的对象(运行所有 DDL)

db_securityadmin
--管理 SQL Server 2000 数据库角色的角色和成员,并管理数据库中的语句和对象权限

db_backupoperator
--有备份数据库的权限

db_denydatareader
--拒绝选择数据库数据的权限

db_denydatawriter
--拒绝更改数据库数据的权限

四、MSDB置疑状态修复

USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1
RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='msdb'
Go
sp_dboption 'msdb', 'single user', 'true'
Go
DBCC CHECKDB('msdb')
Go
update sysdatabases set status =28 where name='msdb'
Go
sp_configure 'allow updates', 0
reconfigure with override
Go
sp_dboption 'msdb', 'single user', 'false'
Go

五、从另一台装有同样SQL SERVER数据库并且能正常打开的服务器或者自己的电脑上,找到Msdb的两个数据文件MSDBData.mdf和MSDBLog.ldf复制过来,替换一下;

1、停掉sql服务,备份原来的“MSDBData.mdf和MSDBLog.ldf”并删掉原来的;

2、把装有同版本SQL Server数据库并正常的电脑,找到MSDBData.mdf和MSDBLog.ldf复制到自己电脑“C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\DATA下或C:\Program Files\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL\DATA”路径下,并启动,基本就可以成功!

写在后面:'msdb'数据也是存在一些数据的,不过能打开也比打不开的强,都注意备份最好!

延伸阅读:msdb数据库质疑或可疑的说明

显示“msdb”数据库可疑或置疑的话,如下图所示

找同版本正常的SQL Server数据库来替换,就会变成“单个用户”的显示,如下图所示

执行下面的SQL语句就可以变成正常;

alter database msdb set multi_user

问题未解决?付费解决问题加Q或微信 2589053300 (即Q号又微信号)右上方扫一扫可加博主微信

所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!

支付宝赞助
微信赞助

免责声明,若由于商用引起版权纠纷,一切责任均由使用者承担。

您必须遵守我们的协议,如您下载该资源,行为将被视为对《免责声明》全部内容的认可->联系老梁投诉资源
LaoLiang.Net部分资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。 敬请谅解! 侵权删帖/违法举报/投稿等事务联系邮箱:service@laoliang.net
意在交流学习,欢迎赞赏评论,如有谬误,请联系指正;转载请注明出处: » 打开SQL Server 2008 R2提示“无法打开数据库 'msdb' SQL Server 错误945”的大致说明

发表回复

本站承接,网站推广(SEM,SEO);软件安装与调试;服务器或网络推荐及配置;APP开发与维护;网站开发修改及维护; 各财务软件安装调试及注册服务(金蝶,用友,管家婆,速达,星宇等);同时也有客户管理系统,人力资源,超市POS,医药管理等;

立即查看 了解详情