SQLSERVER2008备份对日志文件的操…

http://www.shangxueba.com/jingyan/52245.html

--待确认该测试

 

今天碰到一位朋友提出问题,SQLSERVER全库备份时,如果日志文件很大,是否也会包含进备份文件里,经过实验如下:

--创建数据库

create database db1
on primary  (
name='db1',
filename='e:\ls\db1.mdf',
size=3mb,
filegrowth=1mb
)
log on
(name='db1_log',
filename='e:\ls\db1.ldf',
size=512mb,
filegrowth=10mb)

 

--执行全库备份

backup database db1 to disk='e:\ls\db1.bak'

--此时发现备份文件仅不到2MB,说明日志文件和数据文件都不是完整拷贝(其实数据文件是按其所使用的数据页来备份的)

 

--设法生成日志

use db1
create table t1 (id int)
go

declare @var int
set @var=1000000

while @var>0
begin
 insert into t1 values(@var)
 set @var=@var-1
end

--查看下日志文件,不再是空的了

dbcc sqlperf('logspace')

--结果如下:

Database Name Log Size (MB) Log Space Used (%) Status
db1 511.9922 95.64918 0
--由此可见,此时日志文件已经基本填满,当然,此时数据文件已经15360KB

 

--再做一次全库备份

backup database db1 to disk='e:\ls\db1_2.bak'

--经查看备份文件,此时为15449KB,略大于数据文件

 

--我们用此备份还原一个数据库出来,看看其日志文件是否还完整

restore database db11 from disk='e:\ls\db1_2.bak'
with move 'db1' to 'e:\ls\db1_2.mdf', move 'db1_log' to 'e:\ls\db1_2.ldf'

 

dbcc sqlperf('logspace')

--结果如下:

Database Name Log Size (MB) Log Space Used (%) Status
db1 511.9922 95.64918 0
db11 511.9922 8.276588 0

 

--由此可见,日志文件内部已经基本为空了

--到这里,至少可以说明全库备份时应该是只备份了必要的日志,而非全部日志。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值