我有一个主从和奴隶,并让奴隶停止使用下面的错误日志在从。我想修复这个问题,把这两个服务器同步起来,然后再运行。
111128 8:42:24 [Note] Slave I/O thread: connected to master 'repl@masterIP:3306', replication started in log 'mysql-bin.000006' at position 169
111128 15:46:50 [ERROR] Slave: Query caused different errors on master and slave. Error on master: 'Deadlock found when trying to get lock; try restarting transaction' (1213), Error on slave: 'no error' (0). Default database: 'Dbase'. Query: 'insert into archieved(eid,at,rtime,scode) select id,at,avg(rtime),scode from tstatus where date(at)="2011-10-29" group by id', Error_code: 0 111128 15:46:50 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-bin.000006' position 1277768我不知道如何做以下几件事:
try restarting transaction' (1213)注意:我在从、IO运行和sql sql中获得了以下内容。我只希望重新合并,并在将来避免这种情况.
Slave_IO_State: Waiting for master to send event
Master_Host: masterIp
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000006
Read_Master_Log_Pos: 3156089
Relay_Log_File: mysql-relay-bin.000002
Relay_Log_Pos: 1277834
Relay_Master_Log_File: mysql-bin.000006
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB: 谢谢。
发布于 2011-11-29 05:53:00
您必须从应用程序重新启动事务,mysql已经忘记了。
当Mysql遇到死锁时,它将选择一个“胜利者”并让该线程继续执行,另一个线程将执行回滚,释放它的锁并获得“尝试重新启动事务”-error。
您的应用程序应该尝试检测这一点并再次尝试相同的查询。希望你不会再陷入僵局了。
至于您的奴隶,我以前没有见过这个错误,这有点让人困惑,我认为对失败的主程序的查询永远不会写入bin日志,因此不会出现“主从不同的错误”。
无论哪种方式。要解决这个问题,您需要运行
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1; START SLAVE; 这将忽略bin日志中的第一条语句,然后重新启动服务器。不管该语句是什么,它都不会在从服务器上运行,因此您必须手动确保表在主表和从表之后是相同的。
祝好运。
https://stackoverflow.com/questions/8306377
复制相似问题