在SQL Server 2017 中,当Alwasyon group启用了DTC_SUPPORT = PER_DB, 会致使没法建立replicaiton.

当Alwasyon group启用了DTC_SUPPORT = PER_DB, 会致使没法建立replicaiton.没法修改已经存在的replication.sql

 

缘由:数据库

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

这回致使下面的语句失败spa

begin tran

save tran tran1
select*Fromsys.tables

 

  The 3933 errorcode

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

 

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

Workaroundio

===table

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

或者

2)在进行操做前暂时将DTC_Support关闭,以后再启用。(若是操做时Failover发生,会影响正在运行的DTC transaction,因此建议在downtime时进行该操做)

 

ALTER AVAILABILITY GROUP dbName SET (     DTC_SUPPORT = none   );
相关文章
相关标签/搜索