Di seguito riporto gli errori riscontrati su un MySQL 5.0 in configurazione Master e Slave.
Primo Caso : la replica si blocca perchè sullo slave, cade SQL Thread.
Primo Caso : la replica si blocca perchè sullo slave, cade SQL Thread.
Secondo Caso : la replica si blocca perchè sullo slave, cade IO Thread.
Iniziamo dal secondo caso, a seguito di una LOAD sul Master di un file.csv, la replica è caduta con il seguente errore :
131011 12:56:56 [Note] Slave I/O thread: connected to master 'user@server:3306', replication started 'server-bin.002981' at position 445451409
131011 12:56:56 [ERROR] Error reading packet from server: error reading log entry ( server_errno=1236)
131011 12:56:56 [ERROR] Got fatal error 1236: 'error reading log entry' from master when reading data from binary log
131011 12:56:56 [Note] Slave I/O thread exiting, read up to log 'server-bin.002981', position 445451409
Per confermare la causa sono andato a leggere il bin-log server-bin.002981 con l'utility mysqlbinlog ed esattamente alla posizione 445451409 è risultato il sequente statement :
# at 445451409
load data LOCAL INFILE '/tmp/SQL_LOAD_MB-3b0-a' INTO table xxxxxx terminated by ',' optionally enclosed by '"' LINES TERMINATED BY '\n'/*!*/;
BEGIN/*!*/;
# at 449249522
#131011 12:14:32 server id 1 end_log_pos 449249874 Query thread_id=68854328 exec_time=0 error_code=0 ... altro comando.....
Confermato : la replica è ferma, IO thread non riesce a leggere il bin-log server-bin.002981
nella posizione 445451409.
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: server
Master_User: user
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: server-bin.002981
Read_Master_Log_Pos: 445451409
Relay_Log_File: server-relay-bin.009598
Relay_Log_Pos: 234
Relay_Master_Log_File: server-bin.002981
Slave_IO_Running: No
Slave_SQL_Running: Yes
SOLUZIONE: E' stato necessario eseguire un CHANGE MASTER per la riprendere la lettura del bin-log da parte dell' IO Thread a partire dalla posizione successiva al problema causato dal comando di LOAD (449249522 estratta dal bin-log).
Comando eseguito sullo slave :
mysql> stop slave;
mysql>change master to MASTER_LOG_FILE='server-bin.002981', MASTER_LOG_POS=449249452;
mysql> start slave;
Allego il link con la descrizione del problema tra la LOAD e la replica MySQL.
http://dev.mysql.com/doc/refman/5.1/en/replication-features-load-data.htmlCiaoaoaoa
Alla Prossima.
Ciaoaooa
Alla Prossima.
Ciaoaooa