升級 Integration Services

適用於:SQL Server Azure Data Factory 中的 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\<版本>\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 封包的 Upgrade Advisor 掃描。

如需其他已停止功能的相關資訊,請參閱 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 安裝。

  • 從 32 位元移到 64 位元版本的 SQL Server 或是從 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。 db_dtsadmin、db_dtsltduser 和 db_dtsoperator 的 SQL Server 2005 (9.x) Integration Services 角色不會遭到移除,但是會成為對應新角色的成員。

  • 如果 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 Agent 作業步驟中,不會更新 dtexec 公用程式的檔案系統路徑。 您必須手動編輯這些作業步驟來更新檔案系統路徑,以便指定 dtexec 公用程式的 SQL Server 2019 (15.x) 位置。

升級之後可以執行的工作

當升級程序完成之後,您可以執行以下工作:

  • 執行可執行封裝的 SQL Server Agent 作業。

  • 使用 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 setting 設定的 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 Agent 作業來執行儲存在已升級之資料庫引擎執行個體中的 SQL Server 2008 Integration Services (SSIS) 封裝。

外部資源

blogs.msdn.com 上的部落格文章: 在 Denali 中製作現有的自訂 SSIS 延伸模組和應用程式工作