我正在尝试将Sql Server 2008数据库从生产服务器复制到开发服务器。我设置了一个新的空目标数据库,并将“传输Sql服务器对象”任务添加到“控制流”窗格中。我将任务配置为使用SMOServer连接(两者都测试正常)。我试过复制所有对象并复制我想要的对象。我已将其设置为首先删除目标对象,即使目标数据库中没有任何内容。
然而它拒绝工作。它完全没有生成任何错误信息,尽管事实上我已经尝试打开我能找到的每个日志记录选项。我得到的只是验证阶段的成功,一系列警告,某些类别的对象不存在要复制(这是正确的),然后在“黄色区域”中挂起“(挂起”)(即,任务框是以黄色突出显示。)
在世界上如何能够像复制数据库一样简单,直接和频繁地完成这么困难?我究竟做错了什么?除了使用SSIS,我的意思是:)。
P.S。叹。每一次 - 每一次 - 我都尝试使用SSIS来做一些应该简单的事情,最终成为皇家PITA。恕我直言,这是微软有史以来最糟糕的开发软件之一。我希望雷德蒙德掌管它的人会坐在我旁边的其中一次......所以他可以体验到一万个太阳的热度,让他感到愤怒和沮丧:)。
修改
为了回应Diego的反馈,我应该提到我在源数据库所在的服务器上没有sysadmin权限。这是第三方托管服务。
此外,此问题的“解决方法”涉及从目标服务器上的SqlServer Management Studio中执行导入数据。这不是一个好的解决方法 - 它省去了所有键,触发器,sprocs等 - 但它至少得到了我的核心数据。
但我也遇到了问题,因为我在源服务器上使用“非集成安全性”但在目标/目标服务器上集成了安全性。向导中没有任何内容指出问题是这样做的,但事实证明它会导致生成的SSIS包失败。安全方法必须匹配交易的两个“目的地”。
答案 0 :(得分:0)
有时10,000太阳不够:) 我理解你的挫败感,SSIS在某些情况下处理起来真的很难,但它是一个非常强大的工具。
无论如何,我会告诉你从检查权限开始。我之前在使用“首先删除目标对象”移动登录时我遇到了问题,我的用户没有权限创建登录,因此他们首先进行了droped,当它是时候重新创建它们时,程序包失败了,离开了我的没有登录的实例并将我锁定在SQL之外。
非常令人沮丧的情况,我会在删除之前在组件上写一些东西来检查,如果我有权创建防止这种情况的对象。
是的,无论如何,尝试使用sys admin用户运行你的软件包,例如