2013-07-26 7 views
5

Sto cercando di decodificare manualmente il formato mysql log binario ROW. Ogni evento di aggiornamento/inserimento/cancellazione è preceduto da un TABLE_MAP_EVENT.mysqlbinarylog - unicità di table_id in TABLE_MAP_EVENT

Questo evento contiene table_id. Sto usando questo id per creare una cache per la definizione della colonna di questa tabella.

Di tanto in tanto sto riscontrando errori in detta cache, perché mancata corrispondenza delle informazioni della colonna. Attualmente non sono in grado di riprodurre questi problemi in connessioni di breve durata, solo nelle connessioni di registro in cui si verifica la rotazione del file di registro binario.

Sono sospettoso che lo table_id sia univoco per un file di registro binario. Qualcuno sa se questa ipotesi è vera? Qualcuno sa dove trovare la documentazione che dichiara ciò che posso aspettarmi dallo table_id?

Grazie in anticipo Björn

risposta

0

Dal momento che non riesco a vedere l'implementazione attuale, questo è solo una supposizione cieco, ma diano un'occhiata al bug di sotto, forse che provoca il mal di testa: http://bugs.mysql.com/bug.php?id=67352

 
     Table IDs used in replication were defined as type ulong on the 
     master and uint on the slave. In addition, the maximum value for 
     table IDs in binary log events is 6 bytes (281474976710655). This 
     combination of factors led to the following issues: 

      Data could be lost on the slave when a table was assigned an 
      ID greater than uint. 

      *Table IDs greater than 281474976710655 were written to the 
      binary log as 281474976710655.* 
      (...) 
0

No, non ci sono tabelle di ricerca per i valori di ID tabella di registro binario.

È necessario elaborare gli eventi binlog WRITE/UPDATE/DELETE rispetto ai precedenti eventi TABLE_MAP.

In realtà esiste una colonna TABLE_ID all'interno di INFORMATION_SCHEMA.INNODB_SYS_TABLES ma tali numeri sono diversi dagli ID di tabella che si verificano negli eventi di registro binario TABLE_MAP.

Problemi correlati