,
,最近线上数据莫名的丢数据,故进行sql定位,定位线上数据为何丢失,最后定位到具体某开发程序。
,审计日志:记录数据库所有信息,故会有巨大的日志,而且参数设置审计日志大小,会进行审计日志轮换分割。
1。基于审计日志这个特点,业务提出问题后,要及时发现问题解决问题。
线上业务日志为512米一个日志,共10个。大约能记录8个小时左右的数据库访问信息。
2。binlog: binlog是记录mysql数据库变化的信息,记录增删改等信息。
结合以上两点:可以binlog定位问题sql,通过审计日志定位操作DB的IP,用户从而定位到具体某人。
(如果每个开发有单独的数据库操作用户/权限,定位会更加准确)
比如业务给一个字段id=11223344记录被删除。
日志量小的时候,可通过审计日志直接定位。日质量大的时候可能比较困难定位。
实验:
- <李>
通过binlog分析:
李>- <李>
确定当前binlog
显示主状态;
+ - - - - - - - - - - - - - - - - - - +
|文件,,,,,,|
+ - - - - - - - - - - - - - - - - - - +
| mysql-bin。000023 |
+ - - - - - - - - - - - - - - - - - - +
李>
2。审计日志分析
通过两部分日志定位用户,IP、表、sql等等信息。