集成服务入门(实验10)使用事务和检查点
為了處理數據一致性,我們需要使用事務。
在有多個任務時,可能在執行過程中遇到報錯而停止,如果希望在修復問題之后從上一次報錯的地方繼續執行(而不是從頭開始運行所有的任務),這時候可以使用檢查點。
一、使用事務
在本實驗中,將添加2個執行T-SQL腳本的任務,并且故意使用第2個任務出錯。
1. 添加任務
從“SSIS工具箱”將“執行SQL任務”圖標拖到“控制流”窗格,并更名為“Update TaxRate”。
重復上一步驟,再添加一個“執行SQL任務”,并命名為“Update TaxType”。
編輯“Update TaxRate”。
編輯“Update TaxType”。
注意:運行這個腳本將導致報錯。因為TaxType不是字符數據類型。
2. 調試
啟用調試。第一個任務執行成功了,但第二個執行失敗。
3. 使用事務
先為整個包建立事務。在“控制流”窗格的空白處單擊右鍵,然后在右鍵菜單中選擇“屬性”。
將TransactionOption改為Required。表示如果父任務沒有事務,那么容器將啟動一個事務;如果父任務已經存在一個事務,那么容器將聯接父任務的事務。
同時選擇“Update TaxRate”和“Update TaxType”任務,在屬性窗格中將TransactionOption修改為Supported。表示如果已經存在一個父事務,那么容器將聯接該事務。(Not Supported則表示:即使存在父事務,容器也不會聯接該事務。)
4. 調試
啟用調試。
在“進度”窗格可以看到,第二個任務出錯,結果導致兩個任務都執行失敗了。
二、使用檢查點
1. 啟用檢查點
在“控制流”窗格的空白片單擊右鍵,在右鍵菜單中選擇“屬性”。
由于事務會影響到所有的任務(如前面的實驗,其中一個T-SQL腳本報錯將導致2個任務都失敗),所以先將事務的 TransactionOption 選項設為 Supported。
為檢查點的CheckpointFileName選項設置一個文件名。將CheckpointUsage選項設為IfExists,表示如果存在CheckpointFilename選項指定的檢查點文件,那么將使用該文件,并根據檢查點重新啟動包。將SaveCheckpoints選項設為True,表示要寫入檢查點文件。
2. 設置檢查點
選擇“Update TaxType”任務,將屬性的FailPackageOnFailure設為True。
3. 啟用調試
啟用調試。第二個任務執行失敗,信息都被保存在檢查點文件中。
4. 修正腳本
修改第二個任務的腳本,給TaxType賦一個整數型的數值。
5. 再次調試
然后再啟用調試。可見兩個任務都執行成功。
打開“進度”窗格,可見這次調試是從上次的故障點繼續往下執行(僅執行了第二個任務),第一個任務(上一次已經執行成功了)這次沒有被執行。
轉載于:https://blog.51cto.com/jimshu/1402065
總結
以上是生活随笔為你收集整理的集成服务入门(实验10)使用事务和检查点的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 来自一年的程序员的困惑
- 下一篇: Hadoop入门连接