2013年2月3日 星期日

嘗試提取資料庫 7 中的邏輯頁

參考1
參考2
---
依上述方法可以修復好已出問題的資料表
在修復過程,得花些時間
找出資料表出問題的是那些表
確定找到,使用上述方法即可修復完成
--
此信息表明數據庫或表 已經部分損壞可以通過以下步驟嘗試修復:
1. DBCC CHECKDB
重啟服務器後,在沒有進行任何操作的情況下,在SQL查詢分析器中執行以下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來修復。
Sql代碼
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 重建指定數據庫中表的一個或多個索引
用法:
Sql代碼
DBCC DBREINDEX (表名,』』) 修復此表所有的索引。

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

沒有留言:

張貼留言