掃二維碼與項(xiàng)目經(jīng)理溝通
我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

下面將為讀者詳細(xì)介紹使用二進(jìn)制日志還原數(shù)據(jù)庫的方法。
數(shù)據(jù)庫遭到意外損壞時(shí),應(yīng)該先使用最近的備份文件來還原數(shù)據(jù)庫。另外備份之后,數(shù)據(jù)庫可能進(jìn)行了一些更新,這時(shí)可以使用二進(jìn)制日志來還原。因?yàn)槎M(jìn)制日志中存儲了更新數(shù)據(jù)庫的語句,如 UPDATE 語句、INSERT 語句等。
二進(jìn)制日志還原數(shù)據(jù)庫的命令如下:
mysqlbinlog filename.number | mysql -u root -p
以上命令可以理解成,先使用 mysqlbinlog 命令來讀取 filename.number 中的內(nèi)容,再使用 mysql 命令將這些內(nèi)容還原到數(shù)據(jù)庫中。
技巧:二進(jìn)制日志雖然可以用來還原 MySQL 數(shù)據(jù)庫,但是其占用的磁盤空間也是非常大的。因此,在備份 MySQL 數(shù)據(jù)庫之后,應(yīng)該刪除備份之前的二進(jìn)制日志。如果備份之后發(fā)生異常,造成數(shù)據(jù)庫的數(shù)據(jù)損失,可以通過備份之后的二進(jìn)制日志進(jìn)行還原。
使用 mysqlbinlog 命令進(jìn)行還原操作時(shí),必須是編號(number)小的先還原。例如,mylog.000001 必須在 mylog.000002 之前還原。
下面使用二進(jìn)制日志來還原數(shù)據(jù)庫,代碼如下:
mysqlbinlog mylog.000001 | mysql -u root -p
mysqlbinlog mylog.000002 | mysql -u root -p
mysqlbinlog mylog.000003 | mysql -u root -p
mysqlbinlog mylog.000004 | mysql -u root -p

我們在微信上24小時(shí)期待你的聲音
解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流