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


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

相关内容