SqlServer日志文件損壞時恢復(fù)數(shù)據(jù)庫
創(chuàng)建用于恢復(fù)的數(shù)據(jù)庫當(dāng)SqlServer的日志文件損壞時,如果數(shù)據(jù)文件完好(只有.mdf文件沒有.ldf文件),可以通過以下步驟來恢復(fù)數(shù)據(jù)庫。首先,需要創(chuàng)建一個用于恢復(fù)的數(shù)據(jù)庫,這里取名為Anena(
創(chuàng)建用于恢復(fù)的數(shù)據(jù)庫
當(dāng)SqlServer的日志文件損壞時,如果數(shù)據(jù)文件完好(只有.mdf文件沒有.ldf文件),可以通過以下步驟來恢復(fù)數(shù)據(jù)庫。首先,需要創(chuàng)建一個用于恢復(fù)的數(shù)據(jù)庫,這里取名為Anena(與要恢復(fù)的數(shù)據(jù)庫文件同名)。在配置管理器中,中止數(shù)據(jù)庫服務(wù)。
覆蓋數(shù)據(jù)文件
接下來,將剛剛創(chuàng)建的數(shù)據(jù)庫的.ldf文件刪除,并將要恢復(fù)的數(shù)據(jù)文件覆蓋掉剛創(chuàng)建的數(shù)據(jù)庫文件。然后啟動數(shù)據(jù)庫服務(wù)器。
數(shù)據(jù)庫處于“恢復(fù)掛起”狀態(tài)
此時數(shù)據(jù)庫處于“恢復(fù)掛起”狀態(tài)。需要執(zhí)行以下語句,使數(shù)據(jù)庫“允許對系統(tǒng)目錄直接修改”:
```
use master
go
sp_configure 'allow updates', 1
go
reconfigure with override
go
```
設(shè)置緊急修復(fù)模式
將Anena數(shù)據(jù)庫設(shè)置為緊急修復(fù)模式,執(zhí)行以下更新語句:
```
update sysdatabases set status-32768 where dbidDB_ID('Anena')
```
重建數(shù)據(jù)庫日志文件
使用以下命令重建數(shù)據(jù)庫日志文件:
```
dbcc rebuild_log('pcard', 'G:date_備份date20150916Athena_log.ldf')
```
取消“允許對系統(tǒng)目錄直接修改”
恢復(fù)“允許對系統(tǒng)目錄直接修改”的設(shè)置,執(zhí)行以下語句:
```
use master
go
sp_configure 'allow updates', 0
go
reconfigure with override
go
```
通過以上步驟,可以在SqlServer日志文件損壞時,僅有數(shù)據(jù)文件的情況下成功恢復(fù)數(shù)據(jù)庫。請注意,在進(jìn)行任何數(shù)據(jù)庫操作之前,務(wù)必先備份數(shù)據(jù),以防止意外情況的發(fā)生。