MySQL分区表未建导致Rsyslog写入数据失败
程序员文章站
2024-02-13 16:05:28
...
当初为了提高Rsyslog + MySQL + LogAnalyzer这一套系统的性能,给MySQL做了分区表,结果发现并不能根本上解决问题。可行的解决方
当初为了提高Rsyslog + MySQL + LogAnalyzer这一套系统的性能,给MySQL做了分区表,结果发现并不能根本上解决问题。可行的解决方案可能是和暴风的做法一样:一日一表。
今天上午发现系统记录异常,在LogAnalyzer里面发现最晚一条记录是昨晚零点左右的。由于日志是分别记在MySQL和文件里面的,查看文件发现日志记录正常。在完全没有头绪的情况下,决定使用Rsyslog官方介绍的方法启动Rsyslog的Debug模式:
1. 暂停Rsyslog服务
2. /sbin/rsyslogd -c3 -dn > r.log
3. tail -f r.log
在日志里面发现MySQL没有为今天创建分区,导致数据插入失败,重新创建分区,问题解决。
创建分区相关SQL:
查看到某一天的天数:
select to_days(20110331);
+-------------------+
| to_days(20110331) |
+-------------------+
| 734592 |
+-------------------+
1 row in set (0.00 sec)
创建分区:
alter table SystemEvents add partition (partition p20110331 values less than (734592));
,