MailScanner中MySql数据库达到4G后的处理办法

背景:
采用RHEL4+MailScanner作为邮件网关,每日各地邮件和大约100万封,1.5万账户,日均活跃1万以上,通常客户端每3分钟收取一次邮件。
现象:
邮件网关web页面(MailWatch)的统计及查询功能突然失效,无法显示有效数据:

image

原因:
在“辅助工具”的“mysql数据库状态”中可以看出,其中的Max_data_length(表最大值)值为4294967295,Data_length(当前值)值也为4294967295。
说明单个库空间已经达到最大值(缺省4G),导致无法写入。但邮件收发正常,邮件日志也可以在maillog中查到。
 
解决办法:
对该限制进行修改:
mysql> show table status like ‘maillog’ G
*************************** 1. row ***************************
           Name: maillog
         Engine: MyISAM
        Version: 9
     Row_format: Dynamic
           Rows: 3151124
Avg_row_length: 1398
    Data_length: 4294967295
Max_data_length: 4294967295
   Index_length: 211324928
      Data_free: 0
Auto_increment: NULL
    Create_time: 2006-12-23 12:53:29
    Update_time: 2006-12-25 09:05:09
     Check_time: 2006-12-23 12:56:35
      Collation: latin1_swedish_ci
       Checksum: NULL
Create_options: max_rows=1000000000
        Comment:
1 row in set (0.00 sec)
mysql> alter table maillog max_rows = 1000000000 ;
Query OK, 926859 rows affected (48.45 sec)
Records: 926859  Duplicates: 0  Warnings: 0
 
mysql> show table status like ‘maillog’ G
*************************** 1. row ***************************
           Name: maillog
         Engine: MyISAM
        Version: 9
     Row_format: Dynamic
           Rows: 926960
Avg_row_length: 1351
    Data_length: 4294967295
Max_data_length: 281474976710655

   Index_length: 66923520
      Data_free: 0
Auto_increment: NULL
    Create_time: 2006-12-25 09:07:43
    Update_time: 2006-12-25 09:09:25
     Check_time: 2006-12-25 09:08:30
      Collation: latin1_swedish_ci
       Checksum: NULL
Create_options: max_rows=1000000000
        Comment:
1 row in set (0.00 sec)

即时生效。统计查询功能恢复正常。
 
 
 
 
参考:

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注