方法一(只有mdf沒(méi)有日志文件的可以恢復(fù)) 證明有效
1.新建同名數(shù)據(jù)庫(kù)。
2.把該數(shù)據(jù)庫(kù)設(shè)置為脫機(jī)。
3.刪除其日志文件(.LDF),不刪除后邊的過(guò)程執(zhí)行通不過(guò)。
4.在在查詢分析器中以超級(jí)用戶登入,執(zhí)行以下存儲(chǔ)過(guò)程,必須以超級(jí)用戶登入,這是系統(tǒng)級(jí)存存處過(guò)程。
EXEC sp_detach_db @dbname = 'xxx' //@dbnam 為要還原的數(shù)據(jù)庫(kù)
EXEC sp_attach_single_file_db @dbname = 'xxx', @physname = 'yyyy' //@physname 為.mdf文件路徑
5.把該數(shù)據(jù)庫(kù)設(shè)置為聯(lián)機(jī)。
6.刷新數(shù)據(jù)庫(kù),表出來(lái)了,數(shù)據(jù)完好
方法二(無(wú)日志文件或日志文件損壞)
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ù)名)
復(fù)制代碼 代碼如下:
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
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)去就行了.
您可能感興趣的文章:- MDF文件在SQL Server中的恢復(fù)技術(shù)
- sqlserver只有MDF文件恢復(fù)數(shù)據(jù)庫(kù)的方法
- SQLServer2005 沒(méi)有日志文件(*.ldf) 只有數(shù)據(jù)文件(*.mdf) 恢復(fù)數(shù)據(jù)庫(kù)的方法
- mdf文件和ldf文件導(dǎo)入到sql server 2005實(shí)現(xiàn)語(yǔ)句
- sqlserver附加.mdf權(quán)限問(wèn)題解決
- 教你輕松恢復(fù)/修復(fù)SQL Server的MDF文件
- 沒(méi)有SQL Server數(shù)據(jù)庫(kù)時(shí)如何打開(kāi).MDF文件