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

来源:互联网 发布:淘宝网是如何推广方法 编辑:程序博客网 时间:2024/05/12 19:42
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>

数据库文件损坏时候如何恢复

欢迎大家同我交流:小白 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应该有一个完善的数据库备份计划。本例中,如果没有一个完全备份的话,数据库的恢复就不可能。
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
<script type="text/javascript"><!--google_ad_client = "pub-2947489232296736";/* 160x600, 创建于 08-4-23MSDN */google_ad_slot = "4367022601";google_ad_width = 160;google_ad_height = 600;//--></script><script type="text/javascript"src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>