33

我需要检查为什么我们的一个系统中的数据库备份失败。

日志显示以下内容:

BACKUP 未能完成命令 BACKUP LOG XXXXXX。检查备份应用程序日志以获取详细消息。

我进入了 Windows 事件日志,检查了应用程序日志,并猜测我在这些日志中发现了这个特定错误

BACKUP 未能完成命令 BACKUP LOG XXXXXX。检查备份应用程序日志以获取详细消息。

默认情况下,实际的备份应用程序日志存储在哪里?

4

4 回答 4

50

打开 SSMS 并连接到数据库,转到管理 > 维护计划 > 选择您的备份计划。> 右键单击​​并查看历史记录。

或管理 > sql server 日志。

目录位置:c:\Program Files\Microsoft SQL Server\MSSQL.xx\MSSQL\LOG

于 2012-05-10T09:58:36.477 回答
8

SQL 服务器本身捕获的唯一信息是您已经引用的信息:

BACKUP 未能完成命令 XXXXXX。检查备份应用程序日志以获取详细消息。

这就是 SQL 错误日志(SSMS > 管理 > SQL Server 日志)和 MSSQLSERVER 的 Windows 应用程序错误日志中显示的全部内容。

当它说“检查备份应用程序日志”时,它意味着检查实际执行备份的任何应用程序的日志(如果有的话)

  • 如果备份作为 SQL 代理作业的一部分运行,请检查该作业的作业历史记录(而不是“SQL 代理日志”)。
  • 如果备份作为 SSIS 包的一部分运行,请检查 SSIS 包日志,如果它被配置为创建一个。
  • 如果备份作为 SQL 维护计划的一部分运行,请检查该维护计划的历史记录。
  • 如果备份是通过第 3 方备份软件运行的,请检查该应用程序的日志。
  • 如果在其他任何地方都找不到它,请检查 Windows 应用程序事件日志以查看其他应用程序是否在 MSSQLSERVER 记录“备份失败”的同时记录了其他内容。

如果您在其他任何地方都找不到它,则可能没有捕获更详细的错误。SSIS 包可能未配置为执行详细日志记录,或者有人在 GUI 中运行了手动备份,但在屏幕上忽略或修复了错误。您可能必须找出谁试图运行备份并询问他们失败的原因。

于 2017-07-27T14:39:16.753 回答
2

我遇到过同样的问题。使用 PS.Script 备份 DB。日志中的信息没有帮助。原因是我的 powershell 脚本超时

“$server.ConnectionContext.StatementTimeout = 0”的设置没有帮助

$ret=Invoke-Sqlcmd -Query $SQLStatement -ServerInstance $ServerName -ErrorAction 'Stop' -QueryTimeOut 600

设置 QueryTimeOut 就可以了。

于 2015-03-26T09:11:47.050 回答
1

亲爱的,如果您没有完整备份,通常会发生此错误....由于某些原因,如果完整备份计划未完成,则会出现此错误

您可以做的是执行完整备份计划或等到完整备份作业成功完成,然后自动开始每小时备份一次

于 2013-01-15T07:16:46.933 回答