/*--数据修复案例
如何在数据库文件损坏(日志文件完好)情况下,进行恢复
--(收藏整理)--*/
--测试步骤
--1.建一个测试数据库test
create database test
go
use test
go
--2.建一个表,插入记录
create table a(c1 varchar(2))
insert into a
select 'aa'
union all select 'bb'
go
--3.作完全备份,到文件:c:/a.bak
backup database test to disk='c:/a.bak' with init
--4.做一些修改
insert into a values('cc')
go
create table b(c1 int)
insert into b
select 1
union all select 2
go
/*--以下操作不能在查询分析器中进行
--5.停止SQL服务数据库服务器
--6.用ultraedit编辑数据库文件test_data.mdf,随便修改点字节内容
--7.启动数据库,并且运行企业管理器,点开数据库,看到test变成灰色,而且显示置疑。
--下面的操作回到查询分析器中--*/
--8.进行日志备份
use master
go
backup log test to disk='c:/a.bak' with no_truncate
go
--9.恢复最老的完全备份
restore database test from disk='c:/a.bak' with norecovery,replace
go
--10.恢复最近的日志
restore log test from disk='c:/a.bak' with file=2,recovery
go
--11.显示结果,看数据是否恢复
use test
go
select * from a
go
select * from b
go
--12.清除测试环境
use master
go
drop database test
exec master..xp_cmdshell 'del c:/a.bak',no_output
/*--测试结果(证明恢复成功)
c1
----
aa
bb
cc
(所影响的行数为 3 行)
c1
-----------
1
2