簡體   English   中英

SSIS包與數據一致性

[英]SSIS package vs data consistency

我們正在使用SSIS包從實時站點復制數據。 由於在我們進行復制的過程中偶爾有事務會完成,因此我們想知道SSIS如何處理它。

具體來說,假設一個事務正在同時寫入兩個表,而SSIS正在復制數據。 假定在復制第一個表之后事務完成。 當SSIS程序包復制第一個表時,將不包含來自事務的數據。 然后,在復制第二張表時,如果SSIS沒有采取任何措施來處理這種情況,則將復制數據。 然后數據不同步。

SSIS如何處理此問題以確保數據一致?

不確定您的數據庫,對於SQL Server,一旦源表被更新/插入,默認情況下將阻止任何讀取操作,因此在事務完成之前不會進行復制。 另一方面,一旦開始復制,您的事務就無法更新/插入到源表中,因為它正在被讀取。 如果事務在ssis應對之前發生(ssis將等待直到事務完成)或事務將被ssis應對阻止,則SO ssis將獲取新的行,因此表將同步。

SSIS通過MSDTC處理的分布式事務解決了這個問題。 有關MSDTC和來自MS的分布式事務的更多信息 您可以在DataFlow或SSIS任務流中的某些序列容器上指定transactionsupport option = required,這將啟動分布式事務。 在您的情況下-帶有MSDTC的SSIS將在源站點開始一個事務,大概是使用Serializable隔離級別,並且在事務完成之前,上述復制操作將被阻止。
這種方法不是完美的-源必須支持分布式事務和MSDTC,應滿足對網絡基礎結構的一些要求,此外,MSDTC的性能還不夠。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM