操作MySQL誤刪數(shù)據(jù)庫(kù)備份該如何恢復(fù)-創(chuàng)新互聯(lián)

下文主要給大家?guī)?lái)操作MySQL誤刪數(shù)據(jù)庫(kù)備份該如何恢復(fù),希望這些內(nèi)容能夠帶給大家實(shí)際用處,這也是我編輯操作MySQL誤刪數(shù)據(jù)庫(kù)備份該如何恢復(fù)這篇文章的主要目的。好了,廢話(huà)不多說(shuō),大家直接看下文吧。

成都網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專(zhuān)注于網(wǎng)頁(yè)設(shè)計(jì)、成都網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序開(kāi)發(fā)、集團(tuán)成都企業(yè)網(wǎng)站定制等服務(wù)項(xiàng)目。核心團(tuán)隊(duì)均擁有互聯(lián)網(wǎng)行業(yè)多年經(jīng)驗(yàn),服務(wù)眾多知名企業(yè)客戶(hù);涵蓋的客戶(hù)類(lèi)型包括:成都自上料攪拌車(chē)等眾多領(lǐng)域,積累了大量豐富的經(jīng)驗(yàn),同時(shí)也獲得了客戶(hù)的一致贊譽(yù)!

案例:2013年6月1日,上午10點(diǎn)左右某網(wǎng)站的數(shù)據(jù)庫(kù)被誤刪除,導(dǎo)致網(wǎng)站無(wú)法訪問(wèn),由于數(shù)據(jù)庫(kù)已經(jīng)備份了6月1日凌晨0點(diǎn)之前的數(shù)據(jù),但是0點(diǎn)之后到10點(diǎn)左右的數(shù)據(jù)就沒(méi)有備份數(shù)據(jù),那么要求你將數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)進(jìn)行恢復(fù)。

一:數(shù)據(jù)記錄介紹

6月1日0點(diǎn)之前的數(shù)據(jù)為

|  1 | oldboy  |
|  2 | oldgirl |
|  3 | inca    |
|  4 | zuma    |
|  5 | kaka    |
# 6月1日0點(diǎn)之后到10點(diǎn)左右寫(xiě)入的數(shù)據(jù)為
|  6 | oldgirl |
|  7 | test    |
|  8 | laowang |

二:模擬事故的發(fā)生準(zhǔn)備

1.為了不影響本次實(shí)驗(yàn),我們先將系統(tǒng)的定時(shí)任務(wù)。

[root@db01 ~]# crontab -l
#*/5 * * * * /usr/sbin/ntpdate time.nist.gov >/dev/null 2>&1

2.先將使用時(shí)間調(diào)整至凌晨0點(diǎn),每天00點(diǎn)進(jìn)行數(shù)據(jù)庫(kù)備份

[root@db01 backup]# date -s "2013/06/01"
Mon Aug 29 00:00:00 CST 2016

3.先檢查數(shù)據(jù)庫(kù)有哪些數(shù)據(jù)

[root@db01 ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock
mysql> use oldboy;

創(chuàng)建一個(gè)test表測(cè)試

CREATE TABLE `test` (
`id` int(4) NOT NULL AUTO_INCREMENT,
`name` char(20) NOT NULL,
PRIMARY KEY(`id`)
);

向表中插入數(shù)據(jù)

insert into test values (1,'oldboy'),(2,'oldgirl'),(3,'inca'),(4,'zuma'),(5,'kaka');
mysql> select * from test;
+----+---------+
| id | name    |
+----+---------+
|  1 | oldboy  |
|  2 | oldgirl |
|  3 | inca    |
|  4 | zuma    |
|  5 | kaka    |
+----+---------+
5 rows in set (0.00 sec)

4.首先對(duì)oldboy數(shù)據(jù)庫(kù)進(jìn)行全量備份

下面的參數(shù)--master-data=2需要開(kāi)啟binlog日志

[root@db02 ~]# mysqldump -uroot -poldboy123 -S /data/3306/mysql.sock -B -F -x --master-data=2 oldboy|gzip >/server/backup/oldboy_$(date +%F).sql.gz     #<== -x  表示備份數(shù)據(jù)庫(kù)鎖表

檢查新生產(chǎn)的binlog日志

[root@db02 ~]# ll /data/3306/
-rw-rw----  1 mysql mysql    107 Jun  1 00:02 mysql-bin.000070

5.檢查數(shù)據(jù)庫(kù)是否備份成功

[root@db01 ~]# ll /server/backup/
-rw-r--r-- 1 root root 872 Jun  1 00:02 oldboy_2013-06-01.sql.gz

6.然后望數(shù)據(jù)庫(kù)寫(xiě)入一些數(shù)據(jù),模擬備份完成以后數(shù)據(jù)庫(kù)還依舊在寫(xiě)入數(shù)據(jù)

[root@db02 ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock   
mysql> use oldboy;
mysql> insert into test values(6,'oldgirl'),(7,'test'),(8,'laowang');
mysql> select * from test;
+----+---------+
| id | name    |
+----+---------+
|  1 | oldboy  |
|  2 | oldgirl |
|  3 | inca    |
|  4 | zuma    |
|  5 | kaka    |
|  6 | oldgirl |
|  7 | test    |
|  8 | laowang |
+----+---------+
8 rows in set (0.00 sec)

三:制造故障發(fā)生

假設(shè)上午10點(diǎn):

出事了,

某個(gè)領(lǐng)導(dǎo),誤刪了數(shù)據(jù)庫(kù)oldboy

7.現(xiàn)在模擬早上10點(diǎn)發(fā)生故障,數(shù)據(jù)庫(kù)oldboy被刪除,先修改時(shí)間

[root@db02 ~]# date -s "10:00:00"
Mon Aug 29 10:00:00 CST 2016
[root@db02 ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "drop database oldboy;" 
Query OK, 1 row affected, 1 warning (0.01 sec)

#檢查數(shù)據(jù)庫(kù)是否刪除成功

mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "show databases;"

四:解決問(wèn)題,恢復(fù)數(shù)據(jù)

10:10分,運(yùn)維人員,網(wǎng)站客戶(hù),發(fā)現(xiàn)問(wèn)題,找到開(kāi)發(fā)或運(yùn)維

最后確定問(wèn)題,網(wǎng)站的數(shù)據(jù)庫(kù)連接不上,報(bào)錯(cuò)。登錄數(shù)據(jù)庫(kù)發(fā)生數(shù)據(jù)庫(kù)不存在啦

8.現(xiàn)在我們來(lái)解決問(wèn)題,恢復(fù)數(shù)據(jù)庫(kù)

首先我們需要知道備份以后產(chǎn)生的binlog日志,可以通過(guò)備份的時(shí)間判斷。

[root@db02 ~]# ll /data/3306/
-rw-rw----  1 mysql mysql    107 Jun  1 00:02 mysql-bin.000070

9.如果看不出來(lái)的話(huà),看備份文件的信息,

[root@db02 ~]# cd /server/backup/
[root@db02 backup]# gzip -d oldboy_2013-06-01.sql.gz
[root@db02 backup]# grep "CHANGE" oldboy_2013-06-01.sql 
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000070', MASTER_LOG_POS=107

10.先將mysql-bin.000070的binlog日志進(jìn)行備份

[root@db02 ~]# cp /data/3306/mysql-bin.000070 /server/backup/
[root@db02 ~]# ll /server/backup/
total 8
-rw-r----- 1 root root  415 Jun  1 10:04 mysql-bin.000070	 #<== 增量備份文件
-rw-r--r-- 1 root root 2203 Jun  1 00:02 oldboy_2013-06-01.sql	 #<== 全量備份文件

11.根據(jù)上面的情況,我們已經(jīng)準(zhǔn)備好了全量備份加增量備份的數(shù)據(jù),現(xiàn)在就可以恢復(fù)

我們的目的,

(1)恢復(fù)00點(diǎn)之前的全量備份(5條數(shù)據(jù))

[root@db02 ~]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock </server/backup/oldboy_2013-06-01.sql 
[root@db02 backup]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e "use oldboy;select * from test;"
+----+---------+
| id | name    |
+----+---------+
|  1 | oldboy  |
|  2 | oldgirl |
|  3 | inca    |
|  4 | zuma    |
|  5 | kaka    |
+----+---------+

12恢復(fù)00點(diǎn)到10點(diǎn)的增量備份(2條數(shù)據(jù))

[root@db02 ~]# cd /server/backup/
[root@db02 backup]# mysqlbinlog -d oldboy mysql-bin.000070 >zengliang.sql

13先找到binlog日志的drop語(yǔ)句刪除,然后在恢復(fù)binglog日志的增量備份

[root@db02 backup]# vim zengliang.sql
drop database oldboy      #<== 刪除此行

14.現(xiàn)在將數(shù)據(jù)庫(kù)的增量備份文件恢復(fù)到數(shù)據(jù)庫(kù)

[root@db02 backup]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock </server/backup/zengliang.sql

15只要能恢復(fù)到以下的數(shù)據(jù),就表示數(shù)據(jù)恢復(fù)成功

[root@db01 backup]# mysql -uroot -poldboy123 -S /data/3306/mysql.sock -e 'select * from oldboy.test;'
+----+---------+
| id | name    |
+----+---------+
|  1 | oldboy  |
|  2 | oldgirl |
|  3 | inca    |
|  4 | zuma    |
|  5 | kaka    |
|  6 | oldgirl |
|  7 | test    |
|  8 | laowang |
+----+---------+

對(duì)于以上關(guān)于操作MySQL誤刪數(shù)據(jù)庫(kù)備份該如何恢復(fù),大家是不是覺(jué)得非常有幫助。如果需要了解更多內(nèi)容,請(qǐng)繼續(xù)關(guān)注我們的行業(yè)資訊,相信你會(huì)喜歡上這些內(nèi)容的。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線(xiàn),公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性?xún)r(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專(zhuān)為企業(yè)上云打造定制,能夠滿(mǎn)足用戶(hù)豐富、多元化的應(yīng)用場(chǎng)景需求。

網(wǎng)站欄目:操作MySQL誤刪數(shù)據(jù)庫(kù)備份該如何恢復(fù)-創(chuàng)新互聯(lián)
瀏覽地址:http://muchs.cn/article42/eeihc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計(jì)全網(wǎng)營(yíng)銷(xiāo)推廣、域名注冊(cè)、外貿(mào)建站、網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管