標籤:family declare 失敗 常用 oss pre mysq lib style
此資訊表明資料庫或表 已經部分損壞可以通過以下步驟嘗試修複:
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
檢查指定資料庫的磁碟空間分配結構的一致性
【轉】 嘗試在資料庫5 中提取邏輯頁() 失敗。該邏輯頁屬於配置單位xxx而非xxx