TRAFFIC REPLAY
TiDB v9.0.0 引入了 TRAFFIC REPLAY 语法,用于向集群中所有 TiProxy 实例发送请求,让 TiProxy 从流量文件回放流量到 TiDB。
回放流量需要当前用户具有 SUPER 或 TRAFFIC_REPLAY_ADMIN 权限。
TRAFFIC REPLAY 支持以下选项:
USER:(必填)指定回放时使用的 TiDB 用户名。PASSWORD:(可选)指定以上用户名的密码,默认为空字符串""。SPEED:(可选)指定回放速率的倍数,范围为[0.1, 10],默认为1,表示原速回放。READ_ONLY:(可选)指定是否仅回放只读 SQL 语句。true表示仅回放只读 SQL 语句,false表示回放只读和写入 SQL 语句。默认值为false。
语法图
- TrafficStmt
- TrafficReplayOptList
- TrafficReplayOpt
TrafficStmt ::=
"TRAFFIC" "REPLAY" "FROM" stringLit TrafficReplayOptList
TrafficReplayOptList ::=
TrafficReplayOpt
| TrafficReplayOptList TrafficReplayOpt
TrafficReplayOpt ::=
"USER" EqOpt stringLit
| "PASSWORD" EqOpt stringLit
| "SPEED" EqOpt NumLiteral
| "READ_ONLY" EqOpt Boolean
示例
从 TiProxy 实例的本地 /tmp/traffic 目录回放流量,使用 TiDB 用户 u1 回放,其密码为 "123456":
TRAFFIC REPLAY FROM "/tmp/traffic" USER="u1" PASSWORD="123456";
从存放在 S3 的流量文件回放流量:
TRAFFIC REPLAY FROM "s3://external/traffic?access-key=${access-key}&secret-access-key=${secret-access-key}" USER="u1" PASSWORD="123456";
2 倍速回放流量:
TRAFFIC REPLAY FROM "/tmp/traffic" USER="u1" PASSWORD="123456" SPEED=2;
仅回放只读语句,不回放写入语句:
TRAFFIC REPLAY FROM "/tmp/traffic" USER="u1" PASSWORD="123456" READONLY=true;
MySQL 兼容性
该语句是 TiDB 对 MySQL 语法的扩展。