20131210mysql-bin.000087这个文件是什么版本的mysql server产生的?
有相应信息吗?

解决方案 »

  1.   

    5.1.30mysql>  select version();
    +------------+
    | version()  |
    +------------+
    | 5.1.30-log | 
    +------------+
    1 row in set (0.00 sec)
      

  2.   

     /usr/local/mysql/bin/mysqlbinlog
    /home/oper/soft/mysql-5.1.30/mysql-5.1.30/client/.libs/mysqlbinlog
    这两个binlog可执行文件,分别绝对路径执行一下, 带参数:20131210mysql-bin.000087的全路径,
    看看是不是都是一样的错。
      

  3.   

    -rw-rw----. 1 mysql mysql  2259611 12月 10 12:29 20131210mysql-bin.000087
    -rw-rw----. 1 mysql mysql      264 12月 10 12:30 20131210mysql-bin.000088
    -rw-rw----. 1 mysql mysql 39436081 12月 10 23:00 20131210mysql-bin.000089
    -rw-r--r--. 1 root  root      1179 12月 11 15:55 87.sql
    -rw-r--r--. 1 root  root      1175 12月 11 13:33 88.sql
    -rw-r-----. 1 root  root  17848651 12月 10 13:54 mysql-bin.000089
    [root@NCBCNMATEST 20131210]# /home/oper/soft/mysql-5.1.30/mysql-5.1.30/client/mysqlbinlog  20131210mysql-bin.000088 > 88.sql
    [root@NCBCNMATEST 20131210]# 是不是因为二进制文件太大?
      

  4.   

    还是一样的错误啊!
    [root@NCBCNMATEST 20131210]#  /usr/local/mysql/bin/mysqlbinlog /root/dailyBackup/20131210/20131210mysql-bin.000087 > 87.sql
    ERROR: Error in Log_event::read_log_event(): 'Sanity check failed', data_len: 66130, event_type: 89
    ERROR: Could not read entry at offset 308: Error in log format or read error.
    [root@NCBCNMATEST 20131210]# /home/oper/soft/mysql-5.1.30/mysql-5.1.30/client/.libs/mysqlbinlog /root/dailyBackup/20131210/20131210mysql-bin.000087 > 87.sql
    ERROR: Error in Log_event::read_log_event(): 'Sanity check failed', data_len: 66130, event_type: 89
    ERROR: Could not read entry at offset 308: Error in log format or read error.
    [root@NCBCNMATEST 20131210]# 
      

  5.   


    是不是数据库存储引擎的问题呢?刚看到chinaunix社区上看到“文档目的:我写这篇文档的目的是为了提高MYSQL数据的备份与恢复的效率,文档内提及的技术基本都是围绕全程不锁表的情况下对INNODB表库进行整库备份、增量备份(无法适用于MYISAM表库)与恢复方法,从而可以达到在不影响业务的情况下进行备份维护”
    而查了一下数据库表
    | is_ac_module | CREATE TABLE `is_ac_module` (
      `module_id` int(11) NOT NULL AUTO_INCREMENT,
      `parent_id` int(11) DEFAULT NULL,
      `plant_id` int(11) NOT NULL,
      `code` varchar(30) DEFAULT NULL,
      `module_name` varchar(50) NOT NULL,
      `view_order` int(11) DEFAULT NULL,
      `is_leaf` varchar(50) DEFAULT NULL,
      `url` varchar(256) DEFAULT NULL,
      `enable` char(1) DEFAULT NULL,
      `re` varchar(256) DEFAULT NULL,
      PRIMARY KEY (`module_id`)
    ENGINE=MyISAM AUTO_INCREMENT=100801 DEFAULT CHARSET=utf8 COMMENT='菜单表'  |  
    是不是这个问题呢?
      

  6.   


    是不是数据库存储引擎的问题呢?刚看到chinaunix社区上看到“文档目的:我写这篇文档的目的是为了提高MYSQL数据的备份与恢复的效率,文档内提及的技术基本都是围绕全程不锁表的情况下对INNODB表库进行整库备份、增量备份(无法适用于MYISAM表库)与恢复方法,从而可以达到在不影响业务的情况下进行备份维护”
    而查了一下数据库表
    | is_ac_module | CREATE TABLE `is_ac_module` (
      `module_id` int(11) NOT NULL AUTO_INCREMENT,
      `parent_id` int(11) DEFAULT NULL,
      `plant_id` int(11) NOT NULL,
      `code` varchar(30) DEFAULT NULL,
      `module_name` varchar(50) NOT NULL,
      `view_order` int(11) DEFAULT NULL,
      `is_leaf` varchar(50) DEFAULT NULL,
      `url` varchar(256) DEFAULT NULL,
      `enable` char(1) DEFAULT NULL,
      `re` varchar(256) DEFAULT NULL,
      PRIMARY KEY (`module_id`)
    ENGINE=MyISAM AUTO_INCREMENT=100801 DEFAULT CHARSET=utf8 COMMENT='菜单表'  |  
    是不是这个问题呢?可以做一些简单的实验来验证是否是因为MyISAM引擎引起的
      

  7.   


    是不是数据库存储引擎的问题呢?刚看到chinaunix社区上看到“文档目的:我写这篇文档的目的是为了提高MYSQL数据的备份与恢复的效率,文档内提及的技术基本都是围绕全程不锁表的情况下对INNODB表库进行整库备份、增量备份(无法适用于MYISAM表库)与恢复方法,从而可以达到在不影响业务的情况下进行备份维护”
    而查了一下数据库表
    | is_ac_module | CREATE TABLE `is_ac_module` (
      `module_id` int(11) NOT NULL AUTO_INCREMENT,
      `parent_id` int(11) DEFAULT NULL,
      `plant_id` int(11) NOT NULL,
      `code` varchar(30) DEFAULT NULL,
      `module_name` varchar(50) NOT NULL,
      `view_order` int(11) DEFAULT NULL,
      `is_leaf` varchar(50) DEFAULT NULL,
      `url` varchar(256) DEFAULT NULL,
      `enable` char(1) DEFAULT NULL,
      `re` varchar(256) DEFAULT NULL,
      PRIMARY KEY (`module_id`)
    ENGINE=MyISAM AUTO_INCREMENT=100801 DEFAULT CHARSET=utf8 COMMENT='菜单表'  |  
    是不是这个问题呢?可以做一些简单的实验来验证是否是因为MyISAM引擎引起的试过了,不是引擎引起的![root@NCBCNMATEST 20131211]# mysqlbinlog 20131211mysql-bin.000091 > 91.sql 
    ERROR: Error in Log_event::read_log_event(): 'Sanity check failed', data_len: 66130, event_type: 73
    ERROR: Could not read entry at offset 970: Error in log format or read error.
    [root@NCBCNMATEST 20131211]# 真的要死了。莫非这真是5.1版本的BUG?
      

  8.   

    也许,真的让你给撞上了
    http://bugs.mysql.com/bug.php?id=43808
    人家5.1.32都有这bug了。
    你要不就升一下级吧。升到5.1.x的最新一个版本。
      

  9.   


    我把源码给找出来了   1073   if (event_len < EVENT_LEN_OFFSET ||
       1074       buf[EVENT_TYPE_OFFSET] >= ENUM_END_EVENT ||
       1075       (uint) event_len != uint4korr(buf+EVENT_LEN_OFFSET))
       1076   {
       1077     *error="Sanity check failed";               // Needed to free buffer
       1078     DBUG_RETURN(NULL); // general sanity check - will fail on a partial read
       1079   }这是我打出来的一些变量值 buf[EVENT_TYPE_OFFSET] is 89, ENUM_END_EVENT is 27, EVENT_TYPE_OFFSET is 4, LOG_EVENT_TYPES is 26现在可以肯定是buf[EVENT_TYPE_OFFSET] >= ENUM_END_EVENT,稍微改了一下,测试还是报错!这个文件是数据库系统文件,也不敢大动干戈!估计是只能升级了!