mysql資料庫被誤操作覆寫了資料,怎么還原上一次的原始資料,之前的資料庫沒有備份。急求。
uj5u.com熱心網友回復:
是否開啟了binlog?如果有的話百度 binlog恢復資料庫uj5u.com熱心網友回復:
binlog開啟了,我去看看可行不可行
uj5u.com熱心網友回復:
百度有好多種方法,不敢亂試,請問有沒有確保可行的方法
uj5u.com熱心網友回復:
mysql我沒怎么用過
@zjcxc
uj5u.com熱心網友回復:
給你@一下大佬,看看能不能處理uj5u.com熱心網友回復:
給你@一下大佬,看看能不能處理
謝謝謝謝
你們都是大佬
uj5u.com熱心網友回復:
沒備份意味著不能用 binlog 恢復到時間點如果你的 binlog 記錄模式是 row(默認),則binlog中會保存被操作資料的原始資料,你可以自己決議 binlog 內容,然后生成反向操作的陳述句
決議(可以指定時間點過濾引數,具體看 mysqlbinlog --help):
mysqlbinlog -v --base64-output=decode-rows binlog檔案名 > 輸出檔案
出來的結果檔案中會包含類似正的這些資訊
UPDATE
SET
....
WHERE
....
對應更新操作,WHERE 里面是舊資料,恢復的操作就是把 SET 和 WHERE 對換
INSERT 陳述句轉換成DELETE
DELETE 陳述句換成 INSERT,其 WHERE 條件與 UPDATE 類似,包含完整的舊資料
uj5u.com熱心網友回復:
沒備份意味著不能用 binlog 恢復到時間點
如果你的 binlog 記錄模式是 row(默認),則binlog中會保存被操作資料的原始資料,你可以自己決議 binlog 內容,然后生成反向操作的陳述句
決議(可以指定時間點過濾引數,具體看 mysqlbinlog --help):
mysqlbinlog -v --base64-output=decode-rows binlog檔案名 > 輸出檔案
出來的結果檔案中會包含類似正的這些資訊
UPDATE
SET
....
WHERE
....
對應更新操作,WHERE 里面是舊資料,恢復的操作就是把 SET 和 WHERE 對換
INSERT 陳述句轉換成DELETE
DELETE 陳述句換成 INSERT,其 WHERE 條件與 UPDATE 類似,包含完整的舊資料
是一份很早之前的舊備份檔案覆寫了現在的正在使用的新資料庫,里面也是去生成反向操作陳述句嗎?是在弄雙擊熱備時操作備機覆寫了主機資料庫。
uj5u.com熱心網友回復:
檔案覆寫,那就頭疼了,檔案覆寫應該是正向,但要求你的 binlog 包含從舊的備份開始的 loguj5u.com熱心網友回復:
檔案覆寫,那就頭疼了,檔案覆寫應該是正向,但要求你的 binlog 包含從舊的備份開始的 log
最近幾天的binlog全都保存了
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/152339.html
標籤:疑難問題
下一篇:有點懵
