Friday, 25 October 2013

MySQL e la Replica Master - Slave

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.

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

MySQL WorkBench 6.0 Client ed Exception


Di seguito riporto un errore riscontrato durante l'utilizzo della nuova versione del MySQL WorkBench 6.0

"External component has thrown an exception" ed improvvisamente il Workbench si chiude........e non è piu possibile utilizzarlo. Unistall e reinstall non risolvono il problema.....

SOLUZIONE :

Dopo qualche ricerca vengo a scoprire che si tratta del Bug #65474 e che poteva essere risolto cancellando tutta la directory AppData/Roaming/MySQL.  Non riuscendo a trovarla direttamente con Gestione Risorse riesco comunque a trovare una indicazione che mi dice di :

Dal promp dei comandi : %appdata% :

Finalmente appare la mia directory : AppData/Roaming/MySQL da cancellare......

A questo punto tutto è tornato a funzionare.....

Con queste indicazioni potrete senz'altro risparmiare del tempo :)

Alla prossima.


Ciaoaoaoa