衝突解決方案概念和體系結構——高階複製
文件在這一章介紹了衝突解決方案的概念。
無論是多主複製環境還是可更新物化檢視複製環境,只要有兩個以上的站點存在同時的寫操作,就可能導致資料的不一致,為了保證各個站點上的資料統一性,就必須設定衝突解決方案。
其中多主複製每個主站點都會在出現資料衝突時根據預設的衝突解決方案來解決資料的衝突。而物化檢視複製環境只在主站點和可更新的主物化檢視站點執行衝突解決方案。
根據衝突的型別不同,可以分為更新衝突、唯一衝突和刪除衝突。
更新衝突指的是兩個或更多站點在幾乎同時(多主複製是在兩個主站點將修改推到對方之前,而物化檢視複製則是在物化檢視重新整理之前)修改了同一條記錄。Oracle預設了LAST TIMESTAMP、OVERWRITE、ADDITIVE、AVERAGE、DISCARD、EARLIEST TIMESTAMP、MAXIMUM、MINIMUM、PRIORITY GROUP和SITE PRIORITY多種衝突解決方案。其中LAST TIMESTAMP和ADDITIVE可以保證在多主環境中資料的統一性。而MAXIMUM、MINIMUM和PRIORITY GROUP都是在滿足一定條件下可以保證多主環境中資料統一性。其他的方法用在多主環境中很可能會造成各個站點在進行衝突解決後資料不一致,因此更適合作為物化檢視複製環境的衝突解決方案,或者第二衝突解決方案。在所有衝突解決方案中,最常使用的是LAST TIMESTAMP加上SITE PRIORITY作為後備衝突解決方案,因為兩個站點的時間戳可能出現重複。
唯一衝突是指兩個或更多站點在幾乎同時(多主複製是在兩個主站點將修改推到對方之前,而物化檢視複製則是在物化檢視重新整理之前)插入或更新的資料的唯一鍵值相同。Oracle提供了APPEND SITE NAME、APPEND SEQUENCE和DISCARD三種衝突解決方案,其實大部分唯一衝突都可以從設計層面避免。
刪除衝突指的是兩個或更多站點在幾乎同時(多主複製是在兩個主站點將修改推到對方之前,而物化檢視複製則是在物化檢視重新整理之前)刪除同一行記錄,或者一個站點刪除記錄,而另一個站點對資料進行了更新。Oracle並沒有提供解決刪除衝突的解決方案,對於刪除衝突可以透過避免DELETE語句,或者使用者自己提供的衝突方案來解決。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4227/viewspace-665656/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 主體複製概念和體系結構——高階複製
- 部署模板概念和體系結構——高階複製
- 物化檢視複製概念和體系結構——高階複製
- IP衝突解決方案
- 高階裝備製造業系統解決方案
- 流衝突解決方案——流
- 建立結算清單時提示衝突解決方案
- 高階複製總結
- git pull衝突的解決方案Git
- 關於Oracle 高階複製的概念Oracle
- Oracle 高階複製的概念及配置Oracle
- 改變複製物件結構對高階複製的影響物件
- Elasticsearch——併發衝突以及解決方案Elasticsearch
- Jar包衝突解決方案調研JAR
- 如何克服解決Git衝突的恐懼症?(Git高階篇)Git
- 如何克服解決Git衝突的恐懼症?(Git高階話題)Git
- Maven依賴衝突解決總結Maven
- Git 解決衝突Git
- git 解決衝突Git
- 解決jquery和其他庫的衝突jQuery
- SVN衝突解決和注意事項
- 高階複製錯誤ORA-23474解決方法
- oracle 高階複製Oracle
- Oracle高階複製Oracle
- 為什麼docker 網段衝突會和宿主機衝突?原因分析和解決方案Docker
- 對等複製中的衝突檢測
- 程式衝突及其解決
- git pull 衝突解決Git
- windows解決埠衝突Windows
- SVN 版本衝突解決
- hash衝突解決方法
- Git衝突解決技巧Git
- 一種巢狀滑動衝突的解決方案巢狀
- 巢狀UIScrollview的滑動衝突解決方案巢狀UIView
- Flutter和iOS手勢衝突解決思路FlutteriOS
- 關於jquery.form和jquery.validata衝突的解決方案jQueryORM
- CentOS7安裝MySQL衝突和問題解決小結CentOSMySql
- MySQL 同步複製及高可用方案總結MySql