Mysql备份与恢复

212 阅读3分钟

根据备份的方法不同可以分为:热备、冷备、温备

热备是指数据库运行中直接备份,对正在运行的数据库操作没有任何的影响。冷备是指备份操作是在数据库停止的情况下,这种备份最为简单,一般只需要复制相关的数据库物理文件即可。温备同样是在数据库运行中进行的,但是会对当前的数据库操作有所影响,如加一个全局读锁以保证备份数据的一致性。

按照备份后文件的内容,备份又可以分为:

逻辑备份、裸文件备份

在Mysql数据库中,逻辑备份是指备份出的文件的内容是可读的,一般是文本文件。内容一般是由一条条SQL语句,或者是表内实际数据组成。这类方法的好处是可以观察导出文件的内容,缺点是恢复所需要的时间往往较长。

裸文件备份是指复制数据库的物理文件,既可以是在数据库运行中的复制,也可以是在数据库停止运行时直接的数据文件复制。

若按照备份数据库的内容来说,备份又可以分为:

完全备份、增量备份、日志备份

完全备份是指对数据库进行一个完整的备份。增量备份是指在上次完全备份的基础上,对于更改的数据进行备份。日志备份主要是指对Mysql数据库二进制日志的备份,通过对一个完全备份进行二进制日志的重做来完成数据库的point-in-time的恢复的工作。Mysql数据库复制(replication)的原理就是异步实时地将二进制日志重做传送并应用到从(slqve/standy)数据库

冷备

对于InnoDB存储引擎的冷备非常简单,只需要备份Mysql数据库的frm文件,共享表空间文件,独立表空间文件(*.idb),重做日志文件

热备

对于InnoDB存储引擎,其备份工作原理如下:

1)记录备份开始时,InnoDB存储引擎重做日志文件检查点的LSN

2)复制共享表空间文件以及独立表空间文件

3)记录复制完表空间文件后,InnoDB存储引擎重做日志文件检查点的LSN。

4)复制在备份时产生的重做日志

有点像Redis 备份还是复制的原理

复制

复制的工作原理

复制(replication)是Mysql数据库提供的一种高可用高性能的解决方案,replicaiton的工作原理分为以下3个步骤:

1)主服务器把数据更改记录到二进制日志中(binlog)

2)从服务器把主服务器的二进制日志复制到自己的中继日志中(relay log).

3)从服务器重做中继日志中的日志,把更改应用到自己的数据库上,以达到数据的最终一致性。

从服务器有2个线程,一个是I/O 线程,负责读取主服务器的二进制日志,并将其保存为中继日志;另一个是SQL线程,复制执行中继日志

Reference:

《Mysql技术内幕——InnoDB存储引擎》 第二版——姜承尧