录制回放工具
可获得性
本特性自openGauss 6.0.0版本开始引入。
特性简介
录制回放工具用于将源端数据库的业务SQL流量快速镜像至目标端数据库。
客户价值
通过使用录制回放工具,可将源端数据库流量快速镜像至openGauss数据库,实现对openGauss数据库的流量压测和业务兼容性检查。
特性描述
录制回放工具的录制功能,可以监控源库的业务网口,采集源库的网络流量,生成网络数据包文件;录制回放工具的解析功能,可以基于网络数据包文件解析出源库的业务SQL信息(包括SQL语句以及事务顺序、并发和SQL耗时等);录制回放工具的回放功能,可以将解析出的SQL语句镜像回放到目标端数据库,保持事务顺序和并发度与源端一致,对于查询语句,回放功能还支持以N倍的源端并发度进行回放,以实现对目标库的N倍并发查询压力测试。
特性增强
- 录制功能当前支持的数据库产品有MySQL和openGauss,支持向openGauss系数据库进行回放。
- 录制方式有tcpdump和attach,前者通过采集网络流量并解析获取SQL,后者通过对JDBC接口进行动态插桩获取SQL,对MySQL,还支持general录制方式,即通过查询MySQL系统表mysql.general_log获取SQL。
- 回放功能支持串行回放和并行回放,串行回放时可保持SQL执行顺序与源库一致,并行回放时支持SQL执行顺序、并发度与源库一致。
- 回放时支持业务SQL间保持和源端一致的执行时间间隔。
- 对于查询语句,解析时支持解析源端的查询结果集,回放时支持对比源端和目标端的查询结果集差异。
- 支持录制、解析、回放同时启动,实现边录制,边解析,边回放的流式处理功能。
- 回放时支持输出执行失败的SQL,执行过慢的SQL及其在目标库的执行计划,支持对比SQL在源库和目标库的执行耗时,并输出对比报告。
特性约束
- tcpdump录制时,需将工具部署在源数据库所在的服务器,且只有root用户或sudo提权用户才能使用该功能。
- tcpdump录制时,源数据库客户端需禁用ssl。
- 通过解析网络数据包的方式获取SQL时,只能获取录制开始后新建的数据库会话执行的业务SQL。
- attach方式录制时,只支持对JDBC单线程的java应用程序进行动态插桩,且版本要求为java11及以上。
- 录制方式为attach或general方式时,回放功能不支持对比查询结果集,不支持并行回放,不支持保持与源库一致的时间间隔。
依赖关系
tcpdump方式录制时,依赖于tcpdump工具。
参考文档
开源社区地址:transcribe-replay-tool
详细参考文档: README.md
意见反馈