查了一下昨天的记录数量:select count(*) from tbl where time > '2009-08-19 00:00:00' and time < '2009-08-20 00:00:00';结果从服务器比主服务器少了3508条记录,有没有什么方法找出症结呢?
现在也就能确定昨天一天的记录存放在哪个bin-log里!

解决方案 »

  1.   

    我找到主库有而从库没有的数据,在binlog中确实没查到!
    mysqld.log日志中也没有记录到底发生了什么!
      

  2.   

    主库上的binlog有那些数据吗?
    看看slave上是否有什么出错日志没有?
    如果确定知道master上对应的数据日志还存在且日志位置情况,则可以把slave上对应的数据删除掉,然后用CHANGE MASTER TO重新同步下看看是否有问题吧
      

  3.   


    不对,binlog上有这些数据!
      

  4.   

    主库上的binlog有这些数据!我是分别将两个库里的数据导出成文件,然后用linux的diff命令比较,找出不同的数据,在binlog中发现了相应的对应的插入操作!
    但从库中没有这条记录!
      

  5.   

    我在binlog中确实找到了那条insert语句:
    该语句及其附近的信息如下:# at 812168928
    #090819 14:03:14 server id 1  end_log_pos 812169541     Query   thread_id=818249        exec_time=0     error_code=0
    SET TIMESTAMP=1250661794/*!*/;
    INSERT INTO E_info( ... )/*!*/;
    # at 812169541不知道这上下两个 #at 后边的数字指的是不是这条insert into语句的pos?
      

  6.   

    INSERT INTO E_info( ... )/*!*/; 
    这条语句的pos为开始为812168928,结束为812169541
      

  7.   


    按照这个方法测试了几个,将master_log_file和master_log_pos移到缺失的sql语句后,在重新执行,语句被成功执行,相应的记录成功插入了!