|
網(wǎng)絡(luò)技術(shù)是從1990年代中期發(fā)展起來(lái)的新技術(shù),它把互聯(lián)網(wǎng)上分散的資源融為有機(jī)整體,實(shí)現(xiàn)資源的全面共享和有機(jī)協(xié)作,使人們能夠透明地使用資源的整體能力并按需獲取信息。資源包括高性能計(jì)算機(jī)、存儲(chǔ)資源、數(shù)據(jù)資源、信息資源、知識(shí)資源、專家資源、大型數(shù)據(jù)庫(kù)、網(wǎng)絡(luò)、傳感器等。 當(dāng)前的互聯(lián)網(wǎng)只限于信息共享,網(wǎng)絡(luò)則被認(rèn)為是互聯(lián)網(wǎng)發(fā)展的第三階段。 方法二事情的起因 昨天,系統(tǒng)管理員告訴我,我們一個(gè)內(nèi)部應(yīng)用數(shù)據(jù)庫(kù)所在的磁盤(pán)空間不足了。我注意到數(shù)據(jù)庫(kù)事件日志文件XXX_Data.ldf文件已經(jīng)增長(zhǎng)到了3GB,于是我決意縮小這個(gè)日志文件。經(jīng)過(guò)收縮數(shù)據(jù)庫(kù)等操作未果后,我犯了一個(gè)自進(jìn)入行業(yè)以來(lái)的最大最愚蠢的錯(cuò)誤:竟然誤刪除了這個(gè)日志文件!后來(lái)我看到所有論及數(shù)據(jù)庫(kù)恢復(fù)的文章上都說(shuō)道:“無(wú)論如何都要保證數(shù)據(jù)庫(kù)日志文件存在,它至關(guān)重要”,甚至微軟甚至有一篇KB文章講如何只靠日志文件恢復(fù)數(shù)據(jù)庫(kù)的。我真是不知道我那時(shí)候是怎么想的?! 這下子壞了!這個(gè)數(shù)據(jù)庫(kù)連不上了,企業(yè)管理器在它的旁邊寫(xiě)著“(置疑)”。而且最要命的,這個(gè)數(shù)據(jù)庫(kù)從來(lái)沒(méi)有備份了。我唯一找得到的是遷移半年前的另外一個(gè)數(shù)據(jù)庫(kù)服務(wù)器,應(yīng)用倒是能用了,但是少了許多記錄、表和存儲(chǔ)過(guò)程。真希望這只是一場(chǎng)噩夢(mèng)! 沒(méi)有效果的恢復(fù)步驟 附加數(shù)據(jù)庫(kù) _Rambo講過(guò)被刪除日志文件中不存在活動(dòng)日志時(shí),可以這么做來(lái)恢復(fù): 1,分離被置疑的數(shù)據(jù)庫(kù),可以使用sp_detach_db 2,附加數(shù)據(jù)庫(kù),可以使用sp_attach_single_file_db 但是,很遺憾,執(zhí)行之后,SQL Server質(zhì)疑數(shù)據(jù)文件和日志文件不符,所以無(wú)法附加數(shù)據(jù)庫(kù)數(shù)據(jù)文件。 DTS數(shù)據(jù)導(dǎo)出 不行,無(wú)法讀取XXX數(shù)據(jù)庫(kù),DTS Wizard報(bào)告說(shuō)“初始化上下文發(fā)生錯(cuò)誤”。 緊急模式 怡紅公子講過(guò)沒(méi)有日志用于恢復(fù)時(shí),可以這么做: 1,把數(shù)據(jù)庫(kù)設(shè)置為emergency mode 2,重新建立一個(gè)log文件 3,把SQL Server 重新啟動(dòng)一下 4,把應(yīng)用數(shù)據(jù)庫(kù)設(shè)置成單用戶模式 5,做DBCC CHECKDB 6,如果沒(méi)有什么大問(wèn)題就可以把數(shù)據(jù)庫(kù)狀態(tài)改回去了,記得別忘了把系統(tǒng)表的修改選項(xiàng)關(guān)掉 我實(shí)踐了一下,把應(yīng)用數(shù)據(jù)庫(kù)的數(shù)據(jù)文件移走,重新建立一個(gè)同名的數(shù)據(jù)庫(kù)XXX,然后停掉SQL服務(wù),把原來(lái)的數(shù)據(jù)文件再覆蓋回來(lái)。之后,按照怡紅公子的步驟走。 但是,也很遺憾,除了第2步之外,其他步驟執(zhí)行非常成功?上,重啟SQL Server之后,這個(gè)應(yīng)用數(shù)據(jù)庫(kù)仍然是置疑! 不過(guò),讓我欣慰的是,這么做之后,倒是能夠Select數(shù)據(jù)了,讓我大出一口氣。只不過(guò),組件使用數(shù)據(jù)庫(kù)時(shí),報(bào)告說(shuō):“發(fā)生錯(cuò)誤:-2147467259,未能在數(shù)據(jù)庫(kù) 'XXX' 中運(yùn)行 BEGIN TRANSACTION,因?yàn)樵摂?shù)據(jù)庫(kù)處于回避恢復(fù)模式! 最終成功恢復(fù)的全部步驟 設(shè)置數(shù)據(jù)庫(kù)為緊急模式 停掉SQL Server服務(wù); 把應(yīng)用數(shù)據(jù)庫(kù)的數(shù)據(jù)文件XXX_Data.mdf移走; 重新建立一個(gè)同名的數(shù)據(jù)庫(kù)XXX; 停掉SQL服務(wù); 把原來(lái)的數(shù)據(jù)文件再覆蓋回來(lái); 運(yùn)行以下語(yǔ)句,把該數(shù)據(jù)庫(kù)設(shè)置為緊急模式; 運(yùn)行“Use Master Go sp_configure 'allow updates', 1 reconfigure with override Go” 執(zhí)行結(jié)果: DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。 已將配置選項(xiàng) 'allow updates' 從 0 改為 1。請(qǐng)運(yùn)行 RECONFIGURE 語(yǔ)句以安裝。 接著運(yùn)行“update sysdatabases set status = 32768 where name = 'XXX'” 執(zhí)行結(jié)果: (所影響的行數(shù)為 1 行) 重啟SQL Server服務(wù); 運(yùn)行以下語(yǔ)句,把應(yīng)用數(shù)據(jù)庫(kù)設(shè)置為Single User模式; 運(yùn)行“sp_dboption 'XXX', 'single user', 'true'” 執(zhí)行結(jié)果: 命令已成功完成。 做DBCC CHECKDB; 運(yùn)行“DBCC CHECKDB('XXX')” 執(zhí)行結(jié)果: 'XXX' 的 DBCC 結(jié)果。 'sysobjects' 的 DBCC 結(jié)果。 對(duì)象 'sysobjects' 有 273 行,這些行位于 5 頁(yè)中。 'sysindexes' 的 DBCC 結(jié)果。 對(duì)象 'sysindexes' 有 202 行,這些行位于 7 頁(yè)中。 'syscolumns' 的 DBCC 結(jié)果。 ……… 運(yùn)行以下語(yǔ)句把系統(tǒng)表的修改選項(xiàng)關(guān)掉; 運(yùn)行“sp_resetstatus "XXX" go sp_configure 'allow updates', 0 reconfigure with override Go” 執(zhí)行結(jié)果: 在 sysdatabases 中更新數(shù)據(jù)庫(kù) 'XXX' 的條目之前,模式 = 0,狀態(tài) = 28(狀態(tài) suspect_bit = 0), 沒(méi)有更新 sysdatabases 中的任何行,因?yàn)橐颜_地重置了模式和狀態(tài)。沒(méi)有錯(cuò)誤,未進(jìn)行任何更改。 DBCC 執(zhí)行完畢。如果 DBCC 輸出了錯(cuò)誤信息,請(qǐng)與系統(tǒng)管理員聯(lián)系。 已將配置選項(xiàng) 'allow updates' 從 1 改為 0。請(qǐng)運(yùn)行 RECONFIGURE 語(yǔ)句以安裝。 重新建立另外一個(gè)數(shù)據(jù)庫(kù)XXX.Lost; DTS導(dǎo)出向?qū)?br> 運(yùn)行DTS導(dǎo)出向?qū)В?br> 復(fù)制源選擇EmergencyMode的數(shù)據(jù)庫(kù)XXX,導(dǎo)入到XXX.Lost; 選擇“在SQL Server數(shù)據(jù)庫(kù)之間復(fù)制對(duì)象和數(shù)據(jù)”,試了多次,好像不行,只是復(fù)制過(guò)來(lái)了所有表結(jié)構(gòu),但是沒(méi)有數(shù)據(jù),也沒(méi)有視圖和存儲(chǔ)過(guò)程,而且DTS向?qū)ё詈髨?bào)告復(fù)制失敗; 所以最后選擇“從源數(shù)據(jù)庫(kù)復(fù)制表和視圖”,但是后來(lái)發(fā)現(xiàn),這樣總是只能復(fù)制一部分表記錄; 于是選擇“用一條查詢指定要傳輸?shù)臄?shù)據(jù)”,缺哪個(gè)表記錄,就導(dǎo)哪個(gè); 視圖和存儲(chǔ)過(guò)程是執(zhí)行SQL語(yǔ)句添加的。 這樣,XXX.Lost數(shù)據(jù)庫(kù)就可以替換原來(lái)的應(yīng)用數(shù)據(jù)庫(kù)了。 網(wǎng)絡(luò)的神奇作用吸引著越來(lái)越多的用戶加入其中,正因如此,網(wǎng)絡(luò)的承受能力也面臨著越來(lái)越嚴(yán)峻的考驗(yàn)―從硬件上、軟件上、所用標(biāo)準(zhǔn)上......,各項(xiàng)技術(shù)都需要適時(shí)應(yīng)勢(shì),對(duì)應(yīng)發(fā)展,這正是網(wǎng)絡(luò)迅速走向進(jìn)步的催化劑。 |
溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!