SSIS 除錯和故障排除

2022-01-10 08:55:05 字數 2818 閱讀 9156

ssis內建的除錯工具是非常完備的,對於資料流的除錯,主要是設定斷點和檢視變數值,這是在package的設計階段可以使用的工具,在package部署到伺服器之後,使用者還可以使用事件處理程式以實現package出錯的自我修復,使用日誌記錄等來監控package的執行狀態,以記錄package出現故障時的現場資訊,為後續修復package的錯誤提供最原始和有效的資訊。當單獨執行一次package時,使用者還可以為這一次執行例項設定package級別的日誌記錄級別。對資料流的除錯,主要是錯誤行和資料檢視器,在資料流task中,可以通過重定向錯誤行把錯誤儲存起來,便於後續的除錯和故障排除;還可以通過資料檢視器,實時檢視資料流中的資料,主要用於除錯資料流管道。

斷點是除錯package時最常用的工具,task滿足中斷條件時停止,為task設定斷點的手續十分簡單,使用者選中task,右擊選擇「edit breakpoint」,選擇中斷條件,並啟用斷點即可。

斷點的觸發條件是在task接收到特定的事件時,使用者可以為乙個task設定多種中斷條件的斷點,常用的中斷條件是:

設定斷點的嚮導如下圖所示,使用者不僅可以選擇中斷條件(break condition),還是設定條件命中的次數和型別:

在斷點處,用於可以通過進行step into、step over和step out操作,以便逐步檢視package的執行狀態,也可以按下f5,繼續執行package下面的task。

在packag執行到斷點時,使用者可以通過local視窗來視窗package中所有變數和屬性的值,

local視窗中的變數是package中的所有變數,包括使用者自定義的變數和系統變數。在除錯package時,local視窗中的變數太多,以至於開發工程師需要浪費很多時間去查詢關鍵的變數。一般情況下,只有很少的幾個變數會影響package執行結果,因此,開發工程師比較關注的也是這幾個變數,這時,使用者可以通過 watch 視窗,手動輸入變數名,重點監控這幾個變數的當前值,以確認package執行的狀態:

每乙個task和容器都會在執行時觸發事件,例如,onerror事件等,事件處理程式是在特定事件被觸發時,ssis自動呼叫的處理程式,事件處理程式會捕獲和處理相關事件。在設計package時,開發工程師**可能出現的異常,當異常發生時,package自動呼叫事件處理程式來傳送郵件通知相關人員及時修復可能存在的異常,或者重新執行package等,以實現package的自我修復。

事件處理程式捕獲事件,而事件是由task觸發的,常用的事件是

事件處理程式繼承其子task的相關事件,這意味著如果存在乙個容器,並且該容器有乙個針對onerror事件定義的事件處理程式,那麼當該容器的乙個子task發生錯誤時,將會觸發此容器的事件處理程式。該過程被稱作「冒泡」事件,或者從子task到容器的旅行。最高端別的可執行檔案是package本身,因此,如果在package級別定義了乙個事件處理程式,那麼每當事件發生時,都會觸發package級別的事件處理程式。

通常情況下,使用專案部署模型把package部署到ssis服務上,使用ssisdb資料庫來儲存package執行的日誌。如果要修改日誌記錄的級別,那麼需要修改ssisdb的預設設定。

在integration services catalogs目錄下,點選ssisdb,配置server-wide的預設日誌級別。

ssis的日誌記錄共有4個級別,記錄的資料從少到多,依次是:

預設情況下,package的日誌記錄級別和伺服器級別的日誌記錄級別相同,使用者還可以單獨設定package的日誌記錄級別。在integration services catalogs目錄中,選中某乙個package,右擊彈出快捷選單,點選「execute」,切換到advanced選項卡,為這一次執行例項設定日誌級別。這個設定是一次性的,整合服務不會記錄,package在下次執行時,預設的日誌記錄級別還是和伺服器級別的日誌記錄級別相同。

在資料流中,錯誤行都是通過使用error output來配置的,這些屬性高數資料流元件,當針對某一行的操作失敗(出錯或截斷)時應該怎麼做。

對錯誤或截斷的處理程式有三種:

使用者可以把錯誤行重定向,儲存到特定的資料結構中,以儲存錯誤的資料,然後分析資料,對package進行故障排除。

在資料流任務中,兩個元件之間的連線叫做資料流路徑(data flow path),路徑的資料檢視器預設是禁用的,使用者可以選中路徑,右擊選擇「enable data viewer」,啟用資料檢視器。

資料經過源或轉換元件流向下游元件時,利用資料檢視器可以實時檢視資料,以檢查資料是否出現異常。

日誌記錄,除錯, 故障排除

c c 新增 includeandroid.mk新增 local ldlibs lloglog等級 typedef enum android logpriority android logpriority 傳送乙個簡單的字串log 引數為日誌等級,日誌內容,tag標籤 android log wri...

Docker daemon 配置和故障排除

啟動daemon命令取決與你使用的作業系統 rhel,centos,fedora,ubuntu 16.04 或者更高版本,使用systemd管理docker服務啟動。sudo systemctl enable docker關閉自動啟動 sudo systemctl disable docker手動啟...

故障排除(一)

本機或本地伺服器執行緩慢時 機器執行緩慢通常是由於消耗太多系統特定的資源,資源有cpu,ram,磁碟i o以及網路。解決這個問題,考慮的問題 1 平均負載 uptime 可能是最先用到的基本度量標準,並且平均負載不會因為cpu的數量而改變。2 使用top命令解決負載問題。檢視id cpu空閒時間 如...