SQL Server 事务、锁与数据转换服务全解析
一、分布式事务处理
1.1 分布式事务的提交机制
分布式事务的 BEGIN TRANSACTION 语句与本地事务差别不大,但提交阶段有所不同。为减少网络故障的影响,分布式事务的提交采用两阶段提交。
- 准备阶段(Prepare phase) :分布式事务协调器(DTC)向所有涉及的资源管理器发送准备提交的消息。资源管理器收到消息后,保存事务状态,并向 DTC 报告成功或失败。
- 提交阶段(Commit phase) :只有当所有参与方都报告成功时,DTC 才会发送提交消息,各资源管理器尝试提交事务并向 DTC 报告结果。若有任何资源管理器报告失败,所有事务将回滚;否则,事务完成。
1.2 启动分布式事务
可以显式启动分布式事务,示例代码如下:
BEGIN DISTRIBUTED TRANSACTION tWithdrawal
也可以在链接服务器上启动事务,语法与本地事务相同,由 DTC 处理具体实现细节。
1.3 事务回滚
在 BEGIN TRANSACTION 语句之后的任何时间,可以使用 SAVE TRANSACTION <name> 语句设置回滚点。使用保存点名称执行 ROLLBACK 命令时,会回滚到该保存点,
超级会员免费看
订阅专栏 解锁全文
2626

被折叠的 条评论
为什么被折叠?



