物理备份
Physical backups consist of raw copies of the directories and files that store database contents. This type of backup is suitable for large, important databases that need to be recovered quickly when problems occur.
定义
物理备份就是把MYSQL存储好的所有文件保存下来。比如创建一个数据库db之后,mysql会在datadir/
目录下面创建一个db
的目录,那么这个目录下面的所有文件保存下来,就是物理备份。适用:
物理备份适用于大数据量的备份,比如你有好几G的数据,那你就适合使用物理备份;典型方法:
1.文件系统命令:cp,scp,tar,rsync;
2.系统快照snapshot;特征:
1.由数据库文件和目录组成,是mysql数据目录的全部或者部分;
2.一般备份比逻辑备份快,因为纯属是文件复制,不用像逻辑备份那样,需要做sql的转换;
3.备份的粒度比逻辑备份小,因为是全文件复制了,当然比sql要精确一些;
4.物理备份的文件可以不仅是数据库,还可以是数据库的日志,配置文件;
5.备份memory存储引擎的数据就麻烦了,因为memory的数据不是存储在硬盘的;
6.mysql服务器不运行的时候可以进行备份,而逻辑备份需要mysql-server处理运行状态;
7.mysqlbackup
程序命令,可以帮助innodb
的数据进行备份;而直接使用文件系统的命令(cp,scp,tar,rsync)等,就可以对myisam
的数据进行备份;
逻辑备份
Logical backups save information represented as logical database structure (CREATE DATABASE, CREATE TABLE statements) and content (INSERT statements or delimited-text files). This type of backup is suitable for smaller amounts of data where you might edit the data values or table structure, or recreate the data on a different machine architecture.
定义
逻辑备份就是把数据库的结构定义语句,数据内容的插入语句,全部存储下来。然后恢复的时候,在另一个mysql服务器执行这些语句,就可以创建另一个与之前一样的数据库了。典型的方法:
1.mysqldump
程序可以把对远程/本地数据库进行逻辑备份.
2.SELECT ..... INTO OUTFILE
可以把数据进行逻辑备份,但备份文件只能存储在mysql-server的机器上;适用:这种比较适合数据量少的数据库。
特点:
1.逻辑备份通过查询数据库的信息进行备份;
2.速度比较慢。因为获取了信息,然后组装成sql语句,如果调用命令是远程,还要把sql语句远程传输;
3.备份文件要比物理备份大;
4.备份粒度只能到表;
5.没有日志或者配置文件;
6.备份文件是sql语句,逻辑语句,相对来说,可移植性要好。比如我在linux备份了,可以在windows进行恢复,物理备份就不行;
全量备份与增量备份
上面所说的,都是全量备份,一般增量备份,都是通过mysql-server的二进制文件进行增量备份;
增量备份的恢复
增量备份的恢复,是先恢复某个时间点A的全量备份,然后再把从A开始之后的二进制文件进行应用,从而完成恢复;
文章参考:Mysql-Manual