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 來撤銷操作了。
這個工具可以用于在主備切換后,撤銷掉原主上未同步到備的操作,避免完全重建;也可以作為誤操作的后悔藥。
您可能感興趣的文章:
mysql使用 row 格式 binlog 撤銷操作
mysql 主從同步一例
linux下指定數據庫服務器主從同步的實例
Linux下指定數據庫數據配置主主同步的實例
jQuery LigerUI 使用教程表格篇(1)
批量清除過期的binlog日志釋放磁盤空間的shell腳本
批量清除128組節點db上過期的binlog釋放磁盤空間的shell腳本
清理多臺MySQL數據庫的過期binlog日志的shell腳本
MySQL主從服務器配置的一些總結
Mysql 備份與恢復實例教程