Clark Rabbit 的DotNet世界: [Tricks] 簡單建立可以運作的 SSIS package

Clark Rabbit 的DotNet世界: [Tricks] 簡單建立可以運作的 SSIS package: " "


2008/7/2


[Tricks] 簡單建立可以運作的 SSIS package

應該很多人都有遇過在建立 SSIS (Microsoft SQL Server 2005 Integration Services )封裝的時候無法正確執行的困擾吧。 Clark 第一次在用 BIDS (Business Intelligence Development Studio) 建立 SSIS 也遇到也這樣的問題。而且即時上網搜尋了一堆文章之後仍然有時不能正確的把做好的SSIS package 放到其他 Server 上或是 SQL Server 中執行。

當然的決定是先在本機上做,跑排程執行。但是畢竟這樣不是最終的解決之道。只是 clark 當時沒空再去解決這個問題只好先放著。所幸最近 clark 在做其他功能的 SSIS ,正好又有時間測試所以終於找到一個可以成功的 roadmap 。

話不多說,clark 整理出幾個注意事項,請大家在做的時候注意這幾點,相信大家都可以做出可以正確運作的 SSIS package。
  • 第一次建立 SSIS 專案時,不要想太多,照要執行的流程做下去就對了,也不要急著設定封裝組態檔(Configurations)什麼的。
  • 等專案都建完而且可以執行以後,請設定封裝屬性,將 ProtectionLevel 設為 DontSaveSensitive。 SSIS Property設定
  • 建立封裝組態檔 -> 啟用封裝組態 -> 加入 -> 直接指定組態設定 -> 瀏覽 -> 選擇要儲存的組態檔名 -> 存檔 -> 下一步 -> 勾選 "連接管理員" -> 將"連接管理員"下的所有子節點點開,勾掉 "ProtectionLevel" 這一項(假設你有4個 db connection就點掉4次) -> 其他 "變數"、 "Properties"、"可執行檔"都不勾選(除非真的有特別必要,之後再另行測試) -> 按下一步 -> 按"完成" -> 關閉 SSIS Configuration設定 SSIS 新增Config1 SSIS 新增Config2 SSIS 組態勾選
  • 請注意如果每次有更動到"連接管理員"裡的設定,最好刪掉組態檔重做一次,以免出現問題。
  • 最後用記事本打開.dtsConfig,裡面會記錄你的connection帳號,但沒有密碼。請搜尋 "Password" 關鍵字,在後面一點會有 "",請在中間加上你的密碼。重覆搜尋直到所有password都設定好為止。
  • 回到BIDS裡的SSIS專案中執行一次看看,這時會使用.dtsConfig裡的設定去執行SSIS,只要運作中間沒有問題即表示dtsConfig設定正確,可以將SSIS連同dtsConfig一起放到server上去執行囉
看到一堆文字說明,大家想必很暈吧,clark 之後會再將設定說明圖檔補上,讓大家少暈一點囉。 可以參考的相關文件:
相關的錯誤訊息:
  • 代碼:0xC0202009
    來源:AgentTesting 連接管理員 "(local).msdb"
    描述:發生 OLE DB 錯誤。錯誤碼: 0x80040E4D。
    有 OLE DB 記錄可用。來源:"Microsoft SQL Native Client" Hresult:0x80040E4D 描述:"使用者 'DOMAINNAME\username' 的登入失敗"。 錯誤結束
  • 代碼:0xC0016016
    來源:
    描述:無法將保護的 XML 節點 "DTS:Property" 解密,錯誤為 0x80070002 "系統找不到指定的檔案"。您可能沒有存取這項資訊的權限。當發生密碼編譯錯誤時,就會發生這個錯誤。請確認有正確的金鑰。 錯誤結束
  • 來源名稱:執行 SQL 工作
    來源 GUID:{C6C7286D-57D4-4490-B12D-AC9867AE5762}
    執行 GUID:{7AFE3D9E-5F73-42F0-86FE-5EFE264119C8}
    訊息:無法取得連接 "(local).msdb"。連接可能未正確設定,或您沒有這個連接的正確權限。

留言

這個網誌中的熱門文章