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值。
轉載于:https://www.cnblogs.com/grom/p/9018978.html
總結
以上是生活随笔為你收集整理的Sql Server 部署SSIS包完成远程数据传输的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到泥鳅和黄鳝什么意思
- 下一篇: 9-[记录操作]--数据的增删改,权限管