如果您的電腦上目前有安裝 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 之前,先執行 Upgrade Advisor。Upgrade Advisor 會報告當您將現有的 Integration Services 封裝移轉至 SQL Server 2012 所使用的新封裝格式時可能會遇到的問題。 如需詳細資訊,請參閱<使用 Upgrade Advisor 來準備升級>。
[!附註]
在目前的 SQL Server Integration Services 版本中,已停用針對移轉或執行 Data Transformation Services (DTS) 封裝所提供的支援。 下列 DTS 功能已停用:
DTS 執行階段
DTS API
可將 DTS 封裝移轉到下一版 Integration Services 的封裝移轉精靈
SQL Server Management Studio 中對於 DTS 封裝維護的支援
執行 DTS 2000 封裝工作
DTS 封包的 Upgrade Advisor 掃描。
如需已停止之功能的詳細資訊,請參閱<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 安裝。
從 32 位元移到 64 位元版本的 SQL Server 或是從 64 位元版本移到 32 位元版本。
將某個當地語系化的 SQL Server 版本移到另一個當地語系化的版本。
當您升級時,可以同時升級 Integration Services 和 Database Engine,或是只升級 Database Engine 或 Integration Services。 如果您只升級 Database Engine,雖然 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 Database Engine 的執行個體,否則就只能將封裝儲存在檔案系統中。
將 Integration Services 和 Database Engine 都升級到 SQL Server 2012
本章節描述執行具有以下準則之升級的作用:
您同時將 Integration Services 和 Database Engine 的執行個體升級到 SQL Server 2012。
Integration Services 和 Database Engine 的執行個體位於相同的電腦上。
升級程序執行的工作
升級程序會執行以下工作:
安裝 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 Database Engine 的執行個體升級到 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。 雖然不會移除 db_dtsadmin、db_dtsltduser 和 db_dtsoperator 的 SQL Server 2005 Integration Services 角色,但是它們會成為對應新角色的成員。
如果 SSIS 封裝存放區 (也就是 Integration Services 服務所管理的檔案系統位置) 是 \SQL Server\90 或 \SQL Server\100 底下的預設位置,則將這些封裝移到 \SQL Server\110 底下的新預設位置。
將 Integration Services 服務組態檔更新為指向升級的 Database Engine 執行個體。
升級程序不會執行的工作
升級程序不會執行以下工作:
不會移除 SQL Server 2005 Integration Services (SSIS) 或 SQL Server 2008 Integration Services (SSIS) 服務。
不會將現有的 Integration Services 封裝移轉至 SQL Server 2012 所使用的新封裝格式。 如需有關如何移轉封裝的詳細資訊,請參閱<升級 Integration Services 封裝>。
不會移動已經加入至服務組態檔之檔案系統位置 (預設位置除外) 中的封裝。 如果您先前已經編輯了系統組態檔以加入其他檔案系統資料夾,儲存在這些資料夾中的封裝將不會移至新的位置。
在直接呼叫 dtexec 公用程式 (dtexec.exe) 的 SQL Server Agent 作業步驟中,不會更新 dtexec 公用程式的檔案系統路徑。 您必須手動編輯這些作業步驟來更新檔案系統路徑,以便指定 dtexec 公用程式的 SQL Server 2012 位置。
升級之後可以執行的工作
當升級程序完成之後,您可以執行以下工作:
執行可執行封裝的 SQL Server Agent 作業。
使用 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。
只將 Database Engine 升級到 SQL Server 2012
本章節描述執行具有以下準則之升級的作用:
您只要升級 Database Engine 的執行個體。 也就是說,Database Engine 的執行個體現在是 SQL Server 2012 的執行個體,但是 Integration Services 的執行個體和用戶端工具是來自 SQL Server 2005 或 SQL Server 2008。
Database Engine 的執行個體位於某部電腦上,而 Integration Services 和用戶端工具則位於另一部電腦上。
升級之後可以執行的工作
將封裝儲存於已升級之 Database Engine 執行個體中的系統資料表,與 SQL Server 2005 或 SQL Server 2008 中所用的系統資料表不同。 因此,SQL Server 2005 或 SQL Server 2008 版的 Management Studio 和 SQL Server Data Tools 無法在已升級之 Database Engine 執行個體上的系統資料表內找到封裝。 由於找不到這些封裝,所以可以對這些封裝處理的動作也會受到限制:
您無法使用其他電腦上的 SQL Server 2005 或 SQL Server 2008 工具 (Management Studio 和 SQL Server Data Tools),從已升級的 Database Engine 執行個體載入或管理封裝。
[!附註]
雖然已升級之 Database Engine 執行個體中的封裝尚未移轉成新的封裝格式,但是 SQL Server 2005 或 SQL Server 2008 工具還是無法找到這些封裝。 因此,SQL Server 2005 或 SQL Server 2008 工具無法使用這些封裝。
您無法使用其他電腦上的 SQL Server 2005 Integration Services (SSIS) 或 SQL Server 2008 Integration Services (SSIS) 來執行已升級之 Database Engine 執行個體上的 msdb 內所儲存的封裝。
您無法使用 SQL Server 2005 或 SQL Server 2008 電腦上的 SQL Server Agent 作業來執行已升級之 Database Engine 執行個體中所儲存的 SQL Server 2005 Integration Services (SSIS) 或 SQL Server 2008 Integration Services (SSIS) 封裝。
外部資源
blogs.msdn.com 上的部落格文章:在 Denali 中製作現有的自訂 SSIS 延伸模組和應用程式工作。