国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

SQL2000下修復(fù)某數(shù)據(jù)庫的經(jīng)歷

2024-07-21 02:47:47
字體:
供稿:網(wǎng)友
SQL2000下修復(fù)某數(shù)據(jù)庫的經(jīng)歷

某個SQL2000的數(shù)據(jù)庫,在通過備份/還原的方法升級到2005時發(fā)生錯誤:查找解決方法未果正好最近在看 @一線碼農(nóng) 的《sql server之旅》,就想自己試試解決這個問題首先運行dbcc checkdb命令,結(jié)果如下:仔細查看出錯信息,里面反復(fù)提到一個“對象 ID 2”。另外,信息里還提到“該文本的所有者是由 RID = (1:152:9) id = 213575799 and indid = 37 標識的數(shù)據(jù)記錄”。聯(lián)想到最近看的《sql server之旅》,覺得第二段信息可能是在說某個數(shù)據(jù)表。于是select之:果然都有對應(yīng)的表!分別select這兩個表,發(fā)現(xiàn)問題出在sysindexes上:這和上面的出錯信息也是一致的。立刻嘗試用dbcc checkdb和dbcc checktable修復(fù),但是卻得到以下回應(yīng):DBCC 語句的修復(fù)級別導(dǎo)致回避了此修復(fù)至此嘗試進入了死胡同……再次查看,發(fā)現(xiàn)出錯信息里有2條比較有意思。一條說某節(jié)點未被引用,一條說沒發(fā)現(xiàn)另外一個節(jié)點。兩個節(jié)點的槽號和文本ID都是一樣,只有頁不同。手賤看了看頁號,發(fā)現(xiàn)342=0x156,4194646=0x400156,只差一個字節(jié)!靈機一動,這個錯誤肯定是頁號因為某種原因錯了!突然想起,在DBCC命令那篇里面提到DBCC IND命令,干脆死馬當活馬醫(yī):但是看不出什么鬼,很明顯我沒人家那水平……干脆Page一下:找到slot9的偏移,看看有沒有0x400156:好像撞大運了……參考《第六站》,脫機,打開mdf,找到Slot9對應(yīng)偏移8192*152+0x860=0x130860,把那個40改成00

聯(lián)機,dbcc checkdb,沒有查出錯誤!

再次嘗試在SQL2005中恢復(fù),成功!

附加收獲:SQL2000貌似沒有checksum,否則我改mdf應(yīng)該會報錯的。


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 田东县| 若尔盖县| 德阳市| 五家渠市| 津南区| 通河县| 布拖县| 京山县| 海原县| 汶川县| 泾阳县| 定州市| 屯门区| 元朗区| 灵川县| 惠来县| 兖州市| 新郑市| 内江市| 光泽县| 牡丹江市| 巴林右旗| 河池市| 石棉县| 汤原县| 焦作市| 犍为县| 团风县| 德庆县| 都江堰市| 阳新县| 民县| 福安市| 和硕县| 炉霍县| 乾安县| 沂南县| 治多县| 肇州县| 长汀县| 方山县|