2000文件损坏时如何恢复
2008-04-28 07:54
344 查看
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:ProgramFilesMicrosoftSQLServerBACKUP
est_2.bak'WITHNO_TRUNCATE
2>go
已处理2页,这些页属于数据库'test'的文件'TEST_Log'(位于文件1上)。
BACKUPLOG操作成功地处理了2页,花费了0.111秒(0.087MB/秒)。
9进行恢复最老的完全备份
1>RESTOREDATABASEtestFROMDISK='D:ProgramFilesMicrosoftSQLServerMSSQL
BACKUPest_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:ProgramFilesMicrosoftSQLServerMSSQLBACKU
Pest_2.bak'WITHRECOVERY
2>go
已处理2页,这些页属于数据库'test'的文件'TEST_Log'(位于文件1上)。
RESTORELOG操作成功地处理了2页,花费了0.056秒(0.173MB/秒)。
数据已经完全恢复了,可以使用了。
select*froma
go
总结,DBA应该有一个完善的数据库备份计划。本例中,如果没有一个完全备份的话,数据库的恢复就不可能
说明如下:
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:ProgramFilesMicrosoftSQLServerBACKUP
est_2.bak'WITHNO_TRUNCATE
2>go
已处理2页,这些页属于数据库'test'的文件'TEST_Log'(位于文件1上)。
BACKUPLOG操作成功地处理了2页,花费了0.111秒(0.087MB/秒)。
9进行恢复最老的完全备份
1>RESTOREDATABASEtestFROMDISK='D:ProgramFilesMicrosoftSQLServerMSSQL
BACKUPest_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:ProgramFilesMicrosoftSQLServerMSSQLBACKU
Pest_2.bak'WITHRECOVERY
2>go
已处理2页,这些页属于数据库'test'的文件'TEST_Log'(位于文件1上)。
RESTORELOG操作成功地处理了2页,花费了0.056秒(0.173MB/秒)。
数据已经完全恢复了,可以使用了。
select*froma
go
总结,DBA应该有一个完善的数据库备份计划。本例中,如果没有一个完全备份的话,数据库的恢复就不可能
相关文章推荐
- [HOWTO]2000文件损坏的时候如何恢复
- 如何恢复SQL Server 2000损坏的数据库文件
- 如何恢复SQL Server 2000损坏的数据库文件
- 硬盘视频文件损坏如何快速恢复
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
- SQL Server2000数据库文件损坏时如何恢复
- SQL Server2000数据库文件损坏时如何恢复
- SQLServer2005数据库日志文件损坏的情况下如何恢复数据库
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
- 文件不小心损坏了该如何恢复
- U盘文件被损坏如何才能恢复
- [HOWTO]SQL Server2000数据库文件损坏的时候如何恢复
- 在XP中如何恢复损坏的系统文件
- 控制文件发生损坏,如何恢复
- 电脑文件中毒损坏如何恢复
- SQL Server2000数据库文件损坏时如何恢复
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
- SQL Server2000数据库文件损坏时如何恢复(转载)