SQL Server 分布式事务的概念与包括事物

数据库 SQL Server 分布式
我们今天主要向大家讲述的是SQL Server 分布式事务概念的阐述,以及对SQL Server 分布式事务中所包含事项的描述。

以下的文章主要介绍的是SQL Server 分布式事务的概念,我们大家都知道SQL Server 数据库的分布式事务主要是涉及来自两个或者是多个源的资源的相关事务。Microsoft® SQL Server™ 2000 支持分布式事务。

使用户得以创建事务来更新多个 SQL Server 数据库和其它数据源。

分布式事务包括:

资源管理器

控制分布式事务所涉及的每个资源的软件称为资源管理器。SQL Server 分布式事务由各个资源管理器内的本地事务组成。每个资源管理器必须能够与分布式事务内的所有其它资源管理器相协调,以提交或回滚自己的本地事务。SQL Server 可以作为分布式事务内的资源管理器工作,并遵从用于分布式事务处理的 X/Open XA 规范。

事务管理器

提交或回滚分布式事务由称为事务管理器的软件组件控制。事务管理器与每个资源管理器相协调,确保一起提交或回滚所有组成分布式事务的本地事务。Microsoft 分布式事务处理协调器 (MS DTC) 服务如事务管理器一样工作。MS DTC 遵从用于分布式事务处理的 X/Open XA 规范。

两阶段提交 (2PC)

需要进行特殊的提交处理,以防止在管理跨越多个资源管理器的事务时出现问题。当刷新日志缓冲区使其可用时,提交大事务可能需要相对较长的时间。提交进程本身还可能遇到错误,需要强行回滚。如果事务管理器只是请求每个资源管理器提交,则可能从一些资源管理器返回成功状态,然后从某个资源管理器得到错误信息。这会导致冲突,因为所有SQL Server 分布式事务都应回滚,而部分事务已提交。两阶段提交通过将提交分成两相可以解决此问题:

准备

事务管理器给每个资源管理器发送一个准备提交的请求。然后,每个资源管理器执行完成提交进程所需的所有大量占用资源的操作,如刷新所有日志缓冲区。资源管理器只保留维护事务完整性所需的最少的锁,然后给事务管理器返回成功状态。

提交

如果所有资源管理对发给它们的准备请求返回成功状态,事务管理器将给每个资源管理器发送提交命令。然后,每个资源管理器快速将事务记录为已完成,并释放上次控制的资源。如果有任何资源管理器对准备请求返回错误信息,事务管理器将给每个资源管理器发送回滚命令。

有几种方法可以使应用程序在分布式事务内包括 SQL Server 2000:

如果应用程序有本地事务并且发出分布式查询,本地事务将升级到SQL Server 分布式事务。

发出 BEGIN DISTRIBUTED TRANSACTION 语句。

如果应用程序有本地事务并且将 REMOTE_PROC_TRANSACTIONS 选项设置为>

使用用于 SQL Server 的 OLE DB 提供程序或 SQL Server ODBC 驱动程序的应用程序,可以使用 OLE DB 方法或 ODBC 函数让 SQL Server 连接联接由应用程序启动的SQL Server 分布式事务。

【编辑推荐】

  1. SQL Server处理空值操作中的3大问题有哪些?
  2. SQL Server 2000优化SELECT 语句的方案介绍
  3. SQL Server 2000文件损坏的修复方案
  4. 改善SQL Server安全规划的6步骤
  5. SQL Server备份文件中对现存数据库的导入
责任编辑:佚名 来源: 163.com
相关推荐

2010-07-26 13:25:11

SQL Server分

2010-07-23 13:25:31

2010-07-21 13:42:53

SQL Server分

2010-07-14 08:59:20

SQL Server分

2009-09-18 15:10:13

分布式事务LINQ TO SQL

2010-07-21 13:53:41

SQL Server分

2022-06-21 08:27:22

Seata分布式事务

2010-07-06 09:39:20

SQL Server分

2010-07-05 16:53:38

SQL Server

2022-06-27 08:21:05

Seata分布式事务微服务

2010-09-10 08:54:02

2017-07-26 15:08:05

大数据分布式事务

2024-01-05 07:28:50

分布式事务框架

2010-06-30 16:58:24

SQL Server分

2019-10-10 09:16:34

Zookeeper架构分布式

2010-06-30 17:27:32

SQL Server数

2021-04-23 08:15:51

Seata XA AT

2010-06-29 16:41:24

SQL Server分

2009-06-19 15:28:31

JDBC分布式事务

2021-09-29 09:07:37

分布式架构系统
点赞
收藏

51CTO技术栈公众号