記一次刪庫跑路!哈哈哈

2018年八月二號,是黑暗的一天,在今天我碰到一個MySQL的坑,讓我無心間刪掉了整個表的數據,當時我心如死灰,感受涼涼了!可是片刻之間我就立立刻報該問題,運維立馬停掉服務,(爲何停掉服務?腦袋想想就明白了),我問問運維有沒有備份,運維說備份是夜裏兩點備份的,用備份數據的話今天上午的新增的數據也是沒有的,因而我立刻用命令  show veriables like 'log_%'; 查看是否已開啓日誌,謝天謝地mysql開啓了binlog,因而今天記錄一下誤刪庫利用binlog回滾的具體操做!mysql

一、重中之重,誤刪庫以後應該立馬停掉服務,而且通知開發人員不要繼續往數據庫裏面寫東西,一面日誌過大覆蓋掉咱們須要回滾的日誌;git

二、我立刻根據 show veriables like 'log_%';這個命令定位到binlog的位置,找到最近的log;github

三、binlog是二進制文件 vi vim cat 都不能直接查看到咱們想看的東西,咱們要是用mysql自帶的工具查看,命令:sql

/usr/local/mysql/bin/mysqlbinlog --base64-output="decode-rows" -v /var/log/mysql/mysql-bin.000021

輸出的日誌使咱們能看到的sql語句數據庫

四、接下來我按照 https://github.com/danfengcao/binlog2sql 這個連接的步驟,一步步將delete掉的數據都回滾成了insert語句vim

在按照上面這個連接作的時候,bin-log的位置因爲權限不夠,mysql沒法從新啓動,報錯:(Starting MySQL.The server quit without updating PID file (/usr/local/mysql/data/mysql/izwz96bvf2t3
0nuubf3qbez.pid).)解決方法 :給予權限,執行 「chown -R mysql:mysql /var/data」 「chmod -R 755 /usr/local/mysql/data」  而後從新啓動mysqld!運維

這是一次寶貴的經驗,此記錄只是記錄下具體的刪庫後怎麼回滾的思路,剩餘的操做須要看到的朋友動手去試一試!工具

相關文章
相關標籤/搜索