zoukankan      html  css  js  c++  java
  • 在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   );
  • 相关阅读:
    一个数组找出第k大的数(待补)
    变动二叉树
    判断一个二叉树
    Redis的过期策略和内存淘汰机制
    sql连接详解
    http 请求和格式
    java基础知识
    分页信息
    持续集成之Jenkins自动部署war包到远程服务器
    no-sql数据库之redis
  • 原文地址:https://www.cnblogs.com/stswordman/p/8476875.html
Copyright © 2011-2022 走看看