13.MySQL故障還原(二)

目錄:
0.故障描述
1.全量備份
2.數(shù)據(jù)修改
3.故障模擬
4.故障后的數(shù)據(jù)變化
5.還原準(zhǔn)備
6.還原
7.恢復(fù)配置

0.故障描述

誤刪庫(kù)操作.jpg

故障說明:每天凌晨?jī)牲c(diǎn)做完全備份,現(xiàn)在下午18:00誤刪除表,18:10并進(jìn)行恢復(fù),將時(shí)間點(diǎn)恢復(fù)到18:10

1.全量備份

[root@node08 ~]#  mysqldump -A --master-data=2 > /data/all_`date +%F`.sql
[root@node08 data]# ll
-rw-r--r-- 1 root  root   521635 Jul 24 01:55 all_2020-07-24.sql
[root@node08 data]# vim all_2020-07-24.sql
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=245;

[root@node08 data]# pwd
/data
[root@node08 data]# ll
-rw-r--r-- 1 root  root   521635 Jul 24 01:55 all_2020-07-24.sql
drwxr-xr-x 2 mysql mysql     173 Jul 24 00:57 logbin

2.數(shù)據(jù)修改

[root@node08 ~]# mysql
MariaDB [(none)]> use hellodb
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MariaDB [hellodb]> select * from students;
+-------+---------------+-----+--------+---------+-----------+
| StuID | Name          | Age | Gender | ClassID | TeacherID |
+-------+---------------+-----+--------+---------+-----------+
|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
|     2 | Shi Potian    |  22 | M      |       1 |         7 |
......
|    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
|    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
|    26 | a             |  20 | F      |    NULL |      NULL |
|    27 | b             |  30 | F      |    NULL |      NULL |
+-------+---------------+-----+--------+---------+-----------+
27 rows in set (0.00 sec)

MariaDB [hellodb]> insert students (name,age)values('c',30);
Query OK, 1 row affected (0.00 sec)

MariaDB [hellodb]> insert students (name,age)values('d',40);
Query OK, 1 row affected (0.00 sec)

MariaDB [hellodb]> select * from students;
+-------+---------------+-----+--------+---------+-----------+
| StuID | Name          | Age | Gender | ClassID | TeacherID |
+-------+---------------+-----+--------+---------+-----------+
|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
|     2 | Shi Potian    |  22 | M      |       1 |         7 |
......
|    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
|    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
|    26 | a             |  20 | F      |    NULL |      NULL |
|    27 | b             |  30 | F      |    NULL |      NULL |
|    28 | c             |  30 | F      |    NULL |      NULL |
|    29 | d             |  40 | F      |    NULL |      NULL |
+-------+---------------+-----+--------+---------+-----------+
29 rows in set (0.00 sec)

3.故障模擬

MariaDB [hellodb]> drop table students;
Query OK, 0 rows affected (0.01 sec)

MariaDB [hellodb]> select * from students;
ERROR 1146 (42S02): Table 'hellodb.students' doesn't exist

4.故障后的數(shù)據(jù)變化

MariaDB [hellodb]> insert teachers (name,age)values('stone',28);
Query OK, 1 row affected (0.01 sec)

MariaDB [hellodb]> insert teachers (name,age)values('sky',19);
Query OK, 1 row affected (0.00 sec)

MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name          | Age | Gender |
+-----+---------------+-----+--------+
|   1 | Song Jiang    |  45 | M      |
|   2 | Zhang Sanfeng |  94 | M      |
|   3 | Miejue Shitai |  77 | F      |
|   4 | Lin Chaoying  |  93 | F      |
|   5 | stone         |  28 | NULL   |
|   6 | sky           |  19 | NULL   |
+-----+---------------+-----+--------+
6 rows in set (0.00 sec)

5.還原準(zhǔn)備

5.1禁止用戶訪問

加鎖,skip-networking或者防火墻
建議使用防火墻規(guī)則

5.2查看二進(jìn)制日志位置

MariaDB [hellodb]> show master logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |     30334 |
| mysql-bin.000002 |   1038814 |
| mysql-bin.000003 |      8138 |
| mysql-bin.000004 |     30334 |
| mysql-bin.000005 |   1038814 |
| mysql-bin.000006 |      1292 |
+------------------+-----------+
6 rows in set (0.00 sec)

MariaDB [hellodb]> flush logs;
Query OK, 0 rows affected (0.00 sec)

MariaDB [hellodb]> show master logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |     30334 |
| mysql-bin.000002 |   1038814 |
| mysql-bin.000003 |      8138 |
| mysql-bin.000004 |     30334 |
| mysql-bin.000005 |   1038814 |
| mysql-bin.000006 |      1335 |
| mysql-bin.000007 |       245 |
+------------------+-----------+
7 rows in set (0.00 sec)

5.3導(dǎo)出二進(jìn)制日志,并將誤操作刪除

[root@node08 logbin]# mysqlbinlog  mysql-bin.000006 > /data/inc.sql
[root@node08 logbin]# vim /data/inc.sql
#DROP TABLE `students` /* generated by server */

6.還原

6.1刪除數(shù)據(jù)庫(kù)

[root@node08 logbin]# rm -rf /var/lib/mysql/*
[root@node08 logbin]# systemctl restart mariadb

6.2還原

[root@node08 ~]# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
MariaDB [(none)]> show master logs;
+------------------+-----------+
| Log_name         | File_size |
+------------------+-----------+
| mysql-bin.000001 |     30334 |
| mysql-bin.000002 |   1038814 |
| mysql-bin.000003 |      8138 |
| mysql-bin.000004 |     30334 |
| mysql-bin.000005 |   1038814 |
| mysql-bin.000006 |      1335 |
| mysql-bin.000007 |       264 |
| mysql-bin.000008 |     30334 |
| mysql-bin.000009 |   1038814 |
| mysql-bin.000010 |       245 |
+------------------+-----------+
10 rows in set (0.00 sec)

MariaDB [(none)]> set sql_log_bin=0;
Query OK, 0 rows affected (0.00 sec)

MariaDB [(none)]> source /data/all_2020-07-24.sql
Query OK, 0 rows affected (0.00 sec)
......
Query OK, 0 rows affected (0.00 sec)

MariaDB [test]> source /data/inc.sql
Query OK, 0 rows affected (0.00 sec)
......
Query OK, 0 rows affected (0.00 sec)

6.3還原檢測(cè)

MariaDB [hellodb]> select * from students;
+-------+---------------+-----+--------+---------+-----------+
| StuID | Name          | Age | Gender | ClassID | TeacherID |
+-------+---------------+-----+--------+---------+-----------+
|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
|     2 | Shi Potian    |  22 | M      |       1 |         7 |
......
|    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
|    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
|    26 | a             |  20 | F      |    NULL |      NULL |
|    27 | b             |  30 | F      |    NULL |      NULL |
|    28 | c             |  30 | F      |    NULL |      NULL |
|    29 | d             |  40 | F      |    NULL |      NULL |
+-------+---------------+-----+--------+---------+-----------+
29 rows in set (0.00 sec)

MariaDB [hellodb]> select * from teachers;
+-----+---------------+-----+--------+
| TID | Name          | Age | Gender |
+-----+---------------+-----+--------+
|   1 | Song Jiang    |  45 | M      |
|   2 | Zhang Sanfeng |  94 | M      |
|   3 | Miejue Shitai |  77 | F      |
|   4 | Lin Chaoying  |  93 | F      |
|   5 | stone         |  28 | NULL   |
|   6 | sky           |  19 | NULL   |
+-----+---------------+-----+--------+
6 rows in set (0.00 sec)

7.恢復(fù)配置

1.開啟二進(jìn)制日志
2.開啟用戶訪問

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容