Sql Server 部署SSIS包完成遠程數據傳輸


本篇介紹如何使用SSIS和作業完成自動更新目標數據任務。 

 

** 溫馨提示:如需轉載本文,請注明內容出處。**

本文鏈接:https://www.cnblogs.com/grom/p/9018978.html 

 

  筆者需要定期從服務器更新N家客戶的遠程服務器數據,上一篇的存儲過程是其中一個更新方法,后來隨着數據量逐漸增大,受網絡環境的影響,批量遠程插入消耗的時間已經無法承受,后來在導出數據時發現了保存SSIS選項,然后展開了測試開發,現將成果分享出來供大家參考,類似的資料不少,所以就簡單寫寫操作步驟。

 

首先,盡量可能使用部署到環境的Windows賬號,比如部署到服務器,就遠程到服務器后使用Windows賬號登錄,可以避免很多權限上的麻煩。

另外,注意客戶端的版本,SSMS一定不能低於SQL服務版本,不然會出異常。

 

微軟官網文檔https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008-r2/bb522535(v%3dsql.105)

 

導出導入數據,SSIS包部署在源庫還是目標庫均可,下面以導出數據為例。

 

右鍵導出數據的庫 任務 導出數據

 

 

選擇導出數據庫(數據源庫)

 

 選擇目標庫

 

編輯要傳輸的表,有不同需求(如需要刪除目標表內原數據實現全覆蓋等)時,可在編輯映射里設置。

 

 批量設置或單表設置

 

最后保存SSIS包,為了保證可移植性,筆者這里將保護級別設置成了密碼保護

SSIS包保存方式有兩種,一種是保存在SQL Server內部,另一種是保存成.dtsx的文件

保存在SQL Server里可以在系統數據庫msdb里的sysssispackages表內看到

或者保存成文件 雙擊執行后可開啟執行包的實用工具(前提是安裝了)

跟着向導走就可以執行包了,無論是包文件還是Sql Server內的均可使用此工具執行。

 

繼續導出

點擊完成后完成包的保存。

 

SSIS可視化界面

管理SSIS微軟提供了兩種可視化管理工具,SQL Server Data Tools (SSDT)和大家用的 SQL Server Management Studio(SSMS)

官方文檔:https://docs.microsoft.com/zh-cn/sql/integration-services/integration-services-ssis-development-and-management-tools?view=sql-server-2017

這里只以SSMS界面舉例

點擊連接,選擇 Integration Services(這里只能使用Windows身份連接,所以)

連接后可進行管理配置

 

 

 

 

為了可維護性,樓主在這里新建了項目,如無此需求的可以跳過本步驟

在Integration Services目錄上右鍵創建目錄

創建此目錄時會自動在數據庫內創建同名庫,記錄相關信息,紅色圈內為數據庫名稱

密碼必須設置,並且要符合安全策略,默認的好像是字母+數字+特殊符號

 * 可能會出現以下錯誤

解決方案:https://blog.csdn.net/yy13210520/article/details/6438457 下面附張解決方案截圖

  

創建完成如圖

創建文件夾

好了,一個解決方案建好了

下面是導入包

 

保存為文件選第一個,保存在SQL Server選第三個,第二個筆者沒用過,推測是裝了SSDT后創建的,有經驗的大神希望可以留下教程

 

 

找不到包直接選擇SSIS包的根目錄文件夾(如圖所選)即可

 

 

 

把項目里需要的包都放進去,記得吧密碼輸進去

 

 

選擇項目的保存路徑

 

 

完成后會自動彈出項目部署向導,沒有的話可以右擊項目選擇部署項目

 

 

部署完成

 

 

 

設置作業自動執行包

新建作業,沒有SQL Server代理的可在SQL配置中開啟

 

新建步驟 類型選擇 SQL Server Integration Services 包

包源:保存文件的選擇文件系統,沒有建項目只保存在SQL Server上的選SQL Server,按上面步驟建立項目的選SSIS目錄

 

選擇每個包建立每個步驟,再設置好計划

 

大功告成

 

 

 

關於SSISDB數據庫的表,筆者從網上查了下表的作用:

  • [internal].[executables] -- 記錄每個版本的包里面的可執行任務
  • [internal].[operations] -- 該表記錄了SSIS包的操作記錄
  • [internal].[operation_permissions] --記錄的每個操作記錄的權限
  • [internal].[operation_os_sys_info] --記錄每個操作的系統資源使用
  • [internal].[operation_messages] --記錄每個操作的運行時狀態,具體到包里面的各個任務的執行情況
  • [internal].[executions] --記錄每個SSIS包的執行信息
  • [internal].[execution_parameter_values] --記錄執行時各個參數的值
  • [internal].[executable_statistics] -- 記錄每個包里面可執行任務的執行狀態
  • [internal].[event_messages] -- 記錄每個可執行任務的消息代碼
  • [internal].[event_message_context] -- 記錄每個可執行消息的上下文屬性
  • [internal].[catalog_encryption_keys] -- 記錄創建SSISDB時使用的密碼和加密的Key值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM