transactional replication 的immediate_sync属性
在默认情况下,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属性相关推荐
- SQL Server Transactional Replication 中的 CommitBatchSize 和 CommitBatchThreshold 属性
最近遇到一个在SQL Server transactional replication 里关于CommitBatchSize 和CommitBatchThreshold设置的问题,BOL里面的解释很含 ...
- Publication的 immediate_sync 属性
Publication的属性 immediate_sync 控制 Snapshot 文件的创建,如果属性 immediate_sync设置为true,那么snapshot file在snapshot ...
- java rollback_Spring中的@Transactional(rollbackFor = Exception.class)属性详解
序言 今天我在写代码的时候,看到了.一个注解@Transactional(rollbackFor = Exception.class),今天就和大家分享一下,这个注解的用法: 异常 如下图所示,我们都 ...
- @Transactional事务的使用和注意事项及其属性
事务管理 提示 @Transactional注解只能应用到public可见度的方法上,可以被应用于接口定义和接口方法,方法会覆盖类上面声明的事务. 示例: 例如用户新增需要插入用户表.用户与岗位关联表 ...
- SQL Server Replication 中关于视图的点滴
原文:SQL Server Replication 中关于视图的点滴 在服务器A数据库TEST新建了一个本地发布(Local Publications)RPL_GES_MIS_TEST,在服务器B数据 ...
- SQL Server Replication II
Sql Server Replication Scripting Setup 大概的一个拓扑, 我们将三种角色分别安装在三台不同的 sql server 服务器上 1.1 distributor 1. ...
- Transactional Replication2:在Subscriber中,主键列是只读的
在使用Transactional Replication时,Subscriber 被认为是"Read-Only"的 , All data at the Subscriber is ...
- Replication的犄角旮旯(四)--关于事务复制的监控
原文:Replication的犄角旮旯(四)--关于事务复制的监控 <Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Rep ...
- 一口气说出 6 种 @Transactional 注解的失效场景
一.事务 事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种. 编程式事务:是指在代码中手动的管理事务的提交.回滚等操作,代码侵入性比较强, ...
最新文章
- JQuery中的queue()及dequeue()
- 学习笔记(11):Python网络编程并发编程-粘包底层原理分析
- C#9.0 每个开发人员都必须知道的4个特性
- 三因素方差分析_详解方差分析表(ANOVA)(一) —— 线性回归与矩阵代数.回顾
- 组策略设置IE 11的Compatible View
- 优达学城深度学习之二——矩阵数学和Numpy复习
- scala List
- tomcat 访问本地C,D盘等文件配置
- HTML5.1 推荐中 1.5.3. Extensibility 段落翻译
- 一个小白对卷积神经网络的理解
- C++远征离港篇-学习笔记
- 小黄鸡(小贱鸡)机器人
- [caffe] Long-term Recurrent Convolutional Networks
- 西南大学网络教育行政管理计算机答案,西南大学网络教育1056计算机基础春考试大作业答案.doc...
- app公司制作app的方法和步骤
- springboot整合poi解析excel
- 太美医疗科技CTMS临床试验项目管理系统的全新升级
- mysql 退出数据库_mysql怎样退出使用数据库
- Office365 Word 打开某个文件就自动卡死关闭
- LED显示屏和液晶显示屏有什么区别?