这段时间看了关于在SQL server 中通过日志和时间点来恢复数据。也看了一些网上的例子,看如何通过日志来恢复数据。
前提条件:
数据库的故障恢复改为非简单模式,去掉自动关闭和自动收缩两个选项
如果是简单模式:类似下面的语句操作数据就不会记录到日志中: select * into t from [表名]
这时为保证数据的完整要将数据库的恢复模式改成“完整”
测试环境:
1、建立数据库和测试表
1
2
3
4
5
6
|
create
database
zp
create
table
[zping.com](
id
int
,
name
varchar
(20)
)
|
2、插入测试数据
1
2
3
4
5
6
7
8
|
insert
into
[zping.com](id,
name
)
values
(1,
'zping.com1'
)
insert
into
[zping.com](id,
name
)
values
(2,
'zping.com2'
)
insert
into
[zping.com](id,
name
)
values
(3,
'zping.com3'
)
insert
into
[zping.com](id,
name
)
values
(4,
'zping.com4'
)
|
备份数据库,可以通过sql server的可视化操作,下面是生成的代码:
[code]BACKUP DATABASE [zp] TO DISK = N'C:\k.bak' WITH NOFORMAT, NOINIT,
NAME = N'zp-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD, STATS = 10
GO[code]
查看数据:
注意:这时我们做一个完整备份
这时可能一不小心删除了一些数据。我们模拟一下:(假定删除了1,2的数据)