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