萬盛學電腦網

 萬盛學電腦網 >> 數據庫 >> mysql教程 >> mysql使用 row 格式 binlog 撤銷操作

mysql使用 row 格式 binlog 撤銷操作

本文章來為各位介紹一篇關於mysql使用 row 格式 binlog 撤銷操作的例子,希望對各位有幫助。

MySQL 在使用 row 格式,並使用默認的 binlog_row_image=full 的時候,binlog 中記錄了完整的更新前後的數據鏡像。因此,根據 row 格式 binlog 進行撤銷操作是可行的。我就試著做了這麼個工具

[GitHub 頁面] [linux 二進制文件]

例如

./binlog_undo -f /data/mysql/log-bin.000004 -p 3958 -o binlog.out
會掃描 /data/mysql/log-bin.000004 從位置 3958 到末尾的所有事務,倒轉其中所有事務順序和每個事務中的語句順序,並反向所有的操作,把 WRITE 和 DELETE 反轉,把 UPDATE 的前後鏡像互換,然後將生成後的 binlog 文件寫入 binlog.out 中。之後就可以用 mysqlbinlog 工具來回放這個 binlog 來撤銷操作了。

這個工具可以用於在主備切換後,撤銷掉原主上未同步到備的操作,避免完全重建;也可以作為誤操作的後悔藥。

copyright © 萬盛學電腦網 all rights reserved