阿里RDS一次数据异常的定位过程

系统有部分数据放在阿里的RDS上,今天发现某些数据查询不出来

先检查RDS的日志,可以看到当时的insert语句,但是select就查不到,所以一开始怀疑是RDS的数据丢失。后来用mysqlbinlog命令检查binlog文件,才发现真正的原因

原来是insert的字段有33位,而该字段的类型是varchar(32)。但是RDS截去了最后一位,然后写入数据库。所以用33位的条件去select,就查不到

关键是RDS的sql审计,记录的是链路上的语句,这时候还是33位的,所以看不出异常来;而binlog记录的,才是真正写入的数据,这时候是32位的

你可能感兴趣的:(阿里RDS一次数据异常的定位过程)