如何在 SQL Server 2000 上編輯和遷移 DTS 包
我目前有一個舊的 SQL Server 2000,在系統數據庫 msdb 表 msdbsysdtspackages 中有一些 DTS 包。
我需要將這些包遷移到 sql server 2016,有什麼工具可以做到嗎?
如果沒有,有沒有辦法我可以知道這些包在做什麼,所以我至少可以重寫它們?因為現在它們都儲存為十六進制數據,我什至不知道它們在做什麼……
謝謝您,歡迎提出任何建議。
根據我能找到的所有參考資料(最值得注意的是MS TechNet 上的升級集成服務包,以及這個StackOverflow 答案),選項是:
- 使用 SQL Server 2005 或 2008 提供的工具將 DTS 包轉換為 SSIS 包;然後,用 SSDT 升級 SSIS 包;或者
- 使用 SSDT 為您目前的 SQL Server 版本重寫包。
注意 - 在文章中,它聲明任何 ActiveX 腳本都必須被丟棄。這並不完全正確 - 您需要將它們重寫為 SSIS 中的腳本組件。我相信我曾經這樣做過(可能是錯誤的 - 我有一個可愛的 Perl 腳本來將街道地址分解為數字、前方向、街道名稱、後綴和後方向,我必須多次將其轉換為不同的東西,結束作為 SSIS C# 腳本組件)。
由於不再支持 2005 和 2008,我懷疑要安裝開發人員副本並進行轉換可能會很困難。而且,即使您這樣做了(如 SO 文章中所述),轉換過程也可能無法滿足您的需求。
早在 2009 年,我就參與了將我們的數據庫(以及大約 100 個 DTS 包)從 2000 年遷移到 2008 年的工作。我們確實使用了轉換過程,而且大部分時間它執行得很好。也就是說,我們還將 SSIS 包與原始 DTS 包並排測試,以確認結果。而且,現在,轉換過程將分兩步進行。
如果您有 10 個包要移動,那麼簡單的重寫是有意義的(並讓您有機會了解 SSIS 提供的其他功能)。如果你有幾十個包,並且碰巧可以訪問 2005 或 2008 SQL Server 工具(你不需要執行具有該版本的伺服器來完成這項工作,我不相信),那麼它可能有意義地完成轉換過程,看看你得到了什麼。如果你所擁有的大部分都能順利通過,那就太好了——最壞的情況,你又回到了手動重寫。
我的解決方案:我發現在我們的舊伺服器上,我們有一個名為 SQL Server Enterprise Manager 的工具,在 Data Transformation 節點下,我可以看到所有本地包並進行設計。現在我將在新伺服器上通過 SSIS 重寫它們,而不是轉換它們。