当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 );