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