首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

自动备份出现多个bak文件

2013-10-24 
自动备份出现多个bak文件求助!我们的系统数据库版本是ms-sql Server 2008 R2我们设置了维护计划每天凌晨2

自动备份出现多个bak文件求助!
我们的系统数据库版本是ms-sql Server 2008 R2
我们设置了维护计划每天凌晨2点进行备份数据库,但是有时会备份2次:时间分别是2点和2点半;有时会备份3次2:时间是2点、2点半和3点。有谁知道这是什么原因吗?
我试着删除了维护计划并关闭代理,结果2点的备份没有了,但是2点半和3点还是会自动备份。
-------------------分割线--------------------
这是一个历史遗留问题,原先数据库不是由我来维护。
据说:
1、数据库三年前做过一次迁移,迁移后发现维护计划没有了,所以重新设置了新的维护计划,但已无法考证多次备份的情况是否从那时开始,我正我接手以后一直都是备份两三次。
2、原来数据库系统是2008而且不是正版,是去年升级成2008 r2正版的。


以上两点供参考,求助,怎么让2点半和3点不再备份,大恩不言谢。
[解决办法]
你设个sql trace,跟踪一下2点半和3点是不是系统自发的还是有人为?我觉得人为的可能性不高,还有,检查一下windows的计划任务上是不是有备份的操作,这个嫌疑比较大
[解决办法]
lz筛查一下作业,在2点,3点执行情况,有没有备份的相关作业。

另外,老黄说的也是一个需要检查的地方。 
[解决办法]
认真查看备份计划和job,不可能无缘无故地多出备份出来
[解决办法]
1)JOB
2)SP
3)windows计划
4)其它程序后台执行
[解决办法]
这种情况说明,还有其他的备份在运行,看看sql server代理job下面的作业,很有可能是在定时作业中调用了某个存储过程sp,我之前的公司就是在作业里调用了存储过程来来进行备份的。

这个可以查询在某个时间段里开始运行的定时作业:

select j.name as job_name,
        
       js.step_name,
        
       h.run_date,   --运行日期
       h.run_time,   --运行时间
       h.run_duration,  --运行持续时间
       h.server,
        
       case run_status
            when 0  then '失败'
            when 1  then '成功'
            when 2  then '重试'
            when 3  then '取消'
            when 4  then '正在进行'
       end as run_status
             
from msdb.dbo.sysjobhistory h
 
inner join msdb.dbo.sysjobs j
        on h.job_id = j.job_id
         
inner join msdb.dbo.sysjobsteps js
        on js.job_id = h.job_id
           and js.step_id = h.step_id




另外,看看sql server的管理节点中,有个维护计划,有没有相应的备份计划。

[解决办法]
应该是某些未停的自动化作业,前端程序写的那种.

建议用SQL Profiler工具跟踪一下其来源.
设定过滤条件: TextData like '%backup database%'
这样就能跟踪到那些备份数据库的TSQL.

SQL Profiler工具可跟踪到执行TSQL对应的HostName(主机名),LoginName(登录名),ApplicationName(程序名),
SPID(进程ID)等信息. 这些应该足够确定其来源了.
[解决办法]
直接查询SQL SERVER DEFAULT TRACE,里面有记录备份信息的,可以查到备份的Application是什么,HOSTNAME等,看这个就可以查到了。没必要新创建Trace。 

热点排行