你目前正处于脱机状态,正在等待 Internet 重新连接

SQL Server 2005 中不支持使用数据库镜像对于跨数据库事务或分布式事务

注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。如果您发现了错误并希望帮助我们提高机器翻译技术,请完成文章末尾的在线调查。

点击这里察看该文章的英文版: 926150
错误 #: 439321 (SQLBUDT)
INTRODUCTION
数据库镜像不支持用于跨数据库事务或 Microsoft SQL Server 2005 中分布式事务。
更多信息
Microsoft SQL Server 2005 Service Pack 1 (SP 1) 引入了数据库镜像功能。 但是, 用于跨数据库事务或分布式事务不支持数据库镜像。 原子事务性和事务完整性能保证在下列情况:
  • 跨数据库事务

    故障转移, 后镜像数据库位于不同服务器实例。 通常, 镜像数据库是从非镜像数据库单独服务器实例上。 即使相同两伙伴, 之间镜像两个数据库有也两个数据库将故障转移同时不保证。
  • Microsoft 分布式事务处理协调器 (MSDTC) 事务

    新主体服务器故障转移, 后无法连接到 MSDTC 的早期主要服务器使用同一资源 ID。 因此, 新主体服务器无法获取事务状态。

示例方案

以下示例方案说明当您使用数据库镜像具有跨数据库事务之间数据库逻辑一致可能出现如何。 在本例, 应用程序使用跨数据库事务来插入两行的数据。 发生以下行为:
  • 镜像数据库 (数据库 A) 中的表插入一行。
  • (数据库 B) 另一个数据库表中插入其他行。
在高安全性模式与自动故障转移镜像数据库 A。 虽然是事务被提交, A 数据库不可, 和镜像会话自动故障转移到数据库 A 的镜像

之后转移, 跨数据库事务可能成功提交数据库 B 上但上失败 - 通过数据库。 如果不原始主体服务器对于数据库 A 不将事务日志对于跨数据库事务发送到镜像服务器失败之前发生此现象。 之后转移, 事务不存在新主体服务器上。 因此, 数据库 A 和 B 数据库不一致。 数据插入数据库 B 是保持不变。 数据库 A 是插入数据将丢失。

可使用数据库镜像与 MSDTC 事务时会发生类似情况。 故障转移后例如, 新主体服务器联系 MSDTC。 但是, MS DTC 并不知道的新主要服务器。 即使被视为其他数据库中提交事务因此, MS DTC 停止, 处于 " 准备要提交 " 阶段, 任何事务。

警告:本文已自动翻译

属性

文章 ID:926150 - 上次审阅时间:11/10/2006 16:46:00 - 修订版本: 1.0

Microsoft SQL Server 2005 Service Pack 1

  • kbhowto kbinfo kbexpertiseadvanced KB926150 KbMtzh kbmt
反馈
tml>