5

mysql バイナリ ログの ROW 形式を手動でデコードしようとしています。すべての更新/挿入/削除イベントの前に TABLE_MAP_EVENT があります。

このイベントにはtable_id. この ID を使用して、このテーブルの列定義のキャッシュを構築しています。

列情報の不一致が原因で、キャッシュにエラーが発生することがあります。現在、バイナリ ログ ファイルのローテーションが発生するログ接続でのみ、これらの問題を短時間の接続で再現することはできません。

table_idは 1 つのバイナリ ログ ファイルに対してのみ一意であると思われます。この仮定が成り立つかどうかは誰にもわかりませんか? から期待できることを宣言するドキュメントの場所を知っている人はいtable_idますか?

よろしくお願いしますビョルン

4

2 に答える 2

1

いいえ、バイナリ ログ テーブル ID 値のルックアップ テーブルはありません。

以前の TABLE_MAP イベントに関して、WRITE/UPDATE/DELETE binlog イベントを処理する必要があります。

実際には内部に TABLE_ID 列がありますINFORMATION_SCHEMA.INNODB_SYS_TABLESが、これらの数値は TABLE_MAP バイナリ ログ イベントで発生するテーブル ID とは異なります。

于 2016-11-23T12:57:18.193 に答える