本文为您介绍通过控制台执行一次完整的流量回放任务的步骤和说明。
前提条件
1. 准备好源实例
执行流量回放任务之前,需要确保已存在源实例(来源可以是云数据库 MySQL,或者其他第三方云)。详细说明如下:
云数据库 MySQL:需确认对应源实例已开启数据库审计功能且实例下的审计日志能覆盖进行流量回放的时间段。如何开启数据库审计,请参见 开通审计服务。
其他第三方云:需确认从第三方云导出的审计日志文件(CSV、JSON 或压缩包-tgz),包含必需的字段:timestamp、nsTime、thread_id、execTime、errCode、dbName、sql。
2. 准备好目标实例
您需要构建目标实例,用于无风险地进行模拟测试,详细说明如下:
克隆时间点需尽可能和回放开始时间接近,以保证目标实例回放时间段内库表存在。
需要记录连接的账号和密码(推荐使用 root 账号,需有全库读写权限)。
操作步骤
步骤1:新建回放任务
1. 登录 云数据库 MySQL。
2. 在左侧导航栏选择流量回放。
3. 在跳转页面中,单击新建回放任务。
说明:
您也可以在实例管理页 > 流量回档下单击新建流量回放,进入新建回放任务的配置页面。通过此方式进入配置页面时,目标实例会自动匹配当前实例,此场景不可更换目标实例。

如果当前实例并不是首次发起流量回放,则可单击+进入配置页面。


4. 完成基础设置,单击下一步。

参数 | 说明 |
任务名称 | 输入任务名称。仅支持数字,英文大小写字母、中文以及特殊字符-_./()[]()+=::@ 且长度不能超过60。 |
实例来源 | 选择实例来源: 腾讯云实例 外部实例 |
实例来源为腾讯云实例时,需要设置下列参数:
参数 | 说明 |
实例类型 | 默认为:云数据库 MySQL。 |
地域 | 选择源实例的地域。 |
源实例 | 选择源实例所在地域下的实例。 仅支持选择开启了全审计/规则审计的实例,建议开启全审计。请确保回放开始时间段到结束时间段,数据库审计一直开启。 |
数据清洗 | 默认开启。支持清洗和过滤日志中的残缺、错误、敏感或冗余数据,并对审计日志进行排序,确保流量回放准确。 |
实例来源为外部实例时,需要设置下列参数:
说明:
外部实例进行流量回放依赖实例的审计日志文件,且需要提前存储在对象存储 COS,操作账号需要具有 CDB_QCSLinkedRoleInAuditReplayForCos(用于授权云数据库 MySQL 访问 COS 云服务资源获取流量回放源文件)的权限,若是首次操作且未授权,请单击去授权,跳转至访问管理平台单击同意授权。

参数 | 说明 |
日志文件 | 当具备 CDB_QCSLinkedRoleInAuditReplayForCos 权限后,您可选择外部实例回放地域,这里是指 COS 桶所在地域,然后单击选择 COS 文件,选择 COS 桶下的审计日志文件。 |
数据清洗 | 默认开启。支持清洗和过滤日志中的残缺、错误、敏感或冗余数据,并对审计日志进行排序,确保流量回放准确。 |
实例来源设置完成后,您可进行目标实例的配置:

参数 | 说明 |
实例类型 | 设置目标实例的实例类型,默认为:云数据库 MySQL。 |
实例来源 | 默认为指定已有实例(已有的云数据库 MySQL 实例)。 |
账号名 | 填写连接的账号名。 说明: 目标账号需具备最高权限。 |
密码 | 填写连接的账号名对应的密码。 |
5. 完成回放设置,单击下一步。

参数 | 说明 |
录制时间 | 根据审计日志周期内的时间,选择流量回放的时间范围(跨度不超过24小时)。支持从首条审计日志开始,到最后一条为止;若中间存在日志缺失,回放时将自动跳过,无需手动处理。请先选择日期范围,再设置具体时间。请确保回放开始时间段到结束时间段,数据库审计一直开启。 |
回放模式 | 设置回放模式。 全量回放。若目标实例为只读实例,则不支持选择全量回放。 只读模式(仅 Select)。 |
启动时间 | 立即执行:创建后立即执行。 定时执行:请设置未来某个时间点自动触发任务执行,建议安排在业务低峰期。 |
源实例慢 SQL 阈值 | 设置源实例慢 SQL 阈值,默认为1000ms。 |
目标实例慢 SQL 阈值 | 设置目标实例慢 SQL 阈值,默认为1000ms。 |
6. 完成预检查,单击确定。
预检查由系统自动执行,您可等待系统执行完成后对应操作。
实例来源为云数据库 MySQL 时,系统会对源实例及目标实例进行检查。
检查项 | 检查内容 | 失败时处理建议 |
源实例运行状态检查 | 源实例是否在运行状态 | 确认实例状态正常 |
源实例类型支持检查 | 源实例类型是否支持此功能 | 请更换支持的实例类型 |
实例架构支持检查 | 源实例架构是否支持此功能 | 请更换本地盘实例(非只读分析引擎)执行 |
审计开通状态检查 | 源实例的是否开启全审计/规则审计 | 确认审计已开启 |
源实例审计日志存在性检查 | 在指定时间范围内能否找到审计日志 | 确认审计日志未过期 |
目标实例运行状态检查 | 目标实例是否在运行状态 | 确认实例状态正常 |
目标实例类型支持检查 | 目标实例类型是否支持此功能 | 请更换支持的实例类型 |
目标实例账号有效性检查 | 目标账号能否正确登录 目标账号是否有效 | 检查连接账号密码是否正确 检查连接账号是否已创建 |
目标实例账号权限检查 | 目标账号是否具有最高权限(可执行全库读写) | 换用更高权限账号或对当前账号授予权限 |
目标实例回放互斥检查 | 目标实例是否存在其他冲突任务 | 建议先完成其他冲突任务后再重试 |
实例来源为外部实例时,系统会对外部审计日志进行日志字段的检查。
说明:
对于必须字段,任意一个缺失即阻断回放。
对于可选字段,缺失不影响回放结果,缺失不阻断流程。若缺失可选字段给出了警告,可以忽略并继续。
必须字段的字段名 | 说明 |
timestamp | SQL 执行时间戳(微秒) |
nsTime | SQL 执行时间戳(微秒,用于精确排序) |
threadId | 线程 ID,事务关联依据 |
execTime | SQL 执行耗时(微秒) |
errCode | 原始执行错误码 |
dbName | SQL 所在数据库名 |
sql | 完整 SQL 语句 |
可选字段的字段名 | 说明 |
checkRows | 扫描行数,反映索引使用效率 |
affectRows | 影响行数,反映 DML 操作范围 |
sentRows | 返回行数,反映结果集大小 |
lockWaitTime | 锁等待时间(微秒),反映锁竞争情况 |
cpuTime | CPU 执行时间(纳秒) |
ioWaitTime | IO 等待时间(微秒) |
trxLivingTime | 事务持续时间(微秒) |
sqlType | SQL 操作类型(SELECT INSERT UPDATE 等) |
检查结果状态及说明
状态 | 含义 | 处理方式 |
通过 | 该项检查正常 | 无需操作 |
缺失,但可忽略 | 可选字段缺失,不影响回放 | 可直接继续 |
不通过 | 存在阻断性问题 | 按处理建议修复,修复后单击重新检查 |
7. 预检查全部通过后,流量回放任务即可进入执行队列。
步骤2:查看任务执行状态
流量回放任务创建完成后,您在流量回放页面了解到任务的完成进度、流量回放开始时间、持续时间等,可对同一条任务再次发起流量回放,也可删除回放任务。
步骤3:查看回放报告
流量回放任务执行完成后,您可在流量回放页面查看对应回放任务的回放报告(任务异常中断、未正常结束,均无法生成报告),可以分别查看到报告总览、性能趋势对比、异常报告三个板块。