Sql Server 部署SSIS包完成远程数据传输
本篇介紹如何使用SSIS和作業(yè)完成自動更新目標(biāo)數(shù)據(jù)任務(wù)。?
?
**?溫馨提示:如需轉(zhuǎn)載本文,請注明內(nèi)容出處。**
本文鏈接:https://www.cnblogs.com/grom/p/9018978.html?
?
筆者需要定期從服務(wù)器更新N家客戶的遠(yuǎn)程服務(wù)器數(shù)據(jù),上一篇的存儲過程是其中一個更新方法,后來隨著數(shù)據(jù)量逐漸增大,受網(wǎng)絡(luò)環(huán)境的影響,批量遠(yuǎn)程插入消耗的時間已經(jīng)無法承受,后來在導(dǎo)出數(shù)據(jù)時發(fā)現(xiàn)了保存SSIS選項(xiàng),然后展開了測試開發(fā),現(xiàn)將成果分享出來供大家參考,類似的資料不少,所以就簡單寫寫操作步驟。
?
首先,盡量可能使用部署到環(huán)境的Windows賬號,比如部署到服務(wù)器,就遠(yuǎn)程到服務(wù)器后使用Windows賬號登錄,可以避免很多權(quán)限上的麻煩。
另外,注意客戶端的版本,SSMS一定不能低于SQL服務(wù)版本,不然會出異常。
?
微軟官網(wǎng)文檔:https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008-r2/bb522535(v%3dsql.105)
?
導(dǎo)出導(dǎo)入數(shù)據(jù),SSIS包部署在源庫還是目標(biāo)庫均可,下面以導(dǎo)出數(shù)據(jù)為例。
?
右鍵導(dǎo)出數(shù)據(jù)的庫 任務(wù) 導(dǎo)出數(shù)據(jù)
?
?
選擇導(dǎo)出數(shù)據(jù)庫(數(shù)據(jù)源庫)
?
?選擇目標(biāo)庫
?
編輯要傳輸?shù)谋?#xff0c;有不同需求(如需要刪除目標(biāo)表內(nèi)原數(shù)據(jù)實(shí)現(xiàn)全覆蓋等)時,可在編輯映射里設(shè)置。
?
?批量設(shè)置或單表設(shè)置
?
最后保存SSIS包,為了保證可移植性,筆者這里將保護(hù)級別設(shè)置成了密碼保護(hù)
(SSIS包保存方式有兩種,一種是保存在SQL Server內(nèi)部,另一種是保存成.dtsx的文件
保存在SQL Server里可以在系統(tǒng)數(shù)據(jù)庫msdb里的sysssispackages表內(nèi)看到
或者保存成文件?雙擊執(zhí)行后可開啟執(zhí)行包的實(shí)用工具(前提是安裝了)
跟著向?qū)ё呔涂梢詧?zhí)行包了,無論是包文件還是Sql Server內(nèi)的均可使用此工具執(zhí)行。)
?
繼續(xù)導(dǎo)出
點(diǎn)擊完成后完成包的保存。
?
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界面舉例
點(diǎn)擊連接,選擇 Integration Services(這里只能使用Windows身份連接,所以)
連接后可進(jìn)行管理配置
?
?
?
?
為了可維護(hù)性,樓主在這里新建了項(xiàng)目,如無此需求的可以跳過本步驟
在Integration Services目錄上右鍵創(chuàng)建目錄
創(chuàng)建此目錄時會自動在數(shù)據(jù)庫內(nèi)創(chuàng)建同名庫,記錄相關(guān)信息,紅色圈內(nèi)為數(shù)據(jù)庫名稱
密碼必須設(shè)置,并且要符合安全策略,默認(rèn)的好像是字母+數(shù)字+特殊符號
?* 可能會出現(xiàn)以下錯誤
解決方案:https://blog.csdn.net/yy13210520/article/details/6438457?下面附張解決方案截圖
??
創(chuàng)建完成如圖
創(chuàng)建文件夾
好了,一個解決方案建好了
下面是導(dǎo)入包
?
保存為文件選第一個,保存在SQL Server選第三個,第二個筆者沒用過,推測是裝了SSDT后創(chuàng)建的,有經(jīng)驗(yàn)的大神希望可以留下教程
?
?
找不到包直接選擇SSIS包的根目錄文件夾(如圖所選)即可
?
?
?
把項(xiàng)目里需要的包都放進(jìn)去,記得吧密碼輸進(jìn)去
?
?
選擇項(xiàng)目的保存路徑
?
?
完成后會自動彈出項(xiàng)目部署向?qū)?#xff0c;沒有的話可以右擊項(xiàng)目選擇部署項(xiàng)目
?
?
部署完成
?
?
?
設(shè)置作業(yè)自動執(zhí)行包
新建作業(yè),沒有SQL Server代理的可在SQL配置中開啟
?
新建步驟 類型選擇 SQL Server Integration Services 包
包源:保存文件的選擇文件系統(tǒng),沒有建項(xiàng)目只保存在SQL Server上的選SQL Server,按上面步驟建立項(xiàng)目的選SSIS目錄
?
選擇每個包建立每個步驟,再設(shè)置好計(jì)劃
?
大功告成
?
?
?
關(guān)于SSISDB數(shù)據(jù)庫的表,筆者從網(wǎng)上查了下表的作用:
- [internal].[executables] -- 記錄每個版本的包里面的可執(zhí)行任務(wù)
- [internal].[operations] -- 該表記錄了SSIS包的操作記錄
- [internal].[operation_permissions] --記錄的每個操作記錄的權(quán)限
- [internal].[operation_os_sys_info] --記錄每個操作的系統(tǒng)資源使用
- [internal].[operation_messages] --記錄每個操作的運(yùn)行時狀態(tài),具體到包里面的各個任務(wù)的執(zhí)行情況
- [internal].[executions] --記錄每個SSIS包的執(zhí)行信息
- [internal].[execution_parameter_values] --記錄執(zhí)行時各個參數(shù)的值
- [internal].[executable_statistics] -- 記錄每個包里面可執(zhí)行任務(wù)的執(zhí)行狀態(tài)
- [internal].[event_messages] -- 記錄每個可執(zhí)行任務(wù)的消息代碼
- [internal].[event_message_context] -- 記錄每個可執(zhí)行消息的上下文屬性
- [internal].[catalog_encryption_keys] -- 記錄創(chuàng)建SSISDB時使用的密碼和加密的Key值。
轉(zhuǎn)載于:https://www.cnblogs.com/grom/p/9018978.html
總結(jié)
以上是生活随笔為你收集整理的Sql Server 部署SSIS包完成远程数据传输的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 做梦梦到泥鳅和黄鳝什么意思
- 下一篇: 9-[记录操作]--数据的增删改,权限管