拼吾爱程序人生

首页 » 数据库编程 » SQL Server » SQL Server2000数据库文件损坏时如何恢复
Systemjudge - 2007-8-6 16:55:00
SQL Server2000中,如果数据库文件(非系统数据库文件)遇到错误的时候,我们该怎么办。以下是笔者以前的笔记。仅适用于非master,msdb的数据库。 
说明如下: 
 
   
   
   
 
 
   
   
     
       
         
       
     
     
   
 
 
   
   
   
 

1 建一个测试数据库test(数据库类型为完全)2 建一个表,插入点记录  create table a(c1 varchar(2))  go  insert into a values('aa')  go  insert into a values('bb')  go3 作完全备份,到文件test_1.bak4 在作一点修改  insert into a values('cc')  go  create table b(c1 int)  go  insert into b values(1)  go  insert into b values(2)  go5 shutdown 数据库服务器6 用ultraedit编辑数据库文件test_data.mdf,随便修改点字节内容,相当于数据库遭到致命的损坏。7 启动数据库,并且运行企业管理器,点开数据库,看到test变成灰色,而且显示置疑。8 运行isql -SLocalhost -Usa -P1> backup log test TO DISK='D:Program FilesMicrosoft SQL ServerMSSQLBACKUP est_2.bak' WITH NO_TRUNCATE2>go已处理 2 页,这些页属于数据库 'test' 的文件 'TEST_Log'(位于文件 1 上)。BACKUP LOG 操作成功地处理了 2 页,花费了 0.111 秒(0.087 MB/秒)。 
9 进行恢复最老的完全备份1> RESTORE DATABASE test FROM DISK='D:Program FilesMicrosoft SQL ServerMSSQLBACKUP est_1.bak' WITH NORECOVERY2> go已处理 96 页,这些页属于数据库 'test' 的文件 'TEST_Data'(位于文件 1 上)。已处理 1 页,这些页属于数据库 'test' 的文件 'TEST_Log'(位于文件 1 上)。RESTORE DATABASE 操作成功地处理了 97 页,花费了 0.107 秒(7.368 MB/秒)。 
10 恢复最近的日志1> RESTORE LOG test FROM DISK='D:Program FilesMicrosoft SQL ServerMSSQLBACKUP est_2.bak' WITH RECOVERY2> go已处理 2 页,这些页属于数据库 'test' 的文件 'TEST_Log'(位于文件 1 上)。RESTORE LOG 操作成功地处理了 2 页,花费了 0.056 秒(0.173 MB/秒)。 
数据已经完全恢复了,可以使用了。select * from ago 
总结,DBA应该有一个完善的数据库备份计划。本例中,如果没有一个完全备份的话,数据库的恢复就不可能

 您可能对 [SQL Server] 的这些文章也感兴趣:

SQL Server2005高可用性方面的不足
SQL Server最佳实践分析器将被集成至SQL Server 2008中
通过OSQL命令执行SQL SERVER批SQL
Windows Mobile 5.0访问Sql Server 3.5(1)
SQL Server 2008的Change Data Capture功能
用SQL SERVER 2005新提供的命令实现行列转换
SQL Server 2005对结果集分页
SQL Server 2008 Feb CTP开放下载
SQL Server 2008: Installation Center
SQL Server 2008的四项新特性
在SQL Server2005中实现数组映射
SQL Server2008的商业智能介绍
1
查看完整版本: SQL Server2000数据库文件损坏时如何恢复
Modify by pin5i DZNT_ExpandPackage 2.1.3293 2007-2009 pin5i.com
 Total Unique Visitors: