录制回放工具

可获得性

本特性自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

意见反馈
编组 3备份
    openGauss 2025-04-24 09:27:24
    取消