MySQL分区表未建导致Rsyslog写入数据失败

2014-11-24 17:56:15 · 作者: · 浏览: 1

当初为了提高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));