升级 Integration Services
适用于: SQL Server Azure 数据工厂中的 SSIS Integration Runtime
如果计算机上当前安装了 SQL Server 2008 Integration Services (SSIS) 或更高版本,则可以升级到 SQL Server 2019 Integration Services (SSIS)。
在安装了其中一个早期版本的 Integration Services 的计算机上升级到 SQL Server 2019 Integration Services (SSIS) 时,SQL Server 2019 Integration Services (SSIS) 将与早期版本并行安装。
通过采用这一并行安装,将安装 dtexec 实用工具的多个版本。 若要确保运行正确的实用工具版本,请在命令提示符下通过输入完整路径(<驱动器>:\Program Files\Microsoft SQL Server\<version>\DTS\Binn)来运行此实用工具。 有关 dtexec 的详细信息,请参阅 dtexec Utility。
注意
在 SQL Server 历史版本中,默认情况下当你安装 SQL Server 后,“本地用户和组”中的“用户”组的所有成员均已有权访问 Integration Services 服务。 安装 SQL Server 2016 (13.x) 及更高版本时,用户无权访问 Integration Services 服务。 该服务默认是安全的。 安装 SQL Server 后,SQL Server 管理员必须运行 DCOM 配置工具 (Dcomcnfg.exe) 以便向特定用户授予对 Integration Services 服务的访问权限。 有关详细信息,请参阅 Integration Services 服务(SSIS 服务)。
升级 Integration Services 前的准备工作
建议在升级到 SQL Server 2019 (15.x) 之前先运行升级顾问。 如果将现有 Integration Services 包迁移到 SQL Server 2019 (15.x) 所采用的新的包格式,则可能会遇到升级顾问报表问题。
注意
SQL Server 2012 版已不支持迁移或运行 Data Transformation Services (DTS) 包。 不再提供以下 DTS 功能:
- DTS 运行时
- DTS API
- 用于将 DTS 包迁移到下一版本的 Integration Services 的包迁移向导
- 支持在 SQL Server Management Studio 中进行 DTS 包维护
- 执行 DTS 2000 包任务
- 升级 DTS 包的顾问扫描。
有关其他已停止的功能的信息,请参阅 SQL Server 2016 中已停止使用的 Integration Services 功能。
升级 Integration Services
可以通过使用下列方法之一来进行升级:
运行 SQL Server 2019 (15.x) 安装程序,然后选择“从 SQL Server 2008、SQL Server 2008 R2、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 升级”选项。
在命令提示符处运行 setup.exe ,然后指定 /ACTION=upgrade 选项。 有关详细信息,请参阅从命令提示符安装 SQL Server 2016 中的“Integration Services 的安装脚本”部分。
不能通过升级执行下列操作:
重新配置 Integration Services 的现有安装。
从 SQL Server 的 32 位版本迁移到 64 位版本,或者从 64 位版本迁移到 32 位版本。
从 SQL Server 的一个本地化版本迁移到另一个本地化版本。
升级时,可以同时升级 Integration Services 和数据库引擎,也可以仅升级数据库引擎,或者仅升级 Integration Services。 如果仅升级数据库引擎,SQL Server 2008 Integration Services (SSIS) 或更高版本仍将正常运行,但是不具有 SQL Server 2019 Integration Services (SSIS) 的功能。 如果仅升级 Integration Services,SQL Server 2019 Integration Services (SSIS) 完全可以正常运行,但只能将包存储在文件系统中,除非其他计算机上有可用的 SQL Server 数据库引擎实例。
将 Integration Services 和数据库引擎同时升级到 SQL Server 2019 (15.x)
本节介绍执行符合以下条件的升级的影响:
将 Integration Services 和数据库引擎实例同时升级到 SQL Server 2019 (15.x)。
Integration Services 和数据库引擎实例位于同一台计算机上。
升级过程执行的操作
升级过程将执行以下任务:
安装 SQL Server 2019 Integration Services (SSIS) 文件、服务和工具(Management Studio 和 SQL Server Data Tools)。 如果 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 的多个实例位于同一台计算机上,当你首次将任何实例升级到 SQL Server 2019 (15.x) 时,将安装 SQL Server 2019 Integration Services (SSIS) 文件、服务和工具。
将 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 数据库引擎实例升级到 SQL Server 2019 (15.x) 版本。
将数据从 SQL Server 2008 Integration Services (SSIS) 或更高版本的系统表移动到 SQL Server 2019 Integration Services (SSIS) 系统表,如下所示:
移动包而无需将 msdb.dbo.sysdtspackages90 系统表更改为 msdb.dbo.sysssispackages 系统表。
注意
虽然数据移动到另一个系统表中,但是升级过程并不将包迁移到新的格式。
将文件夹元数据从 msdb.sysdtsfolders90 系统表移至 msdb.sysssisfolders 系统表。
将日志数据从 msdb.sysdtslog90 系统表移至 msdb.sysssislog 系统表。
将数据移动到新的 msdb.sysssis* 表后,删除 msdb.sysdts*90 系统表和用于访问它们的存储过程。 但是,升级过程将使用一个具有相同名称的 sysdtslog90 视图来替换 sysdtslog90 表。 这个新 sysdtslog90 视图将公开新的 msdb.sysssislog 系统表。 这可确保基于日志表的报表将继续运行而不会中断。
为了控制对包的访问,将新建三个固定的数据库级角色:db_ssisadmin、db_ssisltduser 和 db_ssisoperator。 系统不会移除 SQL Server 2005 (9.x) Integration Services 角色 db_dtsadmin、db_dtsltduser 和 db_dtsoperator,而是将其作为对应的新角色的成员。
如果 SSIS 包存储区(即由 Integration Services 服务管理的文件系统位置)位于 \SQL Server\90、\SQL Server\100、\SQL Server\110 或 \SQL Server\120 下的默认位置,请将这些包移动到 \SQL Server\130 下的新默认位置。
更新 Integration Services 服务配置文件以指向升级后的数据库引擎实例。
升级过程不执行的操作
升级过程不执行以下任务:
不会移除 SQL Server 2008 Integration Services (SSIS) 或更高版本的服务。
不会将现有 Integration Services 包迁移到 SQL Server 2019 (15.x) 所采用的新的包格式。 有关如何迁移包的信息,请参阅 升级 Integration Services 包。
不会移动位于默认位置以外的文件系统位置(已在服务配置文件中添加这些位置)中的包。 如果之前已向服务配置文件中添加了多个文件系统文件夹,不会将存储在这些文件夹中的包移至新位置。
在直接调用 dtexec 实用工具 (dtexec.exe) 的 SQL Server 代理作业步骤中,不会更新 dtexec 实用工具的文件系统路径。 必须手动编辑这些作业步骤,才能更新文件系统路径,从而为 dtexec 实用工具指定 SQL Server 2019 (15.x) 位置。
升级后可执行的操作
升级过程完成后,可以执行下列任务:
运行用于运行包的 SQL Server 代理作业。
使用 Management Studio 管理存储在 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 实例中的 Integration Services 包。 需要修改服务配置文件,以将 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 实例添加到服务管理的位置列表中。
注意
早期版本的 Management Studio 无法连接到 SQL Server 2019 Integration Services (SSIS) 服务。
通过检查 PackageFormat 列中的值,确定 msdb.dbo.sysssispackages 系统表中包的版本。 表中包含一个标识每个包的版本的 PackageFormat 列。 值为 3 表示 SQL Server 2008 Integration Services (SSIS) 包。 在将包迁移到新的包格式之前,packageformat 列中的值将不更改。
不能使用 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 工具来设计、运行或管理 Integration Services 包。 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 工具包括 SQL Server Data Tools (SSDT) 的相应版本、SQL Server 导入和导出向导以及包执行实用工具 (dtexecui.exe)。 升级过程不会删除 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x) 工具。 但是,你将无法在升级后的服务器上使用这些工具继续处理 SQL Server 2008 Integration Services (SSIS) 或更高版本的包。
默认情况下,在升级安装中,Integration Services 被配置为将与运行包相关的事件记录到应用程序事件日志中。 使用 SQL Server 2019 (15.x) 的数据收集器功能时,此设置可能生成太多事件日志条目。 记录的事件包括 EventID 12288“包已启动”和 EventID 12289“包已成功完成”。若要阻止将这两个事件记录到应用程序事件日志中,请打开注册表以进行编辑。 然后在注册表中,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\SSIS 节点,并将 LogPackageExecutionToEventLog 设置的 DWORD 值从 1 更改为 0。
仅将数据库引擎升级到 SQL Server 2019 (15.x)
本节介绍执行符合以下条件的升级的影响:
仅升级数据库引擎实例。 也就是说,数据库引擎实例现在是 SQL Server 2019 (15.x) 实例,但 Integration Services 和客户端工具的实例来自 SQL Server 2008 (10.0.x)、SQL Server 2008 R2 (10.50.x)、SQL Server 2012 (11.x) 或 SQL Server 2014 (12.x)。
数据库引擎实例位于一台计算机上,而 Integration Services 和客户端工具位于另一台计算机上。
升级后可执行的操作
在升级后的数据库引擎实例中用于存储包的系统表不同于 SQL Server 2008 (10.0.x) 中使用的系统表。 因此,SQL Server 2008 (10.0.x) 版本的 Management Studio 和 SQL Server Data Tools 无法发现升级后的数据库引擎实例上的系统表中的包。 由于无法发现这些包,因此在使用这些包时会受到一些限制:
不能使用位于其他计算机上的 SQL Server 2008 (10.0.x) 工具(Management Studio 和 SQL Server Data Tools)来加载或管理升级后的数据库引擎实例中的包。
注意
尽管升级后的数据库引擎实例中的包尚未迁移到新的包格式,但 SQL Server 2008 (10.0.x) 工具仍然无法发现它们。 因此,SQL Server 2008 (10.0.x) 工具无法使用这些包。
不能使用其他计算机上的 SQL Server 2008 Integration Services (SSIS) 来运行存储在升级后的数据库引擎实例上的 msdb 中的包。
不能使用 SQL Server 2008 (10.0.x) 计算机上的 SQL Server 代理作业来运行存储在升级后的数据库引擎实例中的 SQL Server 2008 Integration Services (SSIS) 包。
外部资源
blogs.msdn.com 上的博客文章: 使您的现有自定义 SSIS 扩展插件和应用程序在 Denali 下工作。