最近碰到了复制的问题,真心请教。从生产DB A复制到B,B用作查询,A充当发布和分发。先是做事务复制,B请求订阅,发现A负载较高的时候,会出现大量的锁等待,影响生产库并发处理。
把复制删除后,生产库恢复正常。改为快照复制后,发现每天生成快照时,会发生死锁。。问题:
1、事务复制会对发布方产生很大压力吗,还是说压力来自分发这个步骤?
2、生成快照时,是否会将相关表锁住,阻止其它事务修改数据?
把复制删除后,生产库恢复正常。改为快照复制后,发现每天生成快照时,会发生死锁。。问题:
1、事务复制会对发布方产生很大压力吗,还是说压力来自分发这个步骤?
2、生成快照时,是否会将相关表锁住,阻止其它事务修改数据?
死锁发生时快照代理连接到分发服务器的优先级。
指定此参数是为了解决快照生成期间在快照代理和用户应用程序之间发生的死锁问题。DistributorDeadlockPriority 值说明
-1
在分发服务器上发生死锁时,应用程序而非快照代理优先。
0(默认值)
未分配优先级。
1
在分发服务器上发生死锁时,快照代理优先。
-DistributorDeadlockPriority 关于这个参数
1、应该如何设置?我是用management studio设置的,是设置完成后再运行什么命令来设置吗
2、我发现第一个死锁是在生成快照期间发生的,但在快照生成并完成同步后还会发生。如果参数设置为-1,是否可以根本解决死锁问题?rucypli:
你指的是不是事务复制时,订阅方未建立索引,导致同步数据时更新较慢,所以引起生产库拥塞?
事务复制不会自动建立索引吗?
多谢您提供这个思路。
建议不必实时同步,配置5分钟同步一次差不多就够了.
2.快照复制造成的LOCK数量会更大,详见快照复制的原理.