一些相关的my.cnf设置:
binlog-format=ROW
init_connect='SET autocommit=1'
autocommit=1
innodb_flush_log_at_trx_commit=1
我还有一个正在运行的复制......现在,大多数情况下运行得相当好。
但有时我确实得到了这个:
Could not execute Delete_rows/Update_rows event on table auto.parcels_to_cache; Can't find record in 'parcels_to_cache'.
这是因为:
mysql-bin.000021.decoded-26373095-### DELETE FROM auto.parcels_to_cache
mysql-bin.000021.decoded-26373096-### WHERE
mysql-bin.000021.decoded-26373097-### @1='0101'
mysql-bin.000021.decoded-26373098-### @2='2013:01:05'
mysql-bin.000021.decoded:26373099:### @3='01014700669249'
--
mysql-bin.000022.decoded-4143326-### INSERT INTO auto.parcels_to_cache
mysql-bin.000022.decoded-4143327-### SET
mysql-bin.000022.decoded-4143328-### @1='0101'
mysql-bin.000022.decoded-4143329-### @2='2013:01:05'
mysql-bin.000022.decoded:4143330:### @3='01014700669249'
这是来自主服务器的解码二进制日志。复制服务器反映了这一点。
此外,这似乎只发生在InnoDB表上。但不总是。虽然我认为复制的MyISAM问题与另一个问题有关。
我最近记录了所有来源,以删除我在那里删除所有这些事务的少数交易。所以没有开始,没有提交,没有回滚......然后我添加到mysql数据库类中以便总是关闭提交。
这是因为我在MySQL网站上看到了交易问题和可交易和非交易表。
例如,这个auto.parcels_to_lifecycle表被大量使用,有时可能会被20个线程同时访问。因此InnoDB。否则每个线程将等待只有1个线程正在更新...
任何人都知道在INSERT问题之前如何修复此DELETE?或者也许某种方法来解决问题并解决它?
谢谢!