SymmetricDS文檔翻譯--【Chapter 3. 詳細配置(Configuration)[section D]】,

來源:互聯網
上載者:User

SymmetricDS文檔翻譯--【Chapter 3. 詳細配置(Configuration)[section D]】,
1.6.     Conflicts3.7.1. Conflict Detection and Resolution

衝突的檢測和解決是SymmetricDS 3.0的新特性。衝突檢測是決定是否插入,更新或者刪除的策略。衝突是因為目標資料與在源節點先前插入、更新或刪除的資料不一致。解決衝突就是當檢測到衝突時決定做什麼。
衝突檢測和解決方案策略配置在CONFLICT表中。至少為一個NODE_GROUP_LINK配置這個衝突策略。這些配置資訊僅限於一個CHANNEL或一個表。
衝突檢測通過CONFLICT表中的detect_type和detect_expression列指定。detect_expression的值依賴於detect_type的值。當資料被載入到目標系統的時候執行衝突檢測。

USE_PK_DATA
表明僅使用主鍵來檢測衝突。如果已經存在一個相同主鍵的行,在更新和刪除過程中將不會檢測到衝突。更新和刪除一行資料僅使用主鍵的列來處理。如果在插入時一行資料已經存在,將會檢測到衝突。

USE_OLD_DATA
表明將使用一行資料的各個列的舊值來檢測衝突。舊資料是這行資料在源節點中在變化之前的值。如果在目標系統上存在與舊資料相同的一行資料,在更新和刪除時,將不會檢測到衝突。如果在插入是一行資料已經存在,將會檢測到資料衝突。
注意,一些平台不知道二進位列的比較。在下列平台下,不會對二進位列的衝突檢測:DB2,DERBY,ORACLE和SQLSERVER。

USE_CHANGED_DATA
跟上邊相反。

USE_TIMESTAMP
判斷條件是主鍵+時間戳記列。

USE_VERSION
判斷條件是主鍵+一個版本號碼列。

Important
注意,在表對應的Trigger上,use_stream_lobs被設定為true時,衝突檢測將不會檢測二進位類型的列,此外,一些資料庫不允許二進位類型的列的比較,不管use_stream_lobs是否被設定為true。
可以在CONFLICT表的resolve_type列,配置如何處理衝突檢測。可以配置兩個可選的Boolean類型的值,resolve_row_only和resolve_changes_only,下面討論這個解決方案的設定。

FALLBACK
表明當檢測到衝突的時候,系統應該自動的應用變化後的資料。如果源節點的操作是插入,將會嘗試更新資料。如果源節點中的操作是更新,但是目標節點這行資料不存在,然後將在目標節點嘗試插入操作。如果源節點的操作室刪除,但是目標節點中這行資料不存在,然後目標節點的這個刪除操作將被忽略。Resolve_changes_only標識控制在一次fallback操作中,是所有的行都被更新還是只更新已經發生變化的列。

IGNORE
表明當檢測到衝突時,系統將自動忽略。Resolve_row_only列控制是整個batch都被忽略還是只忽略這一行資料。

MANUAL
表明當檢測到衝突的時候,整個Batch將保持錯誤狀態直到手工介入。一行錯誤的資料會被插入到INCOMING_ERROR表中。此次衝突檢測的標識(例如CONFLICT表中的conflict_id)將會被記錄,同時還會記錄舊的資料,新的資料和當前資料(當前資料是指在目的節點意外的資料,這些資料不想期望的那樣不匹配舊的資料)到old_data,new_data和cur_data中。為瞭解決衝突,resolve_data列可以被手工的填充以代替原始的資料,這將被用來進行下一次載入嘗試。Resolve_ignore標識將被用來表明下一次載入時,這一行資料是否應該被忽略。

NEWER_WINS
表明當使用USE_TIMESTAMP或者USE_VERSION方式檢測到衝突的時候,將會使用更新的時間戳記或者更高版本的數的資料更新目標節點的資料。
對於配置的每一個衝突檢測策略,你可以控制是否以及多少被解決衝突後的資料被發送回資料衝突所在的節點。可以設定ping_back列為下面的值中的一個來控制這個策略:

OFF
沒有資料被發送回原始節點,即使被解決的資料也不匹配節點發送的資料。

SINGLE_ROW
一個Batch中的一行導致衝突然後被解決的資料發送回原始節點

REMAING_ROWS
一個batch中發生衝突然後被解決的一行資料,與整個Batch中剩下的資料一起,被發送回原始節點。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.