在默认情况下,immediate_sync是关闭的,这个属性可以在创建publication时指定,也可以在创建完毕后修改。 如果immediate_sync为true, snapshot 文件和replicated transaction将一直保留到data retention.然后才会被删除。这会导致distribution 数据库增长,复制性能下降。 所以推荐设置为false. 需要注意的时,如果一个数据库有多个publication,只要其中有一个publication的immediate_sync为true,将会导致这个数据库的所有publication的replicated transaction的保留期都延长至data retention.

您可以在distribution database里执行下面的语句进行检查:

select p.publication,p.publisher_db,ser.name as publisherServer from MSpublications p inner join sys.servers ser on p.publisher_id =ser.server_id where immediate_sync=1 and publication_type =0

语句会列出immediate_sync为true的publication以及数据库和服务器信息。下面是一个执行结果的截图。

之后您需要去发布数据库执行下面的语句将immediate_sync禁止

exec sp_changepublication @publication = 'publicationName' ,@property = 'allow_anonymous' , @value = false

exec sp_changepublication @publication = 'publicationName' , @property = 'immediate_sync' , @value = false

有时候一些元数据信息无法被正确修改,导致即使immediate_sync为false, replicated transaction 仍然会被保留下来。 所以需要在distribution database中进行额外的检查:

select *From MSdistribution_agents where subscriber_id<0

如果这个查询仍然返回结果,则说明metadata有问题了。需要手工进行删除(请在Microsoft support service的指导下执行下面的语句)

select * into MSdistribution_agents_bak From MSdistribution_agents where subscriber_id<0

select * into MSdistribution_history_bak From MSdistribution_history where agent_id in

(

select id From MSdistribution_agents where subscriber_id<0

)

delete From MSdistribution_history where agent_id in

(

select id From MSdistribution_agents where subscriber_id<0

)

delete From MSdistribution_agents where subscriber_id<0

转载于:https://www.cnblogs.com/stswordman/p/3267688.html

transactional replication 的immediate_sync属性相关推荐

  1. SQL Server Transactional Replication 中的 CommitBatchSize 和 CommitBatchThreshold 属性

    最近遇到一个在SQL Server transactional replication 里关于CommitBatchSize 和CommitBatchThreshold设置的问题,BOL里面的解释很含 ...

  2. Publication的 immediate_sync 属性

    Publication的属性 immediate_sync 控制 Snapshot 文件的创建,如果属性 immediate_sync设置为true,那么snapshot file在snapshot ...

  3. java rollback_Spring中的@Transactional(rollbackFor = Exception.class)属性详解

    序言 今天我在写代码的时候,看到了.一个注解@Transactional(rollbackFor = Exception.class),今天就和大家分享一下,这个注解的用法: 异常 如下图所示,我们都 ...

  4. @Transactional事务的使用和注意事项及其属性

    事务管理 提示 @Transactional注解只能应用到public可见度的方法上,可以被应用于接口定义和接口方法,方法会覆盖类上面声明的事务. 示例: 例如用户新增需要插入用户表.用户与岗位关联表 ...

  5. SQL Server Replication 中关于视图的点滴

    原文:SQL Server Replication 中关于视图的点滴 在服务器A数据库TEST新建了一个本地发布(Local Publications)RPL_GES_MIS_TEST,在服务器B数据 ...

  6. SQL Server Replication II

    Sql Server Replication Scripting Setup 大概的一个拓扑, 我们将三种角色分别安装在三台不同的 sql server 服务器上 1.1 distributor 1. ...

  7. Transactional Replication2:在Subscriber中,主键列是只读的

    在使用Transactional Replication时,Subscriber 被认为是"Read-Only"的 , All data at the Subscriber is ...

  8. Replication的犄角旮旯(四)--关于事务复制的监控

    原文:Replication的犄角旮旯(四)--关于事务复制的监控 <Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Rep ...

  9. 一口气说出 6 种 @Transactional 注解的失效场景

    一.事务 事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种. 编程式事务:是指在代码中手动的管理事务的提交.回滚等操作,代码侵入性比较强, ...

最新文章

  1. JQuery中的queue()及dequeue()
  2. 学习笔记(11):Python网络编程并发编程-粘包底层原理分析
  3. C#9.0 每个开发人员都必须知道的4个特性
  4. 三因素方差分析_详解方差分析表(ANOVA)(一) —— 线性回归与矩阵代数.回顾
  5. 组策略设置IE 11的Compatible View
  6. 优达学城深度学习之二——矩阵数学和Numpy复习
  7. scala List
  8. tomcat 访问本地C,D盘等文件配置
  9. HTML5.1 推荐中 1.5.3. Extensibility 段落翻译
  10. 一个小白对卷积神经网络的理解
  11. C++远征离港篇-学习笔记
  12. 小黄鸡(小贱鸡)机器人
  13. [caffe] Long-term Recurrent Convolutional Networks
  14. 西南大学网络教育行政管理计算机答案,西南大学网络教育1056计算机基础春考试大作业答案.doc...
  15. app公司制作app的方法和步骤
  16. springboot整合poi解析excel
  17. 太美医疗科技CTMS临床试验项目管理系统的全新升级
  18. mysql 退出数据库_mysql怎样退出使用数据库
  19. Office365 Word 打开某个文件就自动卡死关闭
  20. LED显示屏和液晶显示屏有什么区别?

热门文章

  1. 报表性能优化方案之单数据集分页SQL实现层式报表
  2. 《量子计算机简史》--摘
  3. python里的collections模块
  4. java进入dos_java启动dos命令收集笔记一
  5. Super Jumping! Jumping! Jumping! 最长上升子序列+DP
  6. LeetCode 58.最后一个单词的长度(python、c++)
  7. AcWing 1054. 股票买卖
  8. 官网MySQL下载速度慢的解决方法(5分钟内搞定)
  9. 第八讲 拍卖的博弈分析练习题
  10. Android中如何使按钮的背景变得透明