SQLSERVER复制优化之一《减少包大小》

原文:SQLSERVER复制优化之一《减少包大小》

SQLSERVER复制优化之一《减少包大小》

自从搭了复制之后以为可以安枕无忧了,谁不知问题接踵而来

这次遇到的问题是丢包,不知道情况的读者可以先看一下我之前写的一篇《SQLSERVER监控复制并使用数据库邮件功能发告警邮件

因为机房C和机房A不在一个局域网,网络状况不是太好

 

分发积压的命令经常处于20W+条,复制并没有报错,每次传递的事务都是少于30个,正常来讲SQLSERVER默认每次会传输100个事务

 

 

后来测试了一下网络情况

 

从分发服务器ping一下订阅服务器,ping  4096Byte大小的包,ping100次,因为分发默认传输的包大小是4096Byte,中间偶尔会超时

ping  订阅服务器ip  -l 4096 -n 100

参数l是指包的大小, 参数n是指ping的次数,不加 -l 参数的话默认ping的包大小为32Byte

100个包有21个丢包

ping  订阅服务器ip  -l 1024 -n 100

 

100个包有5个丢包

 

后来又继续ping  512Byte 、256Byte、128Byte大小的包,发现越小的包,丢包率就越低

从当前的网络测试情况来看,需要调整一下分发代理的包大小,在分发代理配置文件里有一个参数  -PacketSize packet_size 

这个参数是设置分发代理发送到订阅服务器的包大小的。

环境:发布和分发都在同一台机器

 



设置

我们将分发代理的包大小设置1024Byte,那么怎么设置呢?

有两种方法:

方法一:修改分发agent 的作业

(1)打开分发代理作业

(2)转到步骤

(3)双击“运行代理”,然后添加参数  -PacketSize 1024 ,点击确定,退出作业属性

(4)禁用分发代理作业

(5)启用分发代理作业

 

这样设置过后,分发代理就会以新的参数运行

 

但是代理配置文件是看不出来当前分发代理的运行参数的,还是显示4096Byte

 

 

方法二:新建一个代理配置文件,然后直接修改参数

(1)默认的代理配置文件是修改不了的

(2)新建一个代理配置文件

(3)选择默认代理配置文件(新代理的默认值)

(4)输入配置文件名:testprofile,把“仅显示此配置文件的参数”的勾去掉,修改-PacketSize参数为1024,然后点击确定

(5)勾选testprofile,然后点击确定

 

(6)跟分发作业一样,点击“停止分发代理”,然后点击“启动分发代理”,使设置生效

 


验证

那么我怎么知道究竟当前分发代理是否使用1024Byte大小的包来传送呢?

这时候可以借助Microsoft Process Monitor 3.10这个工具

 

在发布端使用这个工具来监测一下

复制分发代理
复制分发代理是一个可执行文件,它能将快照(对于快照复制和事务复制)和保存在分发数据库表中的事务(对于事务复制)移动到订阅服务器上的目标表中。

若要启动分发代理,请从命令提示符下执行 distrib.exe

 

打开任务管理器,查看分发代理进程的进程ID(PID),然后打开Microsoft Process Monitor 3.10,设置筛选条件

使用process monitor来监控分发代理传输的包大小

 

看一下length,最大的包也不会超过1024,说明设置生效了

 

 未分发命令降下来了

 

注意:

当你的服务器中当前多个数据库是做了复制的,一个数据库只有一个logread进程,多个数据库就对应多个logread进程

分发代理也是,一个数据库可以有多个分发代理,每个分发代理对应他们各自的进程(distrib进程)

所以一定要看清楚,你当前查看的distrib进程是不是你刚才设置的那个分发代理

 


总结

 

这篇文章只是阐述了复制的过程当中出现问题的其中一个原因,当然还有很多原因,例如 发布库的日志文件VLF太多等等。。。

 

在分析的时候一定要多个角度分析,不能死磕一个方面,因为复制涉及到的方面比较多

 

有可能是发布端的问题,有可能是分发端的问题,也有可能是订阅端的问题

 

 

 

如有不对的地方,欢迎大家拍砖o(∩_∩)o 

时间: 2024-09-19 09:11:17

SQLSERVER复制优化之一《减少包大小》的相关文章

SQL SERVER如何改变包大小

自从搭了复制之后以为可以安枕无忧了,谁不知问题接踵而来 这次遇到的问题是丢包,不知道情况的读者可以先看一下我之前写的一篇<SQLSERVER监控复制并使用数据库邮件功能发告警邮件> 因为机房C和机房A不在一个局域网,网络状况不是太好 分发积压的命令经常处于20W+条,复制并没有报错,每次传递的事务都是少于30个,正常来讲SQLSERVER默认每次会传输100个事务 后来测试了一下网络情况 从分发服务器ping一下订阅服务器,ping  4096Byte大小的包,ping100次,因为分发默认传

myrocks复制优化

title: MySQL · myrocks · myrocks复制优化 author: 张远 概述 myrocks依然采用mysql原有的基于binlog的复制方式.目前由于myrocks不支持gap lock, 因此在statement格式的binlog下进行复制,主备可能出现不一致.myrocks建议在复制时设置binlog格式为row. myrocks在rocksdb引擎层为复制做了一些卓有成效的优化,例如skip unique check , read free replication

日常收集整理SqlServer数据库优化经验和注意事项_MsSql

网上关于SQL优化的教程很多,但是比较杂乱.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充. 优化数据库的注意事项: 1.关键字段建立索引. 2.使用存储过程,它使SQL变得更加灵活和高效. 3.备份数据库和清除垃圾数据. 4.SQL语句语法的优化.(可以用Sybase的SQL Expert,可惜我没找到unexpired的序列号) 5.清理删除日志. SQL语句优化的基本原则: 1.使用索引来更快地遍历表. 缺省情况下建立的索引是非群集索引,但有时它并不是最

复制(1)——SQLServer 复制简介

原文:复制(1)--SQLServer 复制简介 前言: SQLServer的复制技术最少从SQLServer2000时代已经出现,当初是为了分布式计算,不是为了高可用.但是到了今天,复制也成为了一种高可用技术,并且被广泛使用.很多问题都通过复制得以解决. 复制组件: 复制说白了就是一种发布/订阅模式,但是这种模式并不容易理解.下面介绍一下复制技术的一些概念.提醒一下,这里的复制在英文中不是COPY,而是Replication.它包含三个组件:发布者.分发者和订阅者.三者缺一不可,并且均以在发布

日常收集整理SqlServer数据库优化经验和注意事项

网上关于SQL优化的教程很多,但是比较杂乱.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充. 优化数据库的注意事项: 1.关键字段建立索引. 2.使用存储过程,它使SQL变得更加灵活和高效. 3.备份数据库和清除垃圾数据. 4.SQL语句语法的优化.(可以用Sybase的SQL Expert,可惜我没找到unexpired的序列号) 5.清理删除日志. SQL语句优化的基本原则: 1.使用索引来更快地遍历表. 缺省情况下建立的索引是非群集索引,但有时它并不是最

mybatis性能优化之减少数据库连接

做性能优化的最重要的功能就是减少数据库的交互,很多程序员一般在开发的时候只考虑简单的实现功能,不管业务简单复杂,只要实现就行. mybatis有个重要的功能就是考虑在联合查询时技巧: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org

SQLServer性能优化之 nolock,大幅提升数据库查询性能

原文:SQLServer性能优化之 nolock,大幅提升数据库查询性能 公司数据库随着时间的增长,数据越来越多,查询速度也越来越慢.进数据库看了一下,几十万调的数据,查询起来确实很费时间. 要提升SQL的查询效能,一般来说大家会以建立索引(index)为第一考虑.其实除了index的建立之外,当我们在下SQL Command时,在语法中加一段WITH (NOLOCK)可以改善在线大量查询的环境中数据集被LOCK的现象藉此改善查询的效能. 不过有一点千万要注意的就是,WITH (NOLOCK)的

ns2-NS仿真中包大小的问题

问题描述 NS仿真中包大小的问题 NS中把packet size设置成1250,但是实际发送的是大小为1020和270的包,在trace中的包大小是1020和270交替出现 解决方案 [转]NS2仿真过程中解决动画仿真节点未定义问题 解决方案二: http://blog.sciencenet.cn/home.php?mod=space&uid=428172&do=blog&id=309836

带你实现开发者头条APP(四)---首页优化(加入design包)

title: 带你实现开发者头条APP(四)---首页优化(加入design包) tags: design,Toolbar,TabLayout,RecyclerView grammar_cjkRuby: true --- 一 .前言 上次模仿开发者头条首页实现了一个版本,给345大神,我的产品经理一看,又被鄙视了一把,说还在用老的技术,于是乎这三天把整个design包研究了一遍,然后把首页的代码几乎重写了一遍....顺便用上了android studio,方便大家导入... 效果图如下: 从gi