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