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

4. 完成数据注入配置,单击下一步。

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

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

参数 | 说明 |
实例类型 | 设置目标实例的实例类型,默认为:云数据库 TDSQL-C MySQL 版。 |
地域 | 选择目标实例的地域。 |
实例 | 选择目标实例所在地域下的目标实例。 |
账号名 | 填写连接的账号名。 说明: 目标账号需具备最高权限。 |
密码 | 填写连接的账号名对应的密码。 |
5. 完成回放设置,单击下一步。

参数 | 说明 |
流量回放范围 | 根据审计日志周期内的时间,选择流量回放的时间范围。支持从首条审计日志开始,到最后一条为止;若中间存在日志缺失,回放时将自动跳过,无需手动处理。请先选择日期范围,再设置具体时间。请确保回放开始时间段到结束时间段,数据库审计一直开启。 |
源实例慢 SQL 阈值 | 源实例为 TDSQL-C MySQL 版时,系统会自动获取源实例的慢 SQL 阈值。 源实例为外部实例时,无源实例慢 SQL 阈值。 |
目标实例慢 SQL 阈值 | 设置目标实例慢 SQL 阈值,您可以自定义设置,单位:毫秒,此处的设置将影响报告中慢 SQL 的统计范围。 |
任务启动时间 | 立即执行:创建后立即执行。 定时执行:请设置未来某个时间点自动触发任务执行,建议安排在业务低峰期。 |
6. 完成预检查,单击确定。

预检查由系统自动执行,您可等待系统执行完成后对应操作。
实例来源为 TDSQL-C MySQL 版时,系统会对源实例及目标实例进行检查。
检查项 | 检查内容 | 失败时处理建议 |
源实例可用性检查 | 源实例是否在运行状态 源实例 IP 端口是否可访问 | 确认实例状态正常 |
源实例审计开启状态检查 | 源实例的是否开启全审计/规则审计 在指定时间范围内能否找到审计日志 | 确认审计已开启且日志未过期 |
目标实例可用性检查 | 目标实例是否构建成功且状态为运行中 目标实例 IP 端口是否可访问 目标 Serverless 实例是否开启自动暂停,若开启,则无法通过预检查 | 确认实例状态正常,确定 Serverless 实例已关闭自动暂停 |
目标实例任务冲突检查 | 目标实例是否存在其他冲突任务 | 建议先完成其他冲突任务后再重试 |
目标账号有效性检查 | 目标账号能否正确登录 目标账号是否有效 | 检查连接账号密码是否正确 检查连接账号是否已创建 |
目标账号权限检查 | 目标账号是否具有最高权限(可执行全库读写) | 换用更高权限账号或对当前账号授予权限 |
实例来源为外部实例时,系统会对外部审计日志进行日志字段的检查。
说明:
对于必须字段,任意一个缺失即阻断回放。
对于可选字段,缺失不影响回放结果,缺失不阻断流程。若缺失可选字段给出了警告,可以忽略并继续。
必须字段的字段名 | 说明 |
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:查看任务执行状态
流量回放任务创建完成后,您在任务列表单击任务 ID 进入任务详情页。在任务详情页中,您可了解到任务的完成进度、任务启动时间、持续时间等。
步骤3:查看回放报告
流量回放任务执行完成后,您可在任务详情页查看回放报告,可以分别查看到报告总览、性能趋势对比、异常报告三个板块。
报告总览页,为您提供整体结论性的数据,包括参数项对比、性能数据对比等。

性能趋势对比页,为您展示源实例和目标实例关于性能的指标对比。

异常报告页,为您展示在目标实例上执行失败的 SQL,支持下载异常报告。
