国产草草影院ccyycom/一级一级特黄女人精品毛片/亚洲人成在线观看/久久久久久久国产视频

調整.NET控件WebBrowser的默認瀏覽器內核版本

Sql Server之旅——第一站 那些給我們帶來福利的系統視圖

  返回  

SQL2000下修復某數據庫的經歷

2017/8/8 16:34:10 瀏覽:

SQL2000下修復某數據庫的經歷

某個SQL2000的數據庫,在通過備份/還原的方法升級到2005時發生錯誤:


 
 
 
首先運行dbcc checkdb命令,結果如下:



仔細查看出錯信息,里面反復提到一個“對象 ID 2”。另外,信息里還提到“該文本的所有者是由 RID = (1:152:9) id = 213575799 and indid = 37 標識的數據記錄”。聯想到最近看的《sql server之旅》,覺得第二段信息可能是在說某個數據表。于是select之:



果然都有對應的表!

分別select這兩個表,發現問題出在sysindexes上:



這和上面的出錯信息也是一致的。

立刻嘗試用dbcc checkdb和dbcc checktable修復,但是卻得到以下回應:

DBCC 語句的修復級別導致回避了此修復

至此嘗試進入了死胡同……

再次查看,發現出錯信息里有2條比較有意思。一條說某節點未被引用,一條說沒發現另外一個節點。兩個節點的槽號和文本ID都是一樣,只有頁不同。手賤看了看頁號,發現342=0x156,4194646=0x400156,只差一個字節!

靈機一動,這個錯誤肯定是頁號因為某種原因錯了!

突然想起,在DBCC命令那篇里面提到DBCC IND命令,干脆死馬當活馬醫:



但是看不出什么鬼,很明顯我沒人家那水平……

干脆Page一下:



找到slot9的偏移,看看有沒有0x400156:



好像撞大運了……

參考《第六站》,脫機,打開mdf,找到Slot9對應偏移8192*152+0x860=0x130860,把那個40改成00

 



聯機,dbcc checkdb,沒有查出錯誤!

 

再次嘗試在SQL2005中恢復,成功!

聯系我們

濟南鑒信DATAHELP服務器數據恢復中心
數據恢復服務熱線:0531-62399989
數據恢復服務電話:0531-62399989
公司傳真:0531-55575577
數據恢復業務Mail:DATAHELP@163.COM
數據恢復公司地址:濟南市山大路157號華強電子世界三樓Q3059,Q3060