在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   );
相關文章
相關標籤/搜索