本文为您介绍使用流量回放功能中的常见问题。
预检查失败怎么办?
在预检查页面中,系统会给与对应的提示,您可查看具体失败项,根据系统提示的处理建议进行修复,修复后您可单击重新检查。
通常情况下,预检查会由于:源实例数据库审计未开启、账号权限不足(需高权限账号)、安全组未放开端口、目标实例未准备好等原因而失败,建议提前满足以上条件,避免预检查失败。
外部日志预检查字段缺失系统会怎么处理?
如果实例来源您选择的是外部实例,则系统会对审计日志的字段进行检查,对于必须的字段:timestamp、nsTime、thread_id、execTime、errCode、dbName、sql,任意缺失均会阻断回放,您需要重新导出包含完整字段的审计日志,再重新进行预检查,对于可选字段缺失,系统会给出警告,但不阻断回放流程,您可以忽略,然后继续进行下一步。
运行失败了怎么办?
回放需要多久?
通常情况下,1小时的生产流量,回放时间约1到1.5小时,具体请以实际时间为准。
回放任务可以在中途终止?
可以,您可以在任务详情页单击终止来实现。运行中终止会产生部分报告,资源会自动回收,被终止的任务无法重启。
保存为草稿的任务在哪里找?
您可在任务列表页查看,状态为配置中的任务即为草稿,单击修改可继续编辑。
外部日志来源为什么看不到慢 SQL 对比?
慢 SQL 的源实例阈值数据只有在源实例为 TDSQL-C MySQL 版时才能自动获取展示。外部日志来源无法提供源实例慢 SQL 阈值,但仍可通过目标实例的慢 SQL 阈值统计目标端的慢 SQL 数量。
常见错误码有哪些?
错误码 | 说明 |
1000 ~ 1099:通用查询 / 连接相关错误 | |
1030 | 磁盘空间不足、表损坏 |
1031 | 存储引擎不兼容操作 |
1033 | frm 文件损坏或存储引擎问题 |
1037、1038、1041 | 内存不足 |
1040 | 连接数超出数据库 / 服务的阈值 |
1047 | 未识别的操作 |
1048 | 字段为非空(NOT NULL),但插入 / 更新时未提供值 |
1055 | 与1140同源,是 ONLY_FULL_GROUP_BY 模式下的严格校验:SELECT 中的非聚合列未在 GROUP BY 中,且该列与分组列无函数依赖 |
1100 ~ 1199:表 / 索引操作相关错误 | |
1109 | 引用的表别名不存在(SQL 中使用了未定义的表别名) |
1115 | 字段兼容性问题(一般和 MySQL 版本有关) |
1136 | INSERT 语句中指定的字段数量与实际传入的值数量不匹配 |
1140 | MySQL 开启了 ONLY_FULL_GROUP_BY 模式(默认开启),SELECT 中同时包含聚合函数(MIN/MAX/COUNT 等)和非聚合列,且未用 GROUP BY 分组非聚合列;(sql_mode 相关) |
1193 | 未知系统变量 |
1200 ~ 1299:事务 / 锁相关错误 | |
1227 | 权限不足,无法执行当前操作 |
1248 | 所有表都必须有别名(多表查询 / 删除时未给表指定别名) |
1264 | 数值超出字段范围(数值类型字段存储超上限 / 下限) |
1265 | 数据截断(插入的数值 / 字符串超出字段定义长度或格式不匹配) |
1267 | 字符集排序规则不匹配 |
1292 | 列数据类型不兼容,sql_mode 严格模式 |
1300 ~ 1399:数据格式 / 值相关错误 | |
1305 | 引用了一个不存在的对象(表、字段、存储过程、函数、触发器等) |
1364 | 字段有默认值约束,但未设置默认值(或默认值表达式无效), 一般是 sql_mode 严格模式触发 |
1366 | 字符串编码不兼容(字段字符集不支持插入的字符) |
其他错误码 | |
1406 | 字符串长度超出字段限制(字段存储不下插入的字符串) |
1525 | 时间字段格式问题(sql_mode 问题或者 MySQL 版本问题) |
3024 | SQL 执行时间超时,一般设置了 /+ MAX_EXECUTION_TIME(100) / HINT |
3065 | 使用 DISTINCT 去重时,ORDER BY 引用的列未包含在 SELECT 列表中(MySQL 严格模式下不允许) |
3141 | JSON 格式错误(插入 / 更新的 JSON 数据格式无效) |
8501 | 连接 / 驱动错误 |