大家對使用SSIS做數據接口應該不陌生了吧,沒聽過的同學得努力補補了。就開發體驗和效率來看,SSIS是款非常酷的軟件,學會它的基本使用方法還是很有必要的。既然是數據接口就免不了要考慮災難恢復這樣的事情了。還好SSIS為我們提供了OOB的Feature-- CheckPoint,關鍵時候還是可以抱抱它大腿的。
CheckPoint,SSIS的Failover組件。通過配置SSIS Package的CheckPoint,我們可以非常輕松的保證:不重復執行Control Flow,只在最後出錯點繼續執行。有這樣的災難恢復機制,我們還能不自信的去面對各種復雜的數據同步需求嗎?CheckPoint另外一個難能可貴的地方就是,CheckPoint配置非常的簡單,只需修改幾個屬性就能搞定,咱們也能體驗一把甩手程序員的快樂了。
接下來我帶大家去看看怎麼配置這個CheckPoint,並在一個模擬的數據同步場景中使用CheckPoint去做災難恢復。
1)開啟Packge的CheckPoint機制,我們需要配置Package的如下屬性:CheckPointFileName,CheckpointUsage,SaveCheckpoint。
CheckpointFileName是用來指定保存文件的路徑,如果Packge在運行的時候出現了錯誤並中斷,那麼這個文件將會保持中斷時的運行快照。CheckpointUsage用來執行Checkpoint的執行規則,是每次都開啟,還是只在Checkpoint文件存在的情況下開啟。SaveCheckpoint故名思意了,Checkpoint的關鍵屬性,必須開啟。
2)配置Control Flow的Checkpoint屬性,它們分別是:FailPackageOnFail,FailParentOnFailure。
FailPackageOnFail是指如果該Control Flow異常了,中斷運行,下次再該Control Flow上繼續執行。FailParentOnFailure是指如果該Control Flow異常了,中斷運行,下次重該Control Flow的parent次執行,如果這個parent裡面包含多個control flow並且我們想每次異常都需要重新運行該容器下的所有control flow的話,我們就要設置這個熟悉啦。
我們來做兩個小實驗吧:1)在Package上開啟CheckPoint。2)在開啟Checkpoint的package上重復執行序列內的所有Control Flow。
Example 1
首次執行
在出現災難後再次執行
Example 2
首次執行
在災難後再次執行