SQL 备份无历史记录

SQL 备份无历史记录

我有一些 SQL 2005 作业,它们每晚将数据库备份到本地驱动器。

作业运行正常(嗯,我可以看到他们正在做一些事情),因为我可以看到每天晚上都会写入一个新的备份文件。

当我右键单击该作业并查看历史记录时,没有任何内容。

其他工作确实会显示历史记录,并且一般来说,有比我感兴趣的工作更早的历史记录(即日志不会被清除)。

除非备份由另一个进程运行(因此会有一些历史记录)——我不相信是这样——我的历史记录在哪里?

我想我在这里遗漏了一些非常简单的事情(这是星期五的下午)。

答案1

以下是一些建议:

  1. 查看文件的创建时间就可以准确了解作业的开始时间。
  2. 查看 SQL 错误日志。这应该可以最好地表明正在执行备份的内容(如果它是由 SQL Server 控制的任何内容(例如另一项作业)启动的)。
  3. 查看系统的应用程序日志,这也会提供一些线索。
  4. 可能是您的数据库备份正在由一个 catchall 作业(而不是您专门为数据库设置的作业)运行。
  5. 查看数据库本身的备份历史记录(即不是作业历史记录),因为这也可能提供线索。

我希望这会有所帮助(可能还有其他地方我遗漏了,但是当你完成以上所有内容后,我很确定你已经明白了)。

答案2

查看 msdb 中 msdb..backupset 表的内容,获取有关最新备份的信息。它包含一个 backup_finish_date 字段。(当您右键单击数据库并在属性中查看上次备份日期时,信息就会从此处提取。)

select *
from msdb..backupset 
where 
b1.[type] = ('D') -- database backup (not log!)  

要弄清楚什么作业可能正在备份服务器,您可以尝试这样的操作(希望这可以解析,我现在无法检查):

select jobname=j.name
, js.step_id
, js.step_name
, js.command
from msdb..sysjobs j
join msdb..sysjobsteps js on
j.job_id=js.job_id
where js.command like '%backup%'

这是我发表了一篇关于检查上次备份日期的博客文章……

相关内容