Oracle
分布式事务处理过程
一、基本概念
如图
Oracle
为分布式事务定义了会话树,树中的每个节点代表一个数据库服务,所有
会话树中的节点都需要承担下列一个或多个角色:
1
客户端
(
Client
)
引用不同数据库节点中数据的节点。
2
数据库服务器
(
Database server
)
响应来自另一节点数据请求的节点。
3
本地协调器
(Local Coordinator)
在分布事务中,
必须引用其它节点上的数据才能完成自己这部分事务操作的站点。
如上
图
SALES
也是一个本地协调器。
4
全局协调器
(Global Coordinator)
分布事务的发起者,负责发送所有分布式事务
SQL
语句与协调整个分布事务。会话树
中的根节点为全局协调器。
5
提交点节点
(Commit Point Site)
在分布事务提交过程中,首先执行
COMMIT
或
ROLLBACK
操作的站点。一般情况下,应
该把存储关键数据的站点作为提交点节点。因为提交点节点和其它节点不同,它不会进入
prepared
状态,所以不会变为
IN-DOUBT
事务(
IN-DOUBT
事务定义在三
-3
中详述)
。
在分布式事务中,可以设置初始化参数
COMMIT_POINT_STRENGTH
。
Oracle
会根据将
COMMIT_POINT_STRENGTH
值较大的节点确定为提交点节点。
但需要注意的是,
只读节点不
能成为提交点节点。