一个 MS SQL Server - 过去几周运行良好的数据库突然抛出以下错误:
System.Data.SqlClient.SqlException:警告:在日期/时间发生致命错误 823
请注意错误和时间,并与您的系统管理员联系。
这个错误是什么意思,我该怎么办?
我试过
DBCC CHECKDB('mydatabase')
Run Code Online (Sandbox Code Playgroud)
但我只收到更多错误消息。
提前致谢!
正如 Splattne 所说,823 意味着存在 I/O 子系统问题。823 消息就是我所说的“硬 I/O 错误”。SQL Server 要求操作系统读取一个页面,它说不——这意味着 I/O 子系统无法读取有问题的页面。
CHECKDB 输出意味着它无法创建用于获取数据库的事务一致时间点视图的内部数据库快照。造成这种情况的原因有很多:
如果这两种情况都不是,您可以创建自己的数据库快照并在其上运行 DBCC CHECKDB。你有一个,运行以下命令:
DBCC CHECKDB (yourdbname) WITH NO_INFOMSGS, ALL_ERRORMSGS
如果您发布结果,我会为您解释它们(我为 SQL 2005 编写了 DBCC CHECKDB)
无论结果如何,您都在考虑从备份恢复、将数据提取到新数据库或运行修复。每个都涉及不同数量的停机时间和数据丢失。您还必须进行一些根本原因分析,以找出首先导致损坏的原因。
顺便说一句-您是否启用了页面校验和?您是否在 SQL 错误日志或 Windows 应用程序事件日志中查看了 I/O 子系统的任何损坏迹象或问题?
希望这可以帮助。
归档时间: |
|
查看次数: |
23183 次 |
最近记录: |