SQL Server 檢測到基於一致性的邏輯 I/O 錯誤 pageid 不正確


最近在查詢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

 

希望本文對你有幫助。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM