27,580
社区成员
发帖
与我相关
我的任务
分享
backup database 数据库
to disk ='路径.bak'
with BUFFERCOUNT = 30, --使用30个buffer,每个buffer 是4MB,也就是一共120MB
MAXTRANSFERSIZE = 4194304 --4MB
看到了 是10分钟,那还有10分钟就是收缩数据库用掉了
我这边的数据库是没有日志备份策略的,因为业务决定不能把数据库还原到时间点。
系统表msdb.dbo.backupset里有backup_start_date字段(备份开始时间)和backup_finish_date字段(备份结束时间),查看一下是否差20分钟.select top 1 name, database_name, case when TYPE='D' then 'Database' when TYPE='I' then 'Diff Database' when TYPE='L' then 'Log' when TYPE='F' then 'File(Group)' when TYPE='G' then 'Diff File' when TYPE='P' then 'Partial' when TYPE='Q' then 'Diff Partial' end as BACKUPTYPE, backup_size/1024/1024 'BACKUPSIZE(MB)', backup_start_date '备份开始时间', backup_finish_date '备份结束时间' from msdb.dbo.backupset order by backup_set_id desc
select top 1 name,
database_name,
case when TYPE='D' then 'Database'
when TYPE='I' then 'Diff Database'
when TYPE='L' then 'Log'
when TYPE='F' then 'File(Group)'
when TYPE='G' then 'Diff File'
when TYPE='P' then 'Partial'
when TYPE='Q' then 'Diff Partial' end as BACKUPTYPE,
backup_size/1024/1024 'BACKUPSIZE(MB)',
backup_start_date '备份开始时间',
backup_finish_date '备份结束时间'
from msdb.dbo.backupset
order by backup_set_id desc
可能原因: 1、磁盘碎片,碎片多,同样的数据分布范围就光,备份是按区来做单位的。可以监控一下,备份过程中备份扫描了多少个区。如果区的差异很大,可能就是碎片问题。 2、10G日志,要看日志的内容有多少,完整备份时,除了数据文件,还会包含可用于恢复的那部分日志,如果“那部分日志”很多,那备份也多。 3、对比一下两次备份的备份文件大小。会不会相差很大。 4、I/O性能是否有降低,不过如果你的时间不是越来越久而是时而高时而低,那这个问题的发生机会应该没那么大。 5、有其他进程(包括windows和sqlserver)在同时运行,备份不仅要考虑IOPS,还要考虑IO带宽。带宽被占了,也一样不会快。 6、看看CPU的使用率是否很高,这个其实和5有点关系,如果有其他操作在做,占用了CPU,也会影响备份,备份除了高IO开销之外CPU开销也很重要。 我觉得你可以用backup语句,看看每次的区数是否合理增长,这个是最重要的