我正在尝试创建一个将自动运行并自动备份我的 SQL Server 2005 数据库的维护计划。我创建一个新的维护计划并添加“备份数据库任务”,选择所有用户数据库,然后选择要备份到的路径。
图像http://www.freeimagehosting.net/uploads/16be7dce43.jpg[新用户限制]
当我保存并尝试执行该计划时,收到以下错误消息:
===================================
Execution failed. See the maintenance plan and SQL Server Agent job history logs for details.
===================================
Job 'Backup.Subplan_1' failed. (SqlManagerUI)
我检查了维护计划日志、代理日志以及我能找到的几乎每个日志文件,但没有任何条目可以帮助我找出失败的原因。
如果我右键单击特定数据库并选择“备份”,任务就会成功。我尝试更改计划以仅备份该数据库,但仍然失败。
我尝试使用 sa 帐户通过 Windows 身份验证和 SQL Server 身份验证运行该计划。我还尝试专门授予 SQL Server Agent 用户帐户对备份文件夹的完整权限,但仍然失败。
谢谢您的任何建议!
答案1
检查您的 SQL 版本,如果是 SQL 2005,则需要 SP2 才能在没有 Integration Services 的情况下工作。无论如何,SQL 2008 都需要 Integration Services。
在默认日志目录中查找维护计划日志的文本输出,它应该会比 SQL 代理给出更好的错误信息:c:\program files\microsoft sql server\mssql\mssql.1\log
如果不是计算机上的本地管理员,请确保您的服务帐户对该备份目录具有完全权限
答案2
我遇到了同样的问题。查看代理日志给了我更多线索。(代理日志与创建维护计划时指定的日志文件不同)。就我而言,它包含一个警告:
SQLServer Error: 15404, Could not obtain information about Windows NT group/user 'xxx\xxxxx', error code 0x54b. [SQLSTATE 42000] (ConnIsLoginSysAdmin)
这让我想到以下帖子。简而言之,在 SSMS 中,转到SQL Server Agent
-> Jobs
-> Backup.Subplan_1
->Properties
并将所有者设置为非域用户;我使用sa
。
答案3
尝试先备份一个,而不是选择“所有用户数据库”。另外,您是否有任何标记为“脱机”的数据库?这会阻止我们的维护计划完成。
答案4
如果还没有,请查看应用程序日志和 SQL Server 代理日志。此外,如果尚未打开维护计划属性中的报告选项,请将其打开,并检查日志目录(如上所述)以获取更详细的错误。
如果您至少可以得到错误代码,请使用“net helpmsg”或其他方法查找。一旦找到实际发生的错误,修复应该相当容易。