1

我正在尝试将 Sql Server 2008 数据库从生产服务器复制到开发服务器。我设置了一个新的空目标数据库,并将 Transfer Sql Server Objects 任务添加到控制流窗格。我将任务配置为使用 SMOServer 连接(两者都测试正常)。我试过复制所有对象和只复制我想要的对象。我已将其设置为首先删除目标对象,即使目标数据库中没有任何内容。

然而它拒绝工作。尽管我已经尝试打开我能找到的每个日志记录选项,但它绝对不会产生任何错误信息。我得到的只是验证阶段的成功,一系列警告说某些类的对象不存在复制(这是正确的),然后是“黄色区域”中的“挂起”(即任务框是以黄色突出显示)。

像复制数据库这样简单、直接和经常完成的事情怎么会如此困难?我究竟做错了什么?除了使用 SSIS,我的意思是:)。

ps 叹息。每一次——每一次——我都尝试使用 SSIS 来做一些应该非常简单的事情,它最终变成了一个皇家 PITA。恕我直言,这是微软对世界造成的最糟糕的开发软件之一。我希望在雷德蒙德负责它的人有一次能坐在我旁边……这样他就可以体验到相当于 10,000 个太阳的愤怒和沮丧的热度 :)。

编辑:

为了回应 Diego 的反馈,我应该提到我在源数据库所在的服务器上没有系统管理员权限。它在第 3 方托管服务上。

此外,我针对此问题的“解决方法”涉及从目标服务器上的 SqlServer Management Studio 中执行导入数据。这不是一个好的解决方法——它忽略了所有的键、触发器、存储过程等——但它至少让我的核心数据得到了理解。

但是我在那里也遇到了一个问题,因为我在源服务器上使用了“非集成安全性”,但在目标/目标服务器上使用了集成安全性。向导中没有任何内容可以指出以这种方式做事的问题,但事实证明它会导致生成的 SSIS 包失败。安全方法必须在事务的两个“端”上匹配。

4

1 回答 1

0

有时 10,000 个太阳是不够的 :) 我理解您的沮丧,SSIS 在某些情况下确实很难处理,但它是一个非常强大的工具。

无论如何,我会告诉你从检查权限开始。在选择“首先删除目标对象”移动登录名之前,我遇到了问题,并且我的用户没有创建登录名的权限,因此首先删除了它们,当需要重新创建它们时,包失败,留下我的没有登录的实例并将我锁定在 SQL 之外。

真是令人沮丧的情况,我会在组件上写一些东西来检查,在删除之前,如果我有权创建防止这种情况的对象。

是的,无论如何,尝试使用系统管理员用户运行你的包

于 2012-07-12T10:58:19.457 回答