国产探花免费观看_亚洲丰满少妇自慰呻吟_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或者在執行查詢前提交或回滾當前事務。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 大埔县| 商洛市| 西宁市| 隆尧县| 游戏| 察隅县| 南乐县| 温宿县| 获嘉县| 景泰县| 万载县| 呼玛县| 泰安市| 许昌市| 昭平县| 荣成市| 高雄县| 芒康县| 宁远县| 芜湖县| 宜宾市| 嘉定区| 冕宁县| 东宁县| 开远市| 靖宇县| 东莞市| 肥城市| 平阴县| 个旧市| 巫山县| 黄山市| 合川市| 酒泉市| 吴旗县| 荆州市| 张家川| 独山县| 香港 | 石棉县| 双鸭山市|