国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

DBA_2PC_PENDING 介紹

2024-08-29 13:57:05
字體:
來源:轉載
供稿:網友
DBA_2PC_PENDING
Oracle會自動處理分布事務,保證分布事務的一致性,所有站點全部提交或全部回滾。一般情況下,處理過程在很短的時間內完成,根本無法察覺到。但是,如果在commit或rollback的時候,出現了連接中斷或某個數據庫站點CRASH的情況,則提交操作可能會無法繼續,此時DBA_2PC_PENDING和DBA_2PC_NEIGHBORS中會包含尚未解決的分布事務。 

 

對于絕大多數情況,當恢復連接或CRASH的數據庫重新啟動后,會自動解決分布式事務,不需要人工干預。只有分布事務鎖住的對象急需被訪問,鎖住的回滾段阻止了其他事務的使用,網絡故障或CRASH的數據庫的恢復需要很長的時間等情況出現時,才使用人工操作的方式來維護分布式事務。 


手工強制提交或回滾將失去二層提交的特性,Oracle無法繼續保證事務的一致性,事務的一致性應由手工操作者保證。 


對于分布式事務,給事務命名是一個好的習慣。而且在事務執行過程中,可以使用ALTER SESSION ADVISE COMMIT(ROLLBACK);語句,為手工解決分布事務提供參考信息。 


當手工解決分布事務出現了沖突,比如一個站點進行了提交而另一個進行了ROLLBACK,這時,DBA_2PC_PENDING中的記錄不會清除,必須使用DBMS_TRANSACTION.PURGE_MIXED過程來清除。 


如果CRASH的數據庫必須重建,或者無法再次啟動,則DBA_2PC_PENDING中的記錄也無法自動清除,需要使用DBMS_TRANSACTION.PURGE_LOST_DB_ENTRY過程來清除。 


Oracle9i中,當使用上述兩個過程時,必須處于UNDO_MANAGEMENT=MANUAL的模式,這個限制條件Oracle沒有寫到文檔中。一般使用9i都會使用AUTO模式(Oracle也是這樣推薦的),也就是說,想要清除DBA_2PC_PENDING中的信息,必須重起數據庫兩次,感覺這兩個過程的實際用處不大。 

 

出現無法解決的分布式事務時,可能會鎖住分布式事務中涉及的表,由于Oracle無法確定哪些數據是提交過的,哪些是沒有提交的,無法確定查詢操作可見的結果集,因此,即使是查詢操作也無法在該表上執行。 


使用ALTER SYSTEM DISABLE DISTRIBUTED RECOVERY,可以使Oracle不再自動解決分布事務,即使網絡恢復連接或者CRASH的數據庫重新啟動。ALTER SYSTEM ENABLE DISTRIBUTED RECOVERY恢復自動解決分布事務。 


為了保證數據庫之間的SCN同步,可以采用兩種方法:在查詢數據前,執行SELECT * FROM DUAL@REMOTE或者在執行查詢前提交或回滾當前事務。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉义县| 独山县| 临漳县| 广德县| 化德县| 澳门| 浦北县| 门源| 琼中| 株洲市| 壤塘县| 五河县| 连州市| 板桥市| 克什克腾旗| 北川| 堆龙德庆县| 确山县| 清远市| 苍山县| 广丰县| 龙山县| 太和县| 木里| 南城县| 长泰县| 兴海县| 鹿邑县| 金川县| 望都县| 舒兰市| 韶山市| 积石山| 张掖市| 吴堡县| 顺义区| 拉孜县| 商河县| 楚雄市| 望江县| 深水埗区|