91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

操作MySQL誤刪數據庫備份該如何恢復

發布時間:2020-05-19 14:45:08 來源:網絡 閱讀:184 作者:三月 欄目:數據庫

下文主要給大家帶來操作MySQL誤刪數據庫備份該如何恢復,希望這些內容能夠帶給大家實際用處,這也是我編輯操作MySQL誤刪數據庫備份該如何恢復這篇文章的主要目的。好了,廢話不多說,大家直接看下文吧。    

案例:2013年6月1日,上午10點左右某網站的數據庫被誤刪除,導致網站無法訪問,由于數據庫已經備份了6月1日凌晨0點之前的數據,但是0點之后到10點左右的數據就沒有備份數據,那么要求你將數據庫中的所有數據進行恢復。

一:數據記錄介紹

6月1日0點之前的數據為

|  1 | oldboy  |
|  2 | oldgirl |
|  3 | inca    |
|  4 | zuma    |
|  5 | kaka    |
# 6月1日0點之后到10點左右寫入的數據為
|  6 | oldgirl |
|  7 | test    |
|  8 | laowang |

二:模擬事故的發生準備

1.為了不影響本次實驗,我們先將系統的定時任務。

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

2.先將使用時間調整至凌晨0點,每天00點進行數據庫備份

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

3.先檢查數據庫有哪些數據

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

創建一個test表測試

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

向表中插入數據

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.首先對oldboy數據庫進行全量備份

下面的參數--master-data=2需要開啟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  表示備份數據庫鎖表

檢查新生產的binlog日志

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

5.檢查數據庫是否備份成功

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

6.然后望數據庫寫入一些數據,模擬備份完成以后數據庫還依舊在寫入數據

[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)

三:制造故障發生

假設上午10點:

出事了,

某個領導,誤刪了數據庫oldboy

7.現在模擬早上10點發生故障,數據庫oldboy被刪除,先修改時間

[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)

#檢查數據庫是否刪除成功

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

四:解決問題,恢復數據

10:10分,運維人員,網站客戶,發現問題,找到開發或運維

最后確定問題,網站的數據庫連接不上,報錯。登錄數據庫發生數據庫不存在啦

8.現在我們來解決問題,恢復數據庫

首先我們需要知道備份以后產生的binlog日志,可以通過備份的時間判斷。

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

9.如果看不出來的話,看備份文件的信息,

[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日志進行備份

[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.根據上面的情況,我們已經準備好了全量備份加增量備份的數據,現在就可以恢復

我們的目的,

(1)恢復00點之前的全量備份(5條數據)

[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恢復00點到10點的增量備份(2條數據)

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

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

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

14.現在將數據庫的增量備份文件恢復到數據庫

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

15只要能恢復到以下的數據,就表示數據恢復成功

[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 |
+----+---------+

對于以上關于操作MySQL誤刪數據庫備份該如何恢復,大家是不是覺得非常有幫助。如果需要了解更多內容,請繼續關注我們的行業資訊,相信你會喜歡上這些內容的。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安陆市| 即墨市| 无为县| 塔河县| 中江县| 独山县| 尼木县| 盐边县| 都匀市| 新野县| 基隆市| 嘉黎县| 铁力市| 拉萨市| 大庆市| 岚皋县| 富民县| 灵武市| 桐城市| 德江县| 论坛| 阜新市| 泰安市| 锦州市| 淳安县| 石台县| 从江县| 汶川县| 白银市| 隆尧县| 和林格尔县| 噶尔县| 云阳县| 类乌齐县| 色达县| 汕尾市| 溆浦县| 南乐县| 梅河口市| 尖扎县| 连江县|