[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应该有一个完善的数据库备份计划。本例中,如果没有一个完全备份的话,数据库的恢复就不可能。
欢迎大家同我交流:小白 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应该有一个完善的数据库备份计划。本例中,如果没有一个完全备份的话,数据库的恢复就不可能。
相关文章推荐
- [HOWTO]SQL Server2000数据库文件损坏的时候如何恢复
- 2000文件损坏时如何恢复
- 如何恢复SQL Server 2000损坏的数据库文件
- 如何恢复SQL Server 2000损坏的数据库文件
- Win7的硬盘损坏如何恢复不见文件
- SQL Server2000数据库文件损坏时如何恢复
- 硬盘视频文件损坏如何快速恢复
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
- 怎么用引用啊?[转]SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
- SQLServer2000数据库文件损坏时如何恢复
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库
- Linux恢复被删除的文件 How To Recover Deleted Files From Your Linux System
- Oracle HowTo:如何通过只读方式更改Oracle数据文件位置
- 文件不小心损坏了该如何恢复
- 断电后笔记本损坏文件如何恢复
- How to use logrotate to manage log files in linux(如何在Linux中使用logrotate去管理日志文件)
- U盘文件被损坏如何才能恢复
- Oracle HowTo:如何移动数据文件的位置?
- (转)SQL Server2000数据库文件损坏时如何恢复
- SQL Server 2005数据库日志文件损坏的情况下如何恢复数据库