昨天,系統(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í)候是怎么想的?!SQL Server 數(shù)據(jù)庫(kù)恢復(fù)日志功能
這下子壞了!這個(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)!
數(shù)據(jù)庫(kù)日志文件的誤刪或別的原因引起數(shù)據(jù)庫(kù)日志的損壞
方法一
1.新建一個(gè)同名的數(shù)據(jù)庫(kù)
2.再停掉sql server(注意不要分離數(shù)據(jù)庫(kù))
3.用原數(shù)據(jù)庫(kù)的數(shù)據(jù)文件覆蓋掉這個(gè)新建的數(shù)據(jù)庫(kù)
4.再重啟sql server
5.此時(shí)打開(kāi)企業(yè)管理器時(shí)會(huì)出現(xiàn)置疑,先不管,執(zhí)行下面的語(yǔ)句(注意修改其中的數(shù)據(jù)庫(kù)名)
6.完成后一般就可以訪問(wèn)數(shù)據(jù)庫(kù)中的數(shù)據(jù)了,這時(shí),數(shù)據(jù)庫(kù)本身一般還要問(wèn)題,解決辦法是,利用
數(shù)據(jù)庫(kù)的腳本創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù),并將數(shù)據(jù)導(dǎo)進(jìn)去就行了.
USE MASTER
GO
SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的數(shù)據(jù)庫(kù)名'
Go
sp_dboption '置疑的數(shù)據(jù)庫(kù)名', 'single user', 'true'
Go
DBCC CHECKDB('置疑的數(shù)據(jù)庫(kù)名')
Go
update sysdatabases set status =28 where name='置疑的數(shù)據(jù)庫(kù)名'
Go
sp_configure 'allow updates', 0 reconfigure with override
Go
sp_dboption '置疑的數(shù)據(jù)庫(kù)名', 'single user', 'false'
Go
新聞熱點(diǎn)
疑難解答
圖片精選