溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

發(fā)布時間:2020-05-07 16:29:08 來源:億速云 閱讀:798 作者:三月 欄目:MySQL數(shù)據(jù)庫

本文主要給大家介紹誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法,文章內(nèi)容都是筆者用心摘選和編輯的,具有一定的針對性,對大家的參考意義還是比較大的,下面跟筆者一起了解下誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法吧。

一、實驗環(huán)境:

1、準備兩臺虛擬機,一臺用于破壞數(shù)據(jù)庫,一臺用于還原,兩臺在同一個網(wǎng)絡(luò)

2、兩臺最小化安裝centos 7系統(tǒng),并直接yum安裝maraidb數(shù)據(jù)庫

3、準備一個測試數(shù)據(jù)庫文件,例如,hellodb_innodb.mysql 測試庫里面最少有兩個表。

二、實驗步驟:

1、開啟數(shù)據(jù)庫的二進制日志功能

vim /etc/my.cnf
[mysqld] 下面加入log-bin 表示開啟二進制日志功能

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

2、完全備份

mysqldump -A -F --master-data=2 --single-transaction |gzip >  /data/all.sql.gz
備份數(shù)據(jù)庫文件并用gzip壓縮,存放到/data目錄

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

3、直接連接數(shù)據(jù)庫修改任意表

insert students (name,age)values('a',20);
insert students (name,age)values('b',30);

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

select * from students 查詢新加入的表信息

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

4、模擬刪除數(shù)據(jù)庫表

drop table students;如圖下,已將students表刪除;

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

5、假裝不知道,繼續(xù)修改其他表

insert teachers (name,age)values('zhangsir',30);

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

6、發(fā)現(xiàn)重要表刪除,立即鎖表

flush tables with read lock; 給表加上讀鎖

7、在另一臺機子上還原

vim /etc/my.cnf
skip-networking 確保其它用戶不能訪問數(shù)據(jù)庫,只能自己操作
rm -rf /var/lib/mysql 將原來的數(shù)據(jù)庫文件刪除,避免原來有文件
scp /data/all.sql.gz 192.168.190.129:/data
將原來備份的文件,復(fù)制到現(xiàn)主機的目錄中

8、完全備份還原

gzip -d /data/all.sql.gz  解壓打包的備份文件
mysql < /data/all.sql  將文件導(dǎo)入到數(shù)據(jù)庫中

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

9、還原增量備份

less /data/all.sql 查看二進制日志位置

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

確定二進制日志,以及起始位置為245
scp /var/lib/mysql/mariadb-bin.000002 192.168.190.129:/data
將二進制文件拷貝過來
mysqlbinlog -- start-position=245 /data/mariadb-bin.000002 > /data/binlog.sql
使用mysqlbinlog工具,生成新的二進制日志

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

vim /data/binlog.sq
找到drop table students; 這條sql語句,注釋有關(guān)此行

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

mysql < /data/binlog.sql
導(dǎo)入二進制日志文件
恢復(fù)用戶的訪問

三、檢驗數(shù)據(jù)的完整性

show databases;
show tables

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

上圖中的students表已經(jīng)恢復(fù)過來

誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法
誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法

如圖所示,之前做的修改也都回來了。實驗?zāi)康倪_到了。

四、實驗總結(jié)

mariadb 數(shù)據(jù)庫破壞后,需要借助完全備份+二進制日志文件進行還原,兩者缺一不可,兩者都非常重要,生產(chǎn)中既要保護好備份的數(shù)據(jù)庫文件,同時還需要保護好二進制文件,從而保證數(shù)據(jù)還原的完整性。

看完以上關(guān)于誤刪除mysql數(shù)據(jù)庫表該如何恢復(fù)操作方法,很多讀者朋友肯定多少有一定的了解,如需獲取更多的行業(yè)知識信息 ,可以持續(xù)關(guān)注我們的行業(yè)資訊欄目的。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI