💡
原文英文,约1200词,阅读约需5分钟。
📝
内容提要
ProxySQL的查询重写引擎是一个非常有用的功能,用于分片和临时应用程序修复。最近,一个客户遇到了一个由Perl DBI库引起的问题,导致pt-archiver无法归档包含位列作为主键的表中的行。修复这个问题并不容易,因为它涉及到Perl如何处理位数据类型。
🎯
关键要点
-
ProxySQL的查询重写引擎是一个用于分片和临时应用程序修复的有用功能。
-
客户遇到的问题是pt-archiver无法归档包含位列作为主键的表中的行。
-
问题的根源在于Perl DBI库如何处理位数据类型。
-
Perl尝试将空字符串引号而不是位表示的0,导致工具失败。
-
通过简单的CAST操作可以解决此边缘案例,但MySQL版本不支持重写DML查询。
-
ProxySQL的查询重写引擎被用来解决这个紧急问题。
-
在本地安装ProxySQL并设置单个后端服务器以进行测试。
-
通过添加查询重写规则,将位列转换为无符号整数以解决问题。
-
重新运行pt-archiver通过ProxySQL成功清理了表。
-
虽然这不是长期解决方案,但展示了使用ProxySQL修复应用程序的实际案例。
➡️