我正在尝试将一些 SQL Server 代理作业从一台服务器复制到另一台服务器(均使用 SQL Server 2000)。
我找到了如何创建一个脚本来创建所有这些,但这些作业似乎有依赖关系,例如 DTS 包,我需要复制所有内容(并且不要真的知道我在做什么,说实话吧)。
因此我尝试了内置的数据库复制向导(在企业管理器中,还记得吗?)。但正如您在下面链接的屏幕截图中看到的那样,它声称目标 .mdf 和 .ldf 文件已经存在(但实际上并不存在),或者磁盘空间不足(但实际上有)。
看到这两行旁边的状态中都有一个绿色勾号吗?但是,再往下,有一个红色叉号。屏幕令人困惑:是否有错误?
如果您点击“修改”(抱歉,当您的声誉较低时,有关链接的规则很愚蠢):
http://img16.imageshack.us/img16/9439/cdwerror2.png
再次,我看到了所有绿色勾号,但底部却出现了那些讨厌的红色叉号。这是什么意思?还是两者都是什么意思?
所以我还是继续了......完成后,屏幕上报告了以下失败:
CDW 登录任务步骤:失败,但这没关系 - 它只是无法传输管理员登录(我认为这不是问题,因为它是该机器的本地 Windows 管理员登录)。
CDW MSDB 任务步骤: 失败,对象脚本正确,但无法传输,例如:
传输 MSBD Update_Daily_Person_Set(SQL SERVER AGENT JOB) 步骤错误来源:Microsoft 数据转换服务 (DTS) 包 步骤错误描述:未指定的错误 步骤错误代码:80004005 步骤错误帮助文件:sqldts80.hlp 步骤错误帮助上下文ID:1100
我不确定在哪里可以找到 sqldts80.hlp(有人知道吗?),并且谷歌搜索 80004005 SQL Server 错误显示,它可能是大约一百种不同的东西中的任何一种(字面意思),具体取决于其余的错误消息(在这种情况下没有给出任何内容)。
CDW 数据库任务步骤:
.mdf 文件的实际复制失败。一个 DB 不会尝试复制,因为它有活动连接 - 我认为我可以断开这些连接来解决该问题。
感谢您读到这里!
我尝试允许“所有人”对目标文件夹具有写入权限,但没有变化。还有其他想法吗?
答案1
我从未使用过复制数据库向导来复制系统数据库,但它可能不适用于此。我知道这项任务对我来说很不稳定,我很少使用它。
您要移动服务器吗? msdb 包含系统信息,如果您不打算在新服务器上替换所有信息,则我不一定会传输它。
移动 DTS 包很麻烦,但你可以打开它们并保存到新服务器(另存为),或者你可以使用类似这样的方法http://www.sqldts.com/204.aspx
对于作业来说,这些都是简单的脚本文件,并且它们可能不依赖于登录。如果有,sp_help_revlogin 将通过脚本将它们移动到新服务器。
我知道这看起来很复杂,但其实并没有那么糟糕,而且研究这个问题所需的手动时间可能就浪费了。
传输时,您有一个目标文件夹,但逻辑文件中存储了一条路径,并且可能与新服务器匹配。安装是默认的吗?两个服务器上的 msdb.mdf 路径相同吗?