SQL Server 檢測到基於一致性的邏輯 I/O 錯誤 校正和不正確 ||嘗試在資料庫 5 中提取邏輯頁 (1:1640) 失敗

來源:互聯網
上載者:User

標籤:

use test go ALTER DATABASE test SET SINGLE_USER DBCC CHECKDB (test, repair_allow_data_loss) with NO_INFOMSGS go ALTER DATABASE test SET MULTI_USER go 

對於單個資料庫報錯了,運行這個修複不行。後來我在tempdb運行才可以。

 dbcc checkdb(‘tempdb‘)

其實開始的時候還有另一個錯誤:

嘗試在資料庫 5 中提取邏輯頁 (1:1640) 失敗。該邏輯頁屬於配置單位XXX ,而非 XXX。
use master    declare @databasename varchar(255)    set @databasename=‘需要修複的資料庫實體的名稱‘   exec sp_dboption @databasename, N‘single‘, N‘true‘ --將目標資料庫置為單使用者狀態    dbcc checkdb(@databasename,REPAIR_ALLOW_DATA_LOSS)    dbcc checkdb(@databasename,REPAIR_REBUILD)    exec sp_dboption @databasename, N‘single‘, N‘false‘--將目標資料庫置為多使用者狀態  

這個沒有效果,運行到一半就出錯了,無計可施。無奈之下用truncate table test,然後從新插入資料。當然做這個的前提是你的資料有備份。否則從損壞的表是讀不到的。

這個表修複的方法也沒啥用。

use 需要修複的資料庫實體的名稱   declare @dbname varchar(255)   set @dbname=‘需要修複的資料庫的名稱‘   exec sp_dboption @dbname,‘single user‘,‘true‘   dbcc checktable(‘需要修複的資料表的名稱‘,REPAIR_ALLOW_DATA_LOSS)   dbcc checktable(‘需要修複的資料表的名稱‘,REPAIR_REBUILD)   ------把’ 需要修複的資料表的名稱’更改為執行DBCC CHECKDB時報錯的資料表的名稱   exec sp_dboption @dbname,‘single user‘,‘false‘  

DBCC DBREINDEX (表名,’’) 修複此表所有的索引。這個方法也沒用。

DBCC CHECKALLOC 
檢查指定資料庫的磁碟空間分配結構的一致性 。這個我水平不夠,看不出什麼問題。

 

資料庫越大,修複越久。還是做好隨時備份。

本人系統win10+sql2008,在裝sql2008的時候系統就提示不相容,但是可以安裝成功並且運行,不清楚是什麼原因導致的。希望有高手可以解答。以前在win7沒有遇見過這種問題。

 

SQL Server 檢測到基於一致性的邏輯 I/O 錯誤 校正和不正確 ||嘗試在資料庫 5 中提取邏輯頁 (1:1640) 失敗

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.