在默认情况下,immediate_sync是关闭的,这个属性可以在创建publication时指定,也可以在创建完毕后修改. 如果immediate_sync为true, snapshot 文件和replicated transaction将一直保留到data retention.然后才会被删除.这会导致distribution 数据库增长,复制性能下降. 所以推荐设置为false. 需要注意的时,如果一个数据库有多个publication,只要其中有一个publication的immediat…
序言 今天我在写代码的时候,看到了.一个注解@Transactional(rollbackFor = Exception.class),今天就和大家分享一下,这个注解的用法: 异常 如下图所示,我们都知道Exception分为运行时异常RuntimeException和非运行时异常 error是一定会回滚的 如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止. 如果不想终止,则必须捕获所有的运行时异常,决不让这个处理线程退出.队列里面出现异常数据了,正常的处理应…
异常: 如下图所示,我们都知道 Exception 分为 运行时异常 RuntimeException 和 非运行时异常. error 是一定会回滚的. 如果不对运行时异常进行处理,那么出现运行时异常之后,要么是线程中止,要么是主程序终止. 如果不想终止,则必须捕获所有的运行时异常,决不让这个处理线程退出.队列里面出现异常数据了,正常的处理应该是把异常数据舍弃,然后记录日志. 不应该由于异常数据而影响下面对正常数据的处理. 非运行时异常是 RuntimeException 以外的异常,类型上都属…
在SQL SERVER的复制(Replication)中,有可能出现由于业务需求变更,需要新增一张表或一些表到已有的复制(发布订阅)当中,这种需求应该是很正常,也很常见的.但是在已有的复制(发布订阅)当中增加新表/文章,往往需要将整个快照重新初始化,这样做虽然简单,但是往往在实际应用中会出现一些问题,例如,发布订阅的表比较多,数据量比较大,那么重新初始化快照往往需要很长一段时间,影响系统正常运行.另外就是这样做会增大服务器的负荷,影响网络带宽. 那么是否可以在新增表/文章后,不用初始化整个快照,…
在SQL SERVER的复制(Replication)中,有可能出现由于业务需求变更,需要新增一张表或一些表到已有的复制(发布订阅)当中,这种需求应该是很正常,也很常见的.但是在已有的复制(发布订阅)当中增加新表/文章,往往需要将整个快照重新初始化,这样做虽然简单,但是往往在实际应用中会出现一些问题,例如,发布订阅的表比较多,数据量比较大,那么重新初始化快照往往需要很长一段时间,影响系统正常运行.另外就是这样做会增大服务器的负荷,影响网络带宽. 那么是否可以在新增表/文章后,不用初始化整个快照,…
Publication的属性 immediate_sync 控制 Snapshot 文件的创建,如果属性 immediate_sync设置为true,那么snapshot file在snapshot agent 每次 run的时候都会创建.如果设置为false,snapshot file 只在subscription创建时才会创建. 在创建Snapshot file之后,如果对article 进行update,会产生 pending transaction,这些transaction会被写入到d…
Snapshot agent负责收集publication database的信息,将article的内容存储在snapshot文件中.而distribuiton cleanup job(后文简称清除作业)则负责删除这些文件.清除作业默认每15分钟运行一次,但并不是每一次都会去删除这些文件.那么其中有什么规律吗? 实际上这取决与您的设定.如果您的publication启用了immeidate_sync,那么清除作业会一直保留这些文件,直到达到了 max distribution retentio…
Table Column有两个特殊的属性RowGUIDCol 和 Identity,用于标记数据列: $ROWGUID 用于引用被属性 RowGUIDCol 标识的UniqueIdentifier 类型的 column: $IDENTITY 用于引用被属性 Identity 标识的整数类型(int,bigint,tinyint,smallint,decimal(p,0))的 column: 在每个table中,只能有一列被标识为RowGUIDCol,只能有一列被标识为Identity: 一,属性…
在创建发布时,如果选择立即初始化,会将immediate_sync属性设置为true.如果immediate_sync属性为true时,snapshot文件和发布事务及发布命令将一直保留到指定的事务保持期后才会被删除.事务保持期设置: 在同一个DB上,如果有一个发布的属性被设置为true,则该DB上其他发布产生的事务也会被保留至事务保持期 查看immediate_sync属性为true 的发布 USE distribution;GOSELECT p.publication,p.publisher…
事务的传播行为 当事务方法被另一个事务方法调用时,必须指定事务应该如何传播.例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行.事务的传播行为可以由传播属性指定.Spring定义了7种类传播行为. 事务传播属性可以在@Transactional注解的propagation属性中定义. 1) . 说明 ①REQUIRED传播行为当bookService的purchase()方法被另一个事务方法checkout()调用时,它默认会在现有的事务内运行.这个默认的传播行为就是…