本篇介紹如何使用SSIS和作業完成自動更新目標數據任務。 ** 溫馨提示:如需轉載本文,請註明內容出處。** 本文連接:http://www.cnblogs.com/grom/p/9018978.html 筆者需要定期從伺服器更新N家客戶的遠程伺服器數據,上一篇的存儲過程是其中一個更新方法,後來隨著 ...
本篇介紹如何使用SSIS和作業完成自動更新目標數據任務。
** 溫馨提示:如需轉載本文,請註明內容出處。**
本文連接:http://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)
這裡只以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值。