(SQL 2008R2)Transaction replication caused blocking issue

Environment: Automation系统transaction database,SQL Cluster 'HZXL1\HZXL1 ',SQL 2008R2 Enterprise Edition 64bit(10.50.4276)
详情 :SQL Server 发出blocking警报,检查发现是-Replication job *Distribution clean up: distribution* 阻挡transaction agent,致使新数据插入至distribution数据库缓慢,报表数据delay.并且job *Distribution clean up: distribution*运行时间比之前缓慢许多(平常是几秒钟,当前是2-4分钟),数据库distribution持续增长(因数据库每天的增长量是3GB左右,所以ditribution的增长很迅速)...
由于只是报表数据延迟,并未对生产造成影响,且存储暂时没有空间压力,所以此异常的紧急度定义级别并不高.
检查最近的更新记录,发现美国同事新增了一个事务类型的replication,而自此change升效后出现当前的异常,检查此新增的replication发现参数"Immeidate_Sync"为true,与已经存在的replication参数值不同.更正后,relication恢复正常,distribution数据库中的数据被快很清理掉,
但因这几十GB的已经扩展出来空间对于我们并未造成任何影响,故至今并未对distribution进行收缩.

下面再来说说参数"Immeidate_Sync"比较常用的地方或实用的地方(更细节的东西并没有去研究...),当我们使用向导建立事务replication时,参数 'allow_anonymous''immediate_sync'会默认设置为true,这样的设置有其不方便的地方-比如,当我们对已经存在的事务型replication增加,减少或变更一个表(article)时,做snapshot时,会对所有已经存在的article全部做snapshot,这样无疑会加重server的负担,而像我们这种上T的几乎全部复制到报表服务器的数据库是灾难性的,将以下两个参数设置成"false"后,只会对变更的article做snapshot,这样无疑会大大节省数据同步的时间,因此我们目前建立事务型replication的标准是一定要将以下两个参数设置成"false":
*************

EXEC sp_changepublication
@publication = 'your_publication_name',
@property = 'allow_anonymous',
@value = 'false'
GO

EXEC sp_changepublication
@publication = 'your_publication_name',
@property = 'immediate_sync',
@value ='false'
GO
*************


Ref:
http://blogs.msdn.com/b/apgcdsd/archive/2012/09/07/10347168.aspx
http://www.replicationanswers.com/TransactionalOptimisation.asp


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7736490/viewspace-1128700/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7736490/viewspace-1128700/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值