设为首页 加入收藏

TOP

在SQL Server 2017 中,当Alwasyon group启用了DTC_SUPPORT = PER_DB, 会导致无法创建replicaiton.
2019-09-03 01:36:26 】 浏览:19
Tags:SQL Server 2017 Alwasyon group 启用 DTC_SUPPORT PER_DB 导致 无法 创建 replicaiton.

当Alwasyon group启用了DTC_SUPPORT = PER_DB, 会导致无法创建replicaiton.无法修改已经存在的replication.

 

原因:

当当Alwasyon group启用了DTC_SUPPORT = PER_DB,任何对于DMV的查询都被认为是'user xact'.

这回导致下面的语句失败

begin tran

save tran tran1
select*Fromsys.tables

 

  The 3933 error

'Cannot promote the transaction to a distributed transaction because there is an active save point in this transaction'

 

Replication的创建/修改语句中大量包含了这种格式的语句,会导致其失败

Workaround

===

1)启用 start up trace flag 8580。(Impact:对于系统数据库的语句会被当成常规的Transaction处理,而非DTC transaction,所以当Failover发生时,会影响正在运行的DTC transaction 可能会导致数据的不一致)

或者

2)在进行操作前暂时将DTC_Support关闭,之后再启用。(如果操作时Failover发生,会影响正在运行的DTC transaction,所以建议在downtime时进行该操作)

 

ALTER AVAILABILITY GROUP dbName SET (     DTC_SUPPORT = none   );

 

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇SQL 中Count()的问题 下一篇2017年数据库技术盘点

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目