您的位置:首页 > 数据库

SQL Server 检测到基于一致性的逻辑 I-O 错误 pageid 不正确

2017-08-10 10:03 387 查看
最近在查询SQL时遇到SQL文件错误,可能是文件数据已损坏。解决过程分享给大家。

问题描述



消息 824,级别 24,状态 2,第 1 行

SQL Server 检测到基于一致性的逻辑 I/O 错误 pageid 不正确(应为 1:19741588,但实际为 0:0)。在文件 'D:\analytics.MDF' 中、偏移量为 0x000025a7728000 的位置对数据库 ID 10 中的页 (1:19741588) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅
SQL Server 联机丛书。

解决方案

1.备份数据库(重要);

2.执行修复SQL语句(分步执行):

--1.设置数据库为单用户模式(会立即断开其他所有用户的连接)
ALTER DATABASE YourDatabaseName
SET SINGLE_USER
WITH ROLLBACK IMMEDIATE;
GO

--2.修复数据库(允许数据丢失)
DBCC CHECKDB ('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS)

--3.单用户模式关闭(多用户模式开启)
ALTER DATABASE YourDatabaseName
SET MULTI_USER;
GO


第2步执行的时间,一般视数据库大小。本次是200GB,大概1个多小时执行完毕。

特别注意执行完第2步后,执行第3步,打开多用户模式。否则造成其他用户无法连接,而且不会有任何提示。

 

参考文章
http://blog.csdn.net/pj386960300/article/details/6833814 http://blog.csdn.net/szstephenzhou/article/details/39670309 https://docs.microsoft.com/zh-cn/sql/relational-databases/databases/set-a-database-to-single-user-mode
 

希望本文对你有帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐