SQLServer数据库之SQLSERVER复制优化之一《改变包大小》
小标 2019-01-16 来源 : 阅读 1371 评论 0

摘要:本文主要向大家介绍了SQLServer数据库之SQLSERVER复制优化之一《改变包大小》,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助。

本文主要向大家介绍了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进程是不是你刚才设置的那个分发代理

本文由职坐标整理并发布,希望对同学们学习SQL Server有所帮助,更多内容请关注职坐标数据库SQL Server数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程