MySQL/MariaDB数据库的冷备份和还原

                            作者:尹正杰 

版权声明:原创作品,谢绝转载!否则将追究法律责任。

 

 

 

一.MySQL/MariaDB数据库的备份和还原概述

1>.为什么要备份

  为了预防灾难恢复:硬件故障、软件故障、自然灾害、黑客攻击、误操作测试等数据丢失场景。

2>.备份注意要点

  能容忍最多丢失多少数据

  恢复数据需要在多长时间内完成
  需要恢复哪些数据

3>.还原要点

  做还原测试,用于测试备份的可用性

  还原演练(备份和备份成功是两码事!一定要进行还原演练!!!最好有相关的操作文档,遇到问题你也不慌了直接按照你自己写的文档执行就好!)

4>.备份类型

完全备份:
  整个数据集 部分备份:
  只备份数据子集,如部分库或表
完全备份、增量备份、差异备份   增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据,备份较快,还原复杂   差异备份:仅备份最近一次完全备份以来变化的数据,备份较慢,还原简单
温馨提示:
  二进制日志文件不应该与数据文件放在同一磁盘

5>.冷、温、热备份

冷备:
  读写操作均不可进行 温备:
  读操作可执行;但写操作不可执行 热备:
  读写操作均可执行
存储引擎支持的备份类型:
  MyISAM:支持冷备和温备,不支持热备   InnoDB:都支持

6>.物理和逻辑备份

物理备份:
  直接复制数据文件进行备份,与存储引擎有关,占用较多的空间,速度快
逻辑备份:
  从数据库中“导出”数据另存而进行的备份,与存储引擎无关,占用空间少,速度慢,可能丢失精度

7>.备份时需要考虑的因素

  温备的持锁多久
  备份产生的负载
  备份过程的时长
  恢复过程的时长

8>.备份什么

  数据
  二进制日志、InnoDB的事务日志
  程序代码(存储过程、函数、触发器、事件调度器)
  服务器的配置文件

9>.备份工具

cp, tar等复制归档工具:
  物理备份工具,适用所有存储引擎;只支持冷备;完全和部分备份
LVM的快照:
  先加锁,做快照后解锁,几乎热备;借助文件系统工具进行备份
mysqldump:
  逻辑备份工具,适用所有存储引擎,温备;支持完全或部分备份;对InnoDB存储引擎支持热备,结合binlog的增量备份
xtrabackup:
  由Percona提供支持对InnoDB做热备(物理备份)的工具,支持完全备份、增量备份
MariaDB Backup:
  从MariaDB
10.1.26开始集成,基于Percona XtraBackup 2.3.8实现
mysqlbackup:
  热备份, MySQL Enterprise Edition组件
mysqlhotcopy:
  PERL 语言实现,几乎冷备,仅适用于MyISAM存储引擎,使用LOCK TABLES、FLUSH TABLES和cp或scp来快速备份数据库

 

二.冷备份实战案例(完全备份) 

为了试验方便,本案例采用多实例来模拟数据库的备份,关于MySQL的多实例安装方式可参考我之前的笔记。

博主推荐阅读:
    https://www.cnblogs.com/yinzhengjie/p/11741690.html

1>.查看两个实例的数据库信息

[root@node105.yinzhengjie.org.cn ~]# /mysql/3306/mysqld start
Starting MySQL...
[root@node105.yinzhengjie.org.cn ~]# 
[root@node105.yinzhengjie.org.cn ~]# ss -ntl
State       Recv-Q Send-Q                           Local Address:Port                                          Peer Address:Port              
LISTEN      0      128                                          *:22                                                       *:*                  
LISTEN      0      80                                          :::3306                                                    :::*                  
LISTEN      0      128                                         :::22                                                      :::*                  
[root@node105.yinzhengjie.org.cn ~]# 
[root@node105.yinzhengjie.org.cn ~]# mysql -uroot -pyinzhengjie -S /mysql/3306/socket/mysql.sock 
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 9
Server version: 10.2.19-MariaDB-log MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> 
MariaDB [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| yinzhengjie        |
+--------------------+
4 rows in set (0.00 sec)

MariaDB [(none)]> 
MariaDB [(none)]> USE yinzhengjie
Database changed
MariaDB [yinzhengjie]> 
MariaDB [yinzhengjie]> SHOW TABLES;
+-----------------------+
| Tables_in_yinzhengjie |
+-----------------------+
| classes               |
| coc                   |
| courses               |
| scores                |
| students              |
| teachers              |
| toc                   |
+-----------------------+
7 rows in set (0.00 sec)

MariaDB [yinzhengjie]> 
MariaDB [yinzhengjie]> SELECT * FROM students;
+-------+---------------+-----+--------+---------+-----------+
| StuID | Name          | Age | Gender | ClassID | TeacherID |
+-------+---------------+-----+--------+---------+-----------+
|     1 | Shi Zhongyu   |  22 | M      |       2 |         3 |
|     2 | Shi Potian    |  22 | M      |       1 |         7 |
|     3 | Xie Yanke     |  53 | M      |       2 |        16 |
|     4 | Ding Dian     |  32 | M      |       4 |         4 |
|     5 | Yu Yutong     |  26 | M      |       3 |         1 |
|     6 | Shi Qing      |  46 | M      |       5 |      NULL |
|     7 | Xi Ren        |  19 | F      |       3 |      NULL |
|     8 | Lin Daiyu     |  17 | F      |       7 |      NULL |
|     9 | Ren Yingying  |  20 | F      |       6 |      NULL |
|    10 | Yue Lingshan  |  19 | F      |       3 |      NULL |
|    11 | Yuan Chengzhi |  23 | M      |       6 |      NULL |
|    12 | Wen Qingqing  |  19 | F      |       1 |      NULL |
|    13 | Tian Boguang  |  33 | M      |       2 |      NULL |
|    14 | Lu Wushuang   |  17 | F      |       3 |      NULL |
|    15 | Duan Yu       |  19 | M      |       4 |      NULL |
|    16 | Xu Zhu        |  21 | M      |       1 |      NULL |
|    17 | Lin Chong     |  25 | M      |       4 |      NULL |
|    18 | Hua Rong      |  23 | M      |       7 |      NULL |
|    19 | Xue Baochai   |  18 | F      |       6 |      NULL |
|    20 | Diao Chan     |  19 | F      |       7 |      NULL |
|    21 | Huang Yueying |  22 | F      |       6 |      NULL |
|    22 | Xiao Qiao     |  20 | F      |       1 |      NULL |
|    23 | Ma Chao       |  23 | M      |       4 |      NULL |
|    24 | Xu Xian       |  27 | M      |    NULL |      NULL |
|    25 | Sun Dasheng   | 100 | M      |    NULL |      NULL |
+-------+---------------+-----+--------+---------+-----------+
25 rows in set (0.00 sec)

MariaDB [yinzhengjie]> 
MariaDB [yinzhengjie]> QUIT
Bye
[root@node105.yinzhengjie.org.cn ~]# 
查看3306实例的数据库信息

相关文章: