SQLServer出现这么变态的问题,你遇到过没?

yzty 2017-05-22 12:29:16
是这样的,windows server2008R2企业版上服务器上安装了SQLServer2012企业版,每次重启服务器之后SQLServer2012也启动正常,打开Microsoft SQLServer Management Studio之后看到数据库(数据库是通过其他电脑上拷贝过来附加上去的)也都在,点开之后看不到任何表,每个数据库都如此,这时候重新启动一下数据库,就完全正常了,请问是什么原因造成的,怎么解决这个问题,另外:日志提示的错误信息如下:

日志名称: Application
来源: MSSQLSERVER
日期: 2017/5/22 11:20:16
事件 ID: 823
任务类别: 服务器
级别: 错误
关键字: 经典
用户: MyComputer\Administrator
计算机: MyComputer
描述:
在文件 'D:\mydb\MyDB.mdf' 中、偏移量为 0x000000002f0000 的位置执行 读取 期间,操作系统已经向 SQL Server 返回了错误 21(设备未就绪。)。SQL Server 错误日志和系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重系统级错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="MSSQLSERVER" />
<EventID Qualifiers="49152">823</EventID>
<Level>2</Level>
<Task>2</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2017-05-22T03:20:16.000000000Z" />
<EventRecordID>4734</EventRecordID>
<Channel>Application</Channel>
<Computer>MyComputer</Computer>
<Security UserID="S-1-5-21-1192850085-3052896369-1483981960-500" />
</System>
<EventData>
<Data>21(设备未就绪。)</Data>
<Data>读取</Data>
<Data>0x000000002f0000</Data>
<Data>D:\mydb\MyDB.mdf</Data>
<Binary>37030000180000000D0000004700410049004E00450054004E0049004D004B004C0059000000120000004D00790043006F006D006D006F006E004C00690061006F006A00690065006A0075000000</Binary>
</EventData>
</Event>




日志名称: Application
来源: MSSQLSERVER
日期: 2017/5/22 11:20:31
事件 ID: 17053
任务类别: 服务器
级别: 错误
关键字: 经典
用户: 暂缺
计算机: MyComputer
描述:
SQLServerLogMgr::LogWriter: 遇到操作系统错误 21(设备未就绪。)。
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="MSSQLSERVER" />
<EventID Qualifiers="49152">17053</EventID>
<Level>2</Level>
<Task>2</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2017-05-22T03:20:31.000000000Z" />
<EventRecordID>4743</EventRecordID>
<Channel>Application</Channel>
<Computer>MyComputer</Computer>
<Security />
</System>
<EventData>
<Data>SQLServerLogMgr::LogWriter</Data>
<Data>21(设备未就绪。)</Data>
<Binary>9D420000100000000D0000004700410049004E00450054004E0049004D004B004C005900000000000000</Binary>
</EventData>
</Event>



日志名称: Application
来源: SQLSERVERAGENT
日期: 2017/5/22 11:20:40
事件 ID: 324
任务类别: (5)
级别: 错误
关键字: 经典
用户: 暂缺
计算机: MyComputer
描述:
OpenSQLServerInstanceRegKey:GetRegKeyAccessMask failed (reason: 2).
事件 Xml:
<Event xmlns="http://schemas.microsoft.com/win/2004/08/events/event">
<System>
<Provider Name="SQLSERVERAGENT" />
<EventID Qualifiers="49152">324</EventID>
<Level>2</Level>
<Task>5</Task>
<Keywords>0x80000000000000</Keywords>
<TimeCreated SystemTime="2017-05-22T03:20:40.000000000Z" />
<EventRecordID>4807</EventRecordID>
<Channel>Application</Channel>
<Computer>MyComputer</Computer>
<Security />
</System>
<EventData>
<Data>OpenSQLServerInstanceRegKey:GetRegKeyAccessMask failed</Data>
<Data>2</Data>
</EventData>
</Event>
...全文
1166 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
东源居士 2018-12-19
  • 打赏
  • 举报
回复
此种方法可以有效解决此类问题,谢谢。
吉普赛的歌 2017-05-22
  • 打赏
  • 举报
回复
引用 11 楼 yzty 的回复:
谢谢yenange了,使用延迟加载不用重启SQLServer能正常运行数据库,原因可能是服务器是景安的云服务器,他们的磁盘管理上有延迟吧,先这样用着吧,真不行就把数据库放C:~
希望人家能看到回复, 最好一点下右下角的引用。 嗯, 很有可能是网络磁盘, 这种还是比较严重了, 应该让人家看看才行。 没事就结贴吧, 结贴率高, 帮你的人会更多。
yzty 2017-05-22
  • 打赏
  • 举报
回复
谢谢yenange了,使用延迟加载不用重启SQLServer能正常运行数据库,原因可能是服务器是景安的云服务器,他们的磁盘管理上有延迟吧,先这样用着吧,真不行就把数据库放C:~
吉普赛的歌 2017-05-22
  • 打赏
  • 举报
回复

先将 SQL server 服务 改成延迟启动吧。

不过, 从长远来说, 你的硬件肯定是有问题了,必须得解决, 找人帮忙看看。
yzty 2017-05-22
  • 打赏
  • 举报
回复
原因基本上查明了,在系统盘上建立文件或附加数据库是正常的,也就是说在SQLServer启动的时候D:盘还没有正常加载造成的加载数据库不成功~重新启动下数据库,这时候恢复正常,第一次遇到这样的变态的问题,有没有解决方法,毕竟如果把数据库文件放系统盘不够安全的.
吉普赛的歌 2017-05-22
  • 打赏
  • 举报
回复
引用 7 楼 yzty 的回复:
如果是mdf数据库文件的问题,我在这台机器上重新建了个数据库文件,表等内容,重新启动服务器,然后还是这种情况,表不显示,再重启下SQLserver就就正常显示了.~
图形界面无法显示的时候, 那语句能不能到查到表:
select * from sys.tables
yzty 2017-05-22
  • 打赏
  • 举报
回复
如果是mdf数据库文件的问题,我在这台机器上重新建了个数据库文件,表等内容,重新启动服务器,然后还是这种情况,表不显示,再重启下SQLserver就就正常显示了.~
0与1之间 2017-05-22
  • 打赏
  • 举报
回复
这个应该是你数据文件夹的问题吧,在正常情况下完整备份,再还原试试
--小F-- 2017-05-22
  • 打赏
  • 举报
回复
引用 3 楼 yzty 的回复:
刚才又重新安装了SQLServer2012 可是问题依旧~
不是SQL SERVER安装文件的问题 而是数据文件MDF文件的问题
二月十六 2017-05-22
  • 打赏
  • 举报
回复
引用 3 楼 yzty 的回复:
刚才又重新安装了SQLServer2012 可是问题依旧~
不是软件的问题,是数据文件的问题
yzty 2017-05-22
  • 打赏
  • 举报
回复
刚才又重新安装了SQLServer2012 可是问题依旧~
--小F-- 2017-05-22
  • 打赏
  • 举报
回复
21错误极有可能是MDF文件出问题了 建议马上备份数据库 如果可以的话 建立一个新库把现在的数据给转移过去。 否则等MDF文件彻底无法使用的时候就不好办了
二月十六 2017-05-22
  • 打赏
  • 举报
回复
提示了,用DBCC CHECKDB检测一下数据库有没有什么问题

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧