綠色資源網:您身邊最放心的安(ān)全下載站(zhàn)! 最新軟件|熱門排(pái)行|軟件分類(lèi)|軟件專題(tí)|廠(chǎng)商大全

綠色資源網

技術教(jiāo)程
您的位置:首頁數(shù)據庫類SQL Server → mssql2000 Log.LDF日誌文件丟失的解決(jué)方案

mssql2000 Log.LDF日誌(zhì)文件丟失的解決方案

我要評論 2014/01/06 09:47:52 來源:綠色資(zī)源網 編輯:www.ynaad.com [ 小(xiǎo)] 評論:0 點擊:532次

由(yóu)於種種原(yuán)因,我們如果當時僅僅備份了(le)mdf文(wén)件,而無法(fǎ)得到日誌文件,那麽(me)恢複起(qǐ)來就是一件很麻煩的事情了。

【同(tóng)一數據庫服務器的情況】
如果您的mdf文件是當前數據庫產生的,那麽很僥幸,也許你使用sp_attach_db或者sp_attach_single_file_db可以恢複數據庫,但是會出現類似下麵的提示信息
設備(bèi)激(jī)活錯誤。物理(lǐ)文件(jiàn)名 'C:\Program Files\Microsoft sql server\MSSQL\data\test_Log.LDF' 可能有誤。
已創建名為 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.LDF' 的新日誌文件。

【不同數據庫服務器的情況】
  如果您的數據庫文件是從其他計算機上複製過來的,那麽很不幸,也(yě)許上(shàng)述辦(bàn)法就行不通了。你也許會得到類似(sì)下麵的錯誤信息
服務器: 消息 1813,級別 16,狀態 2,行 1
未能打開新(xīn)數據庫 'test'。CREATE DATABASE 將終止。
設備激活錯誤。物理文件名 'd:\test_log.LDF' 可能(néng)有誤。

怎麽辦呢?別著急(jí),下麵我們舉(jǔ)例說明(míng)恢複辦法。

A.使用默認方式建立(lì)一個供恢複使用的數(shù)據庫(test)。

B.停掉數(shù)據庫服務器。

C.將剛才生成的數(shù)據庫的日誌文件test_log.ldf刪除,用要恢複的(de)數據庫(kù)mdf文件覆蓋剛才生成(chéng)的數據庫數據文(wén)件test_data.mdf。

D.啟動數據庫服務器(qì)。此時會看到數據庫test的狀態為“置疑”。這時候不能對此數據庫進行(háng)任何操作。

E.設置數據庫允許直接操作係統表。此操作可以(yǐ)在SQL Server Enterprise Manager裏麵選擇數據庫(kù)服務器,按右鍵(jiàn),選擇“屬性”,在“服務器設置”頁麵中將“允許對係(xì)統目錄直(zhí)接修改”一項選中。

F.設置test為緊急(jí)修複模式

update sysdatabases set status=-32768 where dbid=DB_ID('test')

此時可以在SQL Server Enterprise Manager裏(lǐ)麵看到該數據庫處於“隻讀\置疑\脫機\緊急模式”可以看到數據庫裏麵的表(biǎo),但是僅僅有係統表。

G.下麵執行真正的恢複操作,重建數據庫日誌文件

dbcc rebuild_log('test','C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf')

執行過程中(zhōng),如果遇到下列提示信(xìn)息:

服務器: 消息(xī) 5030,級別 16,狀(zhuàng)態 1,行 1

未能排它地鎖定數據庫以執行(háng)該操作。

DBCC 執行完畢。如果 DBCC 輸出了錯誤(wù)信息,請與係統管理員聯係。

說明您的其他程序正在使用該數據庫(kù),如果剛才您在F步驟中使用SQL Server Enterprise Manager打開了test庫的係(xì)統表,那麽退出SQL Server Enterprise Manager就可以了。

正確(què)執行完成的提示應該(gāi)類似於:

警告: 數據庫 'test' 的日誌已重建。已失去事務的(de)一致性。應運行 DBCC CHECKDB 以驗證物理一致性。將必(bì)須重置(zhì)數據庫選項(xiàng),並且(qiě)可能需要刪除多餘的(de)日誌文件。

DBCC 執行完畢。如果 DBCC 輸出了錯誤信息,請與係統管理員聯係(xì)。

此時打開在SQL Server Enterprise Manager裏麵(miàn)會看到(dào)數據(jù)庫的狀態為“隻供DBO使用”。此時可以訪問數據庫裏麵的用戶表了。

H.驗證數(shù)據庫一致性(可省略)

dbcc checkdb('test')

一般執行結果如下:

CHECKDB 發現(xiàn)了 0 個分配錯誤和 0 個一致性錯誤(wù)(在數據庫 'test' 中)。

DBCC 執行完畢。如果 DBCC 輸出了錯誤(wù)信(xìn)息(xī),請與係統管理員聯係。

I.設(shè)置數(shù)據庫為正常狀態

sp_dboption 'test','dbo use only','false'

如果沒有出錯,那麽(me)恭喜(xǐ),現在就(jiù)可以正常的使用恢(huī)複後的數據庫啦。

J.最後(hòu)一步,我們要將步驟E中設置的“允許對係統目錄直接(jiē)修改”一項恢複。因為平時直接(jiē)操作係統表(biǎo)是一件比較危險的事情。當然(rán),我們可以(yǐ)在SQL Server Enterprise Manager裏麵恢複,也可以使用(yòng)如下語句完(wán)成
 

-SQL

sp_configure 'allow updates',0
go 
reconfigure with override
go

關鍵詞:mssql2000,解(jiě)決方案

閱讀本文後您(nín)有什麽感想? 已有 人給出(chū)評價!

  • 1 歡迎喜歡(huān)
  • 1 白癡
  • 1 拜托
  • 1 哇(wa)
  • 1 加油
  • 1 鄙視
免费人欧美成又黄又爽的视频丨一本色道久久88综合日韩精品丨国产专区日韩精品欧美色丨午夜无遮挡男女啪啪视频丨国产欧美日韩综合精品一区二区丨亚洲精品无码不卡在线播HE丨亚洲精品国产精品国自产观看丨日韩国产高清av不卡