备份数据的最终目的是为了在出现一些意外情况时,能够通过备份将数据还原,所以单单的备
份数据往往是无法满足还原时的需求的,所以在备份数据库时,除了要备份数据本身,还要备
份相关的数据库环境,如配置文件,定时任务,
sudo
权限等等相关的信息。
一、为什么要备份?
1
、灾难恢复:硬件故障,软件故障,自然灾害,黑客攻击,误操作
2
、测试
二、备份要注意的要点
1
、备份需要多少时间(备份过程的时长)
2
、能容忍最多丢失多少数据
3
、恢复数据需要在多场时间内完成(恢复过程的时长)
4
、需要恢复哪些数据
(
1
)做还原测试,用于测试备份的可用性
(
2
)还原演练
5
、备份负载
三、备份内容(备份什么?)
1
、数据
2
、二进制日志,
innodb
的事务日志
3
、代码(存储过程、存储函数、触发器、时间调度器)
4
、服务器的配置文件
四、备份相关术语
1、完全备份(全量备份)(Full Backup)
对某个时间点的所有数据进行一个完全的备份,对应时间点的所有数据都被包含在完全备
份中。(备份整个数据集)
2、部分备份
只备份数据子集
3、增量备份
仅备份最近一次完全备份或增量备份(如果有增量备份)以来变化的数据
![](https://img-blog.csdnimg.cn/db3900fb3cb64eea9843061706c5e430.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbmlnaHRpbmdhbGVW,size_16,color_FFFFFF,t_70,g_se,x_16)
4、差异备份
仅备份最近一次完全备份以来变化的数据;
![](https://img-blog.csdnimg.cn/214735a427ee46f2b64390a2195ee9ab.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbmlnaHRpbmdhbGVW,size_16,color_FFFFFF,t_70,g_se,x_16)
5、热备
在数据库正常运行的情况下进行备份,读写操作均可执行(往往依赖于事务日志)(难度
最大)(
myisam
存储引擎不支持热备,
Innodb
存储引擎支持热备)
6、冷备
读写操作均不能执行(停数据库后进行文件拷贝即可)
7、物理备份
直接备份数据库所对应的数据文件,与存储引擎无关(
cp
),相对于逻辑备份来说,性能
更强
8、逻辑备份
从数据库中
“
导出
”
数据另存而进行备份
五、设计备份方案
1
、数据集:完全
+
增量
+
二进制日志
|
完全
+
差异
+
二进制日志
2
、备份手段:物理,逻辑(物理备份恢复较快,逻辑备份恢复较慢)
对于备份较大的数据建议物理备份,对于较小的数据建议用逻辑备份。
六、备份工具的选择
1
、
cp
命令或
tar
命令
在
Linux
中直接对数据文件进行备份,这种方式只适用于冷备的方式
2、通过select语句进行部分备份
通过
select
语句将表中的数据导出到指定文件中。
在使用
select
语句备份的同时,最好将表架构也备份一份,因为还原的时候可以用到。
3
、
mysqldump+
复制
binlog
:
mysqldump
:完全备份(部分备份)(逻辑备份工具)
复制
binlog
中指定时间范围内的
event
:增量备份
mysqldump
是
mysql
自带的备份工具,它是一种逻辑备份工具,也就是说,它会将数据
从数据库中读出,转化为对应的
sql
语句。
mysqldump
能够实现完全备份或部分备份
使用
innodb
表类型的表能够使用
mysqldump
进行热备
使用
myisam
表类型的表只能够使用
mysqldump
进行温备
如果数据量较小,可以选择使用
mysqldump
。
原理:
通过协议连接到
mysql
数据库,将需要备份的数据查询出来,将查询出的数据转换成对应
的
insert
语句,还原这些数据时,只要执行这些
insert
语句即可将对应的数据还原。
优点:
可以直接使用文本处理工具处理对应的备份数据,因为备份数据已经被
mysqldump
转换
成了对应的
insert
语句,所以,我们可以借助文件系统中的文本处理工具对备份数据进行直接
处理。
缺点:
当数据为浮点类型时,会出现精度丢失
它的备份过程属于逻辑备份,其备份速度、恢复速度与物理备份工具相比较慢,而且
mysqldump
备份的过程是串行化的(
mydumper
可并行备份),不会并行的进行备份;当数
据量较大时,其效率较低
4、lvm2快照+复制binlog:
lvm2
快照:(做快照的时候不能有任何的数据写入)(几乎热备(备份速度快))
lvm2
快照:适用
cp
或者
tar
等做物理备份:完全备份
复制
binlog
中指定时间范围内的
event
:增量备份
5
、
xtrabackup|mariabackup
:
由Percona
提供的支持对
InnoDB
做热备(物理备份)工具(开源免费的)
支持完全备份、差异备份、增量备份、部分备份等功能