MySQL 在使用 row 格式,並使用預設的 binlog_row_image=full 的時候,binlog 中記錄了完整的更新前後的資料鏡像。因此,根據 row 格式 binlog 撤銷操作是可行的。 本文主要介紹mysql使用 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 撤銷操作了。
這個工具可以用於在主備切換後,撤銷掉原主上未同步到備的操作,避免完全重建;也可以作為誤操作的後悔藥。
相關推薦:
#詳細介紹mysql5.7建立使用者授權刪除用戶撤銷授權的範例程式碼
以上是詳解mysql使用 row 格式 binlog 撤銷操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!