解決方法:SQL Server 檢測到基于一致性的邏輯 I/O 錯誤校驗(yàn)和不正
廣告:
select count(*) from todayConsumeRecords
消息 824,級別 24,狀態(tài) 2,第 1 行 SQL Server 檢測到基于一致性的邏輯 I/O 錯誤 由于缺少 DEK,無法解密頁。在文件 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\devicesys.mdf' 中、偏移量為 0x000000dea6a000 的位置對數(shù)據(jù)庫 ID 9 中的頁 (1:455989) 執(zhí)行 讀取 期間,發(fā)生了該錯誤。SQL Server 錯誤日志或系統(tǒng)事件日志中的其他消息可能提供了更詳細(xì)信息。這是一個威脅數(shù)據(jù)庫完整性的嚴(yán)重錯誤條件,必須立即糾正。請執(zhí)行完整的數(shù)據(jù)庫一致性檢查(DBCC CHECKDB)。此錯誤可以由許多因素導(dǎo)致;有關(guān)詳細(xì)信息,請參閱 SQL Server 聯(lián)機(jī)叢書。
所用到的解決方法有:
1、 use devicesys
go
ALTER DATABASE devicesys SET SINGLE_USER
DBCC CHECKDB (‘devicesys’, repair_allow_data_loss) with NO_INFOMSGS
go
ALTER DATABASE devicesys SET MULTI_USER
go
失!
2、嘗試著新建了個數(shù)據(jù)庫tmp,并把發(fā)現(xiàn)數(shù)據(jù)庫錯誤時所備份的文件還原到tmp中,然后刪除devicesys 數(shù)據(jù)庫中的todayConsumeRecords表。之后把temp中的todayConsumeRecords表導(dǎo)入到devicesys中,當(dāng)運(yùn)行后出錯的那幾行時導(dǎo)入動作自動停止。失!
3、最終的解決方法:把第一方法中的SQL語句放到tmp數(shù)據(jù)庫進(jìn)行運(yùn)行,只花了幾秒鐘時間就提示修復(fù)成功,接著再把tmp中的todayConsumeRecords導(dǎo)入devicesys中,成功!
PS:第一個方法中的語句確實(shí)有效,但不懂為什么在出問題的數(shù)據(jù)庫中運(yùn)行不了,要借助臨時的數(shù)據(jù)庫才行。不知網(wǎng)絡(luò)上的其他朋友是否也是這樣的操作。
廣告: