暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

openGauss新特性 | 录制回放功能增强特性说明

openGauss 2025-05-13
195

1、流式回放功能

录制、解析、回放三个进程同时启动,实现边录制边解析边回放。

1:该流式处理功能不影响原有的录制、解析、回放三个进程顺序执行的结果,原有操作方式仍可使用

2:为了防止录制端进程异常终止导致解析端和回放端进程残留的问题,工具提供了参数parse.max.timereplay.max.time配置解析端和回放端的最大工作时长,达到该阈值则进程自动终止,默认值为0,进程等待直到收到endFile文件。

3:在配置了parse.max.time0时,且时间达到该阈值后一直未检测到endFile标识,假如共收到npcap包,则进程退出时仅解析前n-1个文件,最后一个文件不解析,回放端参数replay.max.time同理

4考虑到json模式下发送到解析端的tcpdump文件量过大会导致磁盘占用率高,影响回放性能,提供了参数tcpdump.file.drop控制在解析过程中是否每解析完一个tcpdump文件就立刻删除,默认false

2、回放结果对比

将回放端的select语句查询结果与源端查询结果进行对比,并将对比结果写到data_diff.log日志文件里,该功能可通过参数控制是否开启。操作步骤如下:

step1.解析端配置参数:

//是否解析select语句查询结果,该功能用于对比录制端和回放端的查询结果

parse.select.result=true

//select语句查询结果保存文件路径

select.result.path=/***/***/***

//select语句查询结果保存文件名称

result.file.name=select-result

//select语句查询结果保存文件大小

result.file.size=10

step2.回放端配置参数:

 //是否将回放端和录制端的select查询结果对比

 compare.select.result=true

 //select语句查询结果保存文件路径

 Select.result.path=/***/***/***

 //select语句查询结果保存文件名称

 Result.file.name=select-result

step3.开启进程进行解析回放

1:开启对比功能则会将源端所有select语句查询结果保存到磁盘,因此开启该功能应预留足够的磁盘空间
2:由于该功能是将源端
select
语句的响应包直接解析,回放端是通过调
jdbc
将查询结果进行了转化,二进制类型
blob

longblob

mediumblob

tinyblob

raw
通过
jdbc
的转化,与直接解析响应包得到的数据格式不相同,因此这几种类型的数据对比结果与源端不一致,这是对比功能的局限性,实际数据库里存的值是一致的,对业务无影响

3、时间间隔一致

回放端相邻sql的回放时间间隔与源端保持一致,该功能可通过参数控制是否开启

前置条件:开启参数source.time.interval.replay=true,然后进行回放。


1
:源端和回放端执行
sql
耗时存在一定差异,为了避免相邻
sql
之间的数据依赖关系影响回放结果,在回放间隔基本一致的条件下,还需确保所有
sql
按顺序串行执行,因此两个相邻
sql
回放时间间隔跟源端可能存在差异,但差异是毫秒级别的,可以忽略,但在业务量较少的场景下,时间间隔可以达到一致

文章转载自openGauss,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论