【轉】 嘗試在數據庫5 中提取邏輯頁() 失敗。該邏輯頁屬於分配單元xxx而非xxx


此信息表明數據庫或表 已經部分損壞可以通過以下步驟嘗試修復: 
1. DBCC CHECKDB 

重啟服務器后,在沒有進行任何操作的情況下,在SQL查詢分析器中執行以下SQL進行數據庫的修復,修復數據庫存在的一致性錯誤與分配錯誤。 

 

    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'--將目標數據庫置為多用戶狀態    

 

然后執行

 

DBCC CHECKDB('需要修復的數據庫實體的名稱')  

 

檢查數據庫是否仍舊存在錯誤。注意:修復后可能會造成部分數據的丟失。 
2. DBCC CHECKTABLE 
如果DBCC CHECKDB 檢查仍舊存在錯誤,可以使用DBCC CHECKTABLE來修復。

 

    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'    

 

3. 其他的一些常用的修復命令 
DBCC DBREINDEX 重建指定數據庫中表的一個或多個索引 
用法:

 

DBCC DBREINDEX (表名,’’) 修復此表所有的索引。  

 

4.DBCC CHECKALLOC 
檢查指定數據庫的磁盤空間分配結構的一致性

 

 

 

 


免責聲明!

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



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