与 SQL 代理和数据库还原相关的 SQL Server 2005 错误

与 SQL 代理和数据库还原相关的 SQL Server 2005 错误

我一直将 SQL 2005 数据库从一台服务器恢复到另一台服务器(类似的规格,相同的版本和服务包等),并且遇到了以下情况。

问题始于数据库的恢复 - 恢复过程运行良好,我使用管理工作室并执行恢复,恢复过程顺利完成,所有数据都在那里,可以使用。但是,当我尝试运行现有维护计划备份时,出现以下错误:

执行失败。有关详细信息,请参阅维护计划和 SQL Server Agent 作业历史记录日志。附加信息 -> Job'Full_Backup.Subplan_1' 失败。(SQL ManagerUI)附加信息为我提供了以下程序位置:位于 Microsoft.SqlServer.Management.SqlManagerUI.MaintenancePlanMenu_Run.PerformActions()

这时我尝试重新创建维护计划,当我选择数据库作为完整备份的一部分时,我刚刚恢复的数据库在选择窗格中丢失了。

我已经在 2 台“全新”服务器上复制了此问题,这两台服务器都新安装了 SQl server 2005。据我估计,恢复操作是罪魁祸首,因此如果有某种方法可以追踪它正在做什么,也许我可以对其中一个系统数据库进行调查。

这个问题已经困扰了好几个星期了,如果能得到任何帮助我都会很感激。

答案1

我似乎偶然发现了答案。看来原始 SQL Server 是从 7 升级到 2000 再升级到 2005!太疯狂了,但显然在我之前就已经使用了 8 年。

该问题似乎与数据库兼容性有关,请参阅以下 msoft 文章

链接文本

“兼容级别设置为 70 或更低的数据库不会显示”

我已经通过将级别改为 90 进行了测试,并且确实现在可以正常工作。

感谢所有回复的人,这个网站非常有用。

答案2

一个问题可能是这些数据库中存在的用户可能与其他服务器上的用户不具有相同的 SID。可能该维护计划是使用孤立用户的凭据执行的。MS SQL 有一个存储过程可以修复这些孤立用户:sp_change_users_login

只需从 SQL Management Studio 转到新服务器上的数据库,转到“安全性”并查看该数据库上的登录信息。然后对每个用户执行以下修复命令。

使用数据库

sp_change_users_login'auto_fix','用户名'

-- 其中“database”是您所恢复的数据库的名称。

答案3

由于这些数据库正在从一台服务器移动到另一台服务器,因此您可以检查 Master 中的 sysdatabases 表以查看是否存在不一致。如果 dbid 不同步,则可能是旧维护计划无法查看已恢复的数据库。

答案4

您可能会发现,这就像在还原数据库后刷新对象资源管理器一样简单。SSMS 缓存了大量信息,因此它不必一遍又一遍地返回服务器获取相同的数据,更不用说缓存中已有数据的性能改进了。创建维护计划可能是读取缓存信息的一个地方。

相关内容