在使用 MySQL 數(shù)據(jù)庫(kù)管理系統(tǒng)時(shí),有時(shí)候需要恢復(fù)某張表的數(shù)據(jù),為了實(shí)現(xiàn)這個(gè)目的,可以根據(jù) binglog 日志來(lái)還原表格中的數(shù)據(jù)。
首先,我們需要先查找到對(duì)應(yīng)表格所在的 binglog 日志,命令如下:
mysqlbinlog /var/log/mysql/binlog/mysql-binlog.000001 | grep "table_name"
然后,將查詢結(jié)果拷貝到一個(gè)新建的文件中,并保存為 replay.sql,我們可以在這個(gè)文件中找到我們想要恢復(fù)的表格的數(shù)據(jù)信息。
接著,進(jìn)入到 MySQL 數(shù)據(jù)庫(kù)管理系統(tǒng)中,使用以下命令來(lái)關(guān)閉表格:
FLUSH TABLES table_name FOR EXPORT;
然后,再使用以下命令來(lái)查看表格的狀態(tài):
SHOW TABLE STATUS LIKE 'table_name'\G;
在返回的結(jié)果中,我們需要注意一下 table_type 是否為 BASE TABLE,保證表格已經(jīng)被正確關(guān)閉。
接下來(lái),我們就可以運(yùn)行 replay.sql 文件來(lái)實(shí)現(xiàn)對(duì)表格的恢復(fù)了,命令如下:
mysql< replay.sql
最后,使用以下命令來(lái)開(kāi)啟表格的常規(guī)操作:
UNLOCK TABLES;
這樣,我們就可以根據(jù) binglog 日志成功恢復(fù)某張表了。
上一篇css+橫向排列