本文就SQL統計分析SSIS包的部署進行一次詳細的部署圖解教程,Sql Server Integration Services 提供了很是簡單的部署工具,利用這些工具能夠方便地將包文件(*.dtsx)、包配置文件(*.dtsconfig)以及包的其它相關文件,打包成一個安 裝文件,以利於到其它計算機安裝與部署。sql
下面咱們之前面介紹的IisLog Solution 爲例,來詳細介紹包部署的完整過程。數據庫
(-)生成安裝部署文件。安全
在SQL Server Business Intelligence Development Studio的資源管理器中,右擊IisLog -->[屬性],打開[IisLog 屬性頁],在左邊的[配置屬性]樹中,選擇[部署實用工具],右邊就會顯示出[部署實用工具]須要配置的屬性,如圖:服務器
AllowConfigurationChanges:設定在安裝的時候,包配置文件中的屬性是否容許修改。True/可修改;False/不能夠修改。其安裝界面的效果,稍後將會看到。工具
CreateDeploymentUtility:決定是否建立安裝部署文件。ui
DeploymentOutputPath:設定安裝部署文件存放的位置。代理
按照如圖所示設置各屬性,點擊[肯定],返回到主界面。教程
在[生成]菜單上,單擊[生成IisLog], 就這麼簡單,安裝部署文件就生成了。咱們回到上圖設置的部署文件路徑,就會看到全部生成的部署文件。資源
其中,IisLog.SSISDeploymentManifest,就是咱們的安裝文件了。字符串
(二) 包部署。
將上圖Deployment 文件夾下的全部文件,Copy 到目標服務器上,雙擊IisLog.SSISDeploymentManifest,就會彈出包的安裝嚮導,如圖:
SSIS包通常有兩種部署方式:部署到文件系統和部署到Sql Server。這兩種方式,各有特色。部署到文件系統,操做會更簡單,配置修改也比較容易。而部署到Sql Server ,其安全性會更高。在包的執行與調度方面,沒有什麼差別。
此例中,咱們選擇[部署到文件系統] ,[下一步] ,如圖:
選擇配置文件,下面的列表框,將顯示配置文件的全部屬性。若是在[IisLog 屬性頁]界面中,設置AllowConfigurationChanges=true ,則這些屬性,在此處就能夠修改,不然就不能夠在此修改,而只有等安裝完成後,再到安裝文件夾下,對配置文件進行修改了。
[下一步],再單擊[肯定],部署就完成了。
轉到安裝文件夾,找到SSIS包文件,雙擊,就能夠出現如圖所示的運行界面了。
默認狀況下,點擊[執行]就能夠運行了。(左邊導航欄每一項的配置,網上的介紹已經不少了,Google、Baidu一下,應用盡有,我這裏也就不羅嗦了。)
這種方式,也就是Sql Server Integration Services 提供的一個實用工具「DTExecUI.exe」。除此以外,還用另一個實用工具「DTExec.exe」,這兩個工具,在功能方面徹底同樣,沒有什麼 差別,只是前者有UI界面,明確地告訴了你,每一步怎麼操做。後者沒有UI界面,全部的配置信息,都須要經過命令參數傳入,這種方式,比較適合經過 Windows 計劃任務、Windows Service、Sql Server Agent 等方式自動執行SSIS包的場景。
下面咱們重點介紹Sql Server Agent執行包的詳細過程,這也是Microsoft 推薦的一種調度方式,雖然Sql Server Agent Job 你們已經很是熟悉了,可是SSIS包任務的配置,對於新手來講,可能也不是那麼容易。
首先,打開Sql Server ,新建做業,如圖:
輸入名稱,其它默認就能夠了。
選擇[步驟],點擊[新建],如圖:(注意,這一步很關鍵,與其它Job 任務的差別也就在這一步)
[步驟名稱]:隨意輸入。
[類型]:選擇「Sql Server Integration Services 包」。
[運行身份]:默認狀況下,該下拉列表框中只有一項「Sql Server 代理服務賬戶」,選擇此項。
在[常規]選項卡下,
[包源]:裏面有三種選擇:Sql Server 、文件系統,SSIS包存儲區,這與前面安裝部署時的選擇有關係。咱們選擇[文件系統]。
[包]:選擇SSIS 包文件。
[肯定],返回到新建做業界面。
配置計劃,這個很簡單,與其它Job 任務同樣,再也不累述。
到此爲止,一個Sql Server Agent Job 就配置完成了,咱們終於能夠舒口氣了。但是沒有想到:黎明前是最黑暗的,噩耗也就此開始。
到達指定時間後,回到Sql Server Agent ,查看Job 運行歷史記錄,倒是「滿堂紅」啊,如圖:
這是爲何呢?經過DTExecui.exe 能成功運行,而經過Sql Server Agent 就不能運行了?
其實緣由很簡單,就是前面配置的[運行身份]的問題,DTExecui.exe 是以登陸當前服務器的用戶的身份來運行的,而在sql Server Agent 中,倒是以 "Sql Server 代理服務賬戶"的身份運行,而SSIS包中,數據庫鏈接的密碼,是基於當前機器的登陸用戶的,當換一個用戶的時候,數據庫鏈接字符串中的密碼,天然也就不 生效了。因此錯誤提示,Sa 鏈接失敗。
面對這種狀況,通常有三種解決辦法:
一種是[啓用包配置],將數據庫鏈接信息寫入配置文件,包不管經過什麼用戶運行,都會從新加載這個配置文件,問題天然也就解決了。
第二種是從新配置Sql Agent Service 的登陸賬戶,缺省狀況下,Sql Server Agent Service 的登陸賬戶爲NetWork Service,咱們只要把它修改爲登陸當前機器的用戶就能夠了。
第三種解決辦法就是添加代理賬戶,該代理賬戶的安全憑據也指向登陸到當前機器的用戶。這種方法用的人很少,下面咱們詳細介紹一下,如何創建代理賬戶。
首先,打開Sql Server Management Studio ,在[安全性]節點下,新建用戶憑據,如圖:
[憑據名稱]:Admin Acces(隨意輸入)。
[標識]:也就是用戶標識,選擇登陸到機器的當前用戶就能夠了。
輸入[密碼]和[確認密碼],單擊[肯定],就完成安全憑據的創建。
而後,添加代理賬戶。
在Sql Server Management Studio中,找到[Sql Server 代理]-->[代理]節點,右擊-->[新建代理],打開[新建代理賬戶]對話框,如圖:
在常規頁面:
[代理名稱]:Admin Access proxy(能夠隨意輸入)。
[憑據名稱]:Admin Access。就是前面建立的安全性憑據。
[對如下子系統有效]:勾選"Sql Server Integration Services ",若是此代理賬戶還須要運行其它子系統,則勾選上列表中的對應項就能夠了。
切換到[主體]頁面,添加服務器角色,如圖:
點擊[添加],添加用戶角色,若是隻要求運行SSIS包的話,只選擇如圖兩種角色就能夠了。
單擊[肯定],Sql Server Agent 代理賬戶就創建完成了,這時咱們再回到Job 部署界面,在[運行身份]下拉列表框中,就多出一項了,如圖:
咱們選擇剛建立的代理賬戶[Admin Access Proxy],點擊[肯定]。這時再去查看包的運行歷史記錄,就春意盎然,一遍綠色了。