3

我正在尝试将数据库从一台服务器复制到另一个位于不同位置的服务器,包括所有架构、数据、DTS 包和计划作业。我使用 Redgates SQL Packager 来打包模式和数据。但是我在以更简单的方式打包 DTS 包(这是一个非常复杂的包)时遇到了麻烦。请指教!

4

5 回答 5

4

我现在手头没有 SQL2000,但我记得你可以简单地打开 DTS,单击文件\另存为...,然后另存为 DTS 文件,这样就可以将 DTS 上传到另一台服务器上.

于 2009-06-09T16:35:50.370 回答
3

SQLDTS在“管理和管理”页面上有一个链接,用于传输存储在 msdb 中的包。

它还具有指向工具DTSBackup 2000和其他DTS 包的链接以传输 DTS 包

基本上,如果它不在此站点上,那么与 DTS 相关的任何事情都不重要......

于 2009-06-09T16:52:56.387 回答
2

虽然有点小技巧,但您可以msdb.dbo.sysdtspackages使用 BCP 直接输入和输出 DTS 包脚本。我现在没有要测试的系统,但是 out 命令类似于:

bcp "select top 1 from msdb.dbo.sysdtspackages where name = '~your_package_name~' order by createdate desc" queryout c:\temp\dts.bak -n -S ~source_server_name~ -E

此命令获取最新版本的 DTS 定义并将其编写为原生格式的 BCP 文件(如果使用 SQL 身份验证,则需要使用该文件)-P ~password~ -U ~username~-E

然后在第二台服务器上导入:

bcp msdb.dbo.sysdtspackages in c:\temp\dts.bak -S ~target_server~ -E

如果您在两台服务器上编辑包,这可能会导致问题,因为唯一标识符不一定匹配,并且您最终会得到两个具有相同名称的包。但是,如果您只在一台服务器上进行编辑,则可以正常工作。

于 2009-06-09T16:45:45.163 回答
1

据我所知,没有简单的方法。有许多迂回的方式来做到这一点。我个人决定创建一个 DTS 包来复制我的 DTS 包,因为我必须定期移动它们。文件保存和加载方法适用于一次性情况。

链接讨论将 2000 DTS 包移动到较新的服务器,但所有方法都适用于将 DTS 包复制到另一台 2000 服务器。

于 2009-06-09T16:40:47.087 回答
0

可以使用 VB 脚本轻松部署 DTS。大约 3-4 年前,我曾亲自使用过它。看一下这个:

http://cyrilbeschi.blogspot.com/2012/03/deploying-dts-packages-in-sql-server.html

它还包含示例代码。

于 2012-03-12T06:09:28.313 回答