事务复制-大批量DEL操作】的更多相关文章

同事讨论删除发布表历史记录,导致订阅端数据滞后N小时.后来询问得知,发布表T只保留最近31天的数据,每天由Job删除31天前的数据,每天的删除量约400-500万条.默认情况下,在发布端删除400万条记录,这样的DEL将被作为一个大型的.多步骤事务发送到订阅服务器(有400万个命令写入到分发,并发送到订阅服务器).如果将删除命令封装成存储过程,并且复制存储过程的执行,则复制将仅发送在订阅服务器上执行存储过程的命令,而不会将所有DEL都写入分发数据库并随后通过网络将它们发送到订阅服务器.问题的原因…
  随着公司业务的发展,数据量增长迅速,在解决Scale Out的同时,还要考虑到主从的复制延迟问题,尽量降到1s以内满足线上业务,如果不调整,SQL Server默认的配置可能平均要3s左右.生产的复制架构采用的是推送方式进行事务复制,发布服务器下面有4个从节点,两两指向同一虚拟IP,构成负载均衡,服务于不同的线上业务.对于4个节点,发布库和分法库的压力都很大,订阅库每秒I/O能达到5M,高峰时能达到数十兆.研究并试验了一些时间,给出一些优化建议: 1.硬件.数据库设计: 使用SSD磁盘,有钱…
<Replication的犄角旮旯>系列导读 Replication的犄角旮旯(一)--变更订阅端表名的应用场景 Replication的犄角旮旯(二)--寻找订阅端丢失的记录 Replication的犄角旮旯(三)--聊聊@bitmap Replication的犄角旮旯(四)--关于事务复制的监控 Replication的犄角旮旯(五)--关于复制identity列 Replication的犄角旮旯(六)-- 一个DDL引发的血案(上)(如何近似估算DDL操作进度) Replication的…
有两种情况会造成更新丢失,第一种是不正确的设置,例如外键或触发器的“Not For Replication” (NFR)属性没有开启.详情请参考http://blogs.msdn.com/b/apgcdsd/archive/2012/01/10/10254809.aspx 第二种是产品bug,例如使用了 MaxCmdsInTran http://support.microsoft.com/kb/2648158 前一阵我在做case的时候遇到了一个新的bug.这个bug在sql server 20…
http://www.cnblogs.com/qanholas/archive/2012/03/22/2412444.html     一.为什么要使用对等事务复制 首先要说明的是使用sqlserver复制的目的 使用sqlserver数据库复制的目的,就是要将数据库压力由一台服务器分散到多台服务器,通过一台sqlserver服务器作为主机,将主数据库中的数据,复制到其他N台备份服务器上,从而实现分布式查询,大大降低了主服务器的压力. 在图一中,右面的拓扑结构就是典型的复制,写入的压力,全都在B…
本篇文章是SQL Server Replication系列的第五篇,详细内容请参考原文. 这一系列包含SQL Server事务复制和合并复制的详细内容,从理解基本术语和设置复制的方法,到描述它是如何工作的,以及如何监控基本的复制进程.为了充分利用这一篇文章,你需要理解SQL Server数据修改操作,并熟练使用SSMS.第五篇假定你已经熟悉前四篇的内容.这一系列的前面几篇讨论了如何在多台服务器的环境配置发布.引入了分发服务器.发布服务器和订阅服务器,同时讲解了分发数据库.发布数据库和订阅数据库.…
本篇文章是SQL Server Replication系列的第四篇,详细内容请参考原文. 订阅服务器就是复制发布项目的所有变更将传送到的服务器.每一个发布需要至少一个订阅,但是一个发布可以有多个订阅.这一篇假设你遵循了前面三篇,并且你已经配置好发布.配置订阅为了能创建订阅,你必须使用一个(能够访问订阅服务器和发布服务器的)登录名连接到数据库.另外,这个登录名至少需要是订阅数据库和发布数据库的db_owner角色的成员.连接到发布服务器首先你需要在对象资源管理器下连接到订阅服务器.打开复制文件夹,…
本篇文章是SQL Server Replication系列的第三篇,详细内容请参考原文. 发布服务器是所有复制数据的源头.每一个发布服务器上可以定义多个发布.每一个发布包含一组项目(项目在同一个数据库下).每一个项目对应一个数据库对象的全部或部分.一个数据库对象能够映射到多个发布中的项目.配置发布为了能够创建发布,你必须先把发布服务器与分发服务器联系起来.分发服务器可以是相同的SQL Server实例(Local Distributor)或者另一台机器上的单独实例(Remote Distribu…
2000现在用的估计不多了,把之前收集的一些复制问题整理发布出来.可能都是些很白很二的问题,但人总是由最初的无知不断成长,不对之处欢迎指正. sqlserver 2000事务复制问题服务器A(发布) 服务器B(分发+订阅)1.创建发布时对表identity属性问题因为该发布不允许使用可更新的订阅,当 IDENTITY 列被传输到订阅服务器时,不会传输 IDENTITY 属性.(例如,在发布服务器上定义为 INT IDENTITY 的列在订阅服务器上将定义为 INT.)如果想将 IDENTITY…
前提 在线执行一些大事务或锁表操作(给某个核心级表加一列或者执行修改操作),此时不但主库从库要长时间锁表,主从延迟也会变大.未避免大事务sql对整个集群产生影响,,我们希望一条SQL语句只在Master数据库上执行,而不复制到Slave数据库.这时候,sql_log_bin这个参数正是需要的.我们就可以这样操作: 1.先在备库执行 原slave mysql>set sql_log_bin=0; 原slave mysql>大事务sql 2.切换主备节点 3.在原主库再执行 原master mys…