您的位置:首页 > 其它

[HOWTO]2000文件损坏的时候如何恢复

2008-04-27 20:26 225 查看
数据库文件损坏时候如何恢复

欢迎大家同我交流:小白 enhydra_boy@tom.com

欢迎转载,请保留本声明,谢谢!

SQLServer2000中,如果数据库文件(非系统数据库文件)遇到错误的时候,我们该怎么办。以下是笔者以前的笔记。仅适用于非master,msdb的数据库。

说明如下:

1建一个测试数据库test(数据库类型为完全)
2建一个表,插入点记录
createtablea(c1varchar(2))
go
insertintoavalues('aa')
go
insertintoavalues('bb')
go
3作完全备份,到文件test_1.bak
4在作一点修改
insertintoavalues('cc')
go
createtableb(c1int)
go
insertintobvalues(1)
go
insertintobvalues(2)
go
5shutdown数据库服务器
6用ultraedit编辑数据库文件test_data.mdf,随便修改点字节内容,相当于数据库遭到致命的损坏。
7启动数据库,并且运行企业管理器,点开数据库,看到test变成灰色,而且显示置疑。
8运行isql-SLocalhost-Usa-P
1>backuplogtestTODISK='D:/ProgramFiles/MicrosoftSQLServer//BACKUP/t
est_2.bak'WITHNO_TRUNCATE
2>go
已处理2页,这些页属于数据库'test'的文件'TEST_Log'(位于文件1上)。
BACKUPLOG操作成功地处理了2页,花费了0.111秒(0.087MB/秒)。

9进行恢复最老的完全备份
1>RESTOREDATABASEtestFROMDISK='D:/ProgramFiles/MicrosoftSQLServer/MSSQL/
BACKUP/test_1.bak'WITHNORECOVERY
2>go
已处理96页,这些页属于数据库'test'的文件'TEST_Data'(位于文件1上)。
已处理1页,这些页属于数据库'test'的文件'TEST_Log'(位于文件1上)。
RESTOREDATABASE操作成功地处理了97页,花费了0.107秒(7.368MB/秒)。

10恢复最近的日志
1>RESTORELOGtestFROMDISK='D:/ProgramFiles/MicrosoftSQLServer/MSSQL/BACKU
P/test_2.bak'WITHRECOVERY
2>go
已处理2页,这些页属于数据库'test'的文件'TEST_Log'(位于文件1上)。
RESTORELOG操作成功地处理了2页,花费了0.056秒(0.173MB/秒)。

数据已经完全恢复了,可以使用了。
select*froma
go

总结,DBA应该有一个完善的数据库备份计划。本例中,如果没有一个完全备份的话,数据库的恢复就不可能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: