Oracle分布事務中最先提交分布式的3個階段

2021-06-16 18:34:13 字數 1349 閱讀 9999

在了解oracle分布事務之前,我們首先需要明確幾個概念,這對於我們更好的掌握oracle分布事務是十分必要的。下面,我們先來看幾個概念,然後具體學習oracle分布事務的3個階段。

1)local coordinator:在oracle分布事務中,必須參考其它節點上的資料才能完成自己這部分操作的站點。

2)global coordinator:oracle分布事務的發起者,負責協調這個分布事務。

3)commit point site:在oracle分布事務中,首先執行commit或rollback操作的站點。一般情況下,應該把儲存關鍵資料的站點作為commit point site。因為commit point site和其它站點不一樣,從來不會進入prepared狀態,所以不會存在in-doubt事務。

可以設定初始化引數commit_point_strength,在oracle分布式事務中,會根據這個值的大小來確定commit point site,oracle分布事務的狀態資訊也存在該資料庫中。一般將關鍵的資料庫作為commit point site ,commit_point_strength值較高的資料庫為commit point site,在oracle分布事務中最先提交分布式的3個階段。

oracle分布事務的兩階段提交分三個過程:

2.oracle分布事務的提交階段(commit phase)

·本地資料庫global coordinator通知commit point site首先提交。commit point site提交後,釋放其占有的資源,通知global coordinator完成提交

·本地資料庫global coordinator通知其它資料庫提交

·提交節點在日誌中追加一條資訊,表示oracle分布事務已經完成提交,並通知global coordinator。此時所有資料庫的資料保持了一致性。

3.oracle分布事務的登出階段(forget phase)

·本地資料庫global coordinator通知commit point site所有資料庫已經完成提交

·commit point site清除oracle分布事務的記錄和狀態資訊,並通知global coordinator

·global coordinator清除本地oracle分布事務的記錄和狀態資訊

此時oracle分布事務的兩階段提交全部完成。

如果oracle分布事務兩階段提交完成之前,資料庫或網路出現異常,應用就會報錯,oracle分布事務處於in_doubt狀態。一旦資料庫或網路恢復正常,系統(reco process)會自動處理in_doubt狀態的oracle分布事務。有些情況需要管理員手工處理in_doubt狀態的oracle分布事務:·in_doubt狀態的oracle分布事務,將關鍵表鎖住,造成應用不能正常工作

刪除oracle未提交的事務

先查詢出未提交的事務 select dob.object name table name,lo.session id vss.serial 刪除號,lo.locked mode,lo.session id,vss.serial vss.action action,vss.osuser osuser,...

分布式事務 XA事務 兩階段提交

1.分布式事務 在談到 xa 規範之前,必須首先了解分布式事務處理 distributed transaction processing dtp 的概念。transaction 即事務,又稱之為交易,指乙個程式或程式段,在乙個或多個資源如 資料庫 或檔案上為完成某些功能的執行過程的集合。分布式事務處...

Oracle 分布式事務和兩階段提交 2PC

分布式事務是指發生在多台資料庫之間的事務,oracle中通過dblink方式進行事務處理,分布式事務比單機事務要複雜的多。大部分的關係型資料庫通過兩階段提交 2 phase commit 2pc 演算法來完成分布式事務,下面重點介紹下2pc演算法。在分布式事務中,主要有以下幾個組成部分 在分布式事務...