MySQL Database Replication reparieren:
- Status einholen mit "show master status;", "show slave status;" sowie "mysqlbinlog" auf Binary-Log vom Master und aufs Relay-Log vom Slave.
- Fehlerhafte Stellen entweder überspringen mit: "set global sql_slave_skip_counter=N" (Wichtig: Inserts die autoincrement benutzen verbrauchen zwei Zeilen => N=2 pro Statement!)
- Oder Slave-Position komplett neu setzen mit "change master to master_log_file='binary_log_file_name_vom_maschder', master_log_pos=binary_log_position;" (vorher evtl. "slave stop;", der beschwert sich dann schon..)
- Dann mit "slave start;" den Sklaven-Fred wieder starten
Generelle Anhaltspunkte:
- Binary Log: Log vom Master über alles was bei ihm so passiert
- Relay Log: Log vom Sklaven über alles was beim _Master_ so passiert ist
- Am Ende eines Binary Logfiles sollte "Stop" stehen oder ein Verweis aufs nächste Logfile (nicht ganz am Ende der Datei, sondern die letzte Anweisung). Wenn der Verweis fehlt, bleibt der Slave-Prozess mit Fehler "Error in Log_event::read_log_event(): 'Event too small', data_len: 0, event_type: 0" und "Error_code: 1591" nämlich stehen und schmollt.
Kategorie(n): MySQL