mysqlbinarylog - TABLE_MAP_EVENT中table_id的唯一性

bjo*_*ser 5 mysql binary-log

我试图手动解码mysql二进制日志ROW格式.每个更新/插入/删除事件都以TABLE_MAP_EVENT开头.

此活动包含一个table_id.我正在使用此id为此表的列定义构建缓存.

我不时会在所述缓存中出错,因为列信息不匹配.我目前无法在短生命连接中重现这些问题,仅在发生二进制日志文件轮换的日志连接中.

我怀疑table_id它只对一个二进制日志文件是唯一的.有谁知道这个假设是否成立?有谁知道在哪里可以找到声明我可以期待的文件table_id

在此先感谢Björn

sie*_*iej 0

由于我看不到你的实际实现,这只是一个盲目的猜测,但是看看下面的错误,也许这会引起你的头痛: http://bugs.mysql.com/bug.php ?id=67352

        复制中使用的表 ID 被定义为 ulong 类型
        主设备和从设备上的 uint。此外,最大值为
        二进制日志事件中的表 ID 为 6 个字节 (281474976710655)。这
        综合因素导致了以下问题:

            当为表分配一个表时,从站上的数据可能会丢失
            ID 大于 uint。

            *大于281474976710655的表ID被写入
            二进制日志为 281474976710655.*
            (...)