MySQL运维实战之ProxySQL(9.8)SQL镜像
使用proxysql的镜像(mirror)功能,可以将SQL发送到一个额外的后端实例执行。
还可以将发送到镜像的SQL进行改写,以测试修改后的SQL是否能正常执行。
通过mirror_flagOut字段,可以将多条规则串联起来,实现这样的需求:不修改原始的SQL,只修改镜像后的SQL,这样可以在不影响当前业务的情况下,测试SQL改写的效果。
delete from mysql_query_rules; -- 执行SQL,同时将SQL mirror一份 insert into mysql_query_rules (rule_id, username, match_pattern, destination_hostgroup, mirror_flagOut, active, apply, comment ) values (20, 'user1', '^SELECT', 100, 1001, 1, 1, 'mirror'); -- 对于mirror的SQL,增加注释,发送到hostgroup 101执行 insert into mysql_query_rules (rule_id, username, flagIn, match_pattern, destination_hostgroup, replace_pattern, active, apply, comment ) values (21, 'user1', 1001, '^SELECT', 101, 'select /*+ mirrored */', 1, 1, 'mirror sql modified'); load mysql query rules to runtime;