1、什么情况下会用到备份呢?
【1.1】灾难恢复
【1.2】单位审计:数据库在过去某一个点是什么样的
【1.3】跨机房灾备:异地备份
【1.4】认为的DDL或者DML语句,导致主从库的数据消失
【1.5】业务测试,构建测试库
2、备份的分类
分为冷备份、温备份、热备份
【2.1】冷备份(离线备份:读写操作均中止)
优点:设备投资较少,节省费用,对环境要求不高。
缺点:恢复时间较长,一般要数天至1周,数据完整性与一致性比较差;
【2.2】温备份(只可以执行读操作)
优点:设备投资较少,节省费用,对环境要求不高。
缺点:恢复时间较长,一般要数天至1周,数据完整性与一致性比较差;
【2.3】热备份(读、写不受影响)
优点:恢复时间短,一般几十分钟到数个小时,数据完整性与一致性最好,数据丢失可能性最小。
缺点:设备投资大,费用高,对环境要求高,运维管理比较复杂。
【2.4】总结
根据主机和备机之间同步数据的程度,备份可以分为三种情况,分别为冷备份、暖备份和热备份。
- 冷备份:也就是所谓的备份,备用服务器被配置用于接受主服务器的数据,当出故障时,手动将数据还原到主数据库,或是重新配置程序的连接字符串或权限来使得备份数据库上线。
- 暖备份:主服务器数据会不停的将日志传送到备用服务器(间隔不定,可以是15分钟,30分钟,1分钟等等),在这方式下,主服务器到备份服务器通常是异步更新,所以不能保证主服务器和备份服务器数据一致。此外,该方案通常不会实现自动故障监测和故障转移。
- 热备份:主服务器的数据自动在备份服务器上进行同步,大多数情况下都会包含自动的故障监测和故障转移,并且能够保证主服务器和备份服务器的数据一致性。
随着冷备份到暖备份到热备份,成本会直线上升。
3、备份的方式
分为物理备份与逻辑备份2种
【3.1】物理备份(直接复制文件/目录)
所谓的物理备份,就是把整个关于mysql数据库的相关目录都拷贝一份。
物理备份产生的数据副本都是二进制文件,通常不可编辑,例如数据库的二进制日志;
特点:
(1)由数据库文件和目录组成,是mysql数据目录的全部或者部分
(2)一般备份比逻辑备份快,因为纯属是文件复制,不用像逻辑备份那样需要做SQL转换
(3)备份的粒度比逻辑备份小,因为是全文件复制了,当然比SQL要精确一些。
(4)物理备份的文件不仅是数据库,还可以是数据库的日志,配置文件
适用:适用于大数据量的备份,比如你有百G,TB以上。
备份方法:
(1)文件系统命令:cp/scp/tar/rsync;
(2)Mysql备份软件,系统快照snapshot;
【3.2】逻辑备份(将数据以SQL方式导出至文本文件)
特点:
(1)逻辑备份通过查询数据库的信息进行备份
(2)速度比较慢,因为获取了信息,然后组装成SQL语句,如果调用命令是远程还要把SQL语句远程传输
(3)备份文件要比物理备份小
(4)备份粒度只能到表
(5)没有日志或者配置文件
(6)备份文件是SQL语句,逻辑语句,相对而言可移植性好(比如跨OS)。
4、备份的模式
一般分为3种,全备、差异备、增量备
【4.1】全备:备份所有数据
【4.2】差异备:备份自上一次全备到现在的数据
【4.3】增量备:备份自上一次全备/增量备到现在的数据
5、mysql一般备份的数据
【5.1】数据文件
【5.2】日志文件(比如事务日志、二进制日志)
【5.3】存储过程,存储函数,触发器
【5.4】配置文件(很重要,各个配置文件都要备份)
【5.5】用于实现数据库备份的脚本
6、mysql常用备份工具
【6.1】mysqldump(单线程)/mysqlpump(多线程,5.7+以后才有)
是一种逻辑备份工具,支持完全、部分备份。InnoDB热备,MyIsam温备;
【6.2】mydumper开源,是mysqldump的一个衍生,速度在两者之间。(5.7以后不要用了)
【6.3】cp/tar :物理备份。lvm2快照(请求一个全局锁),之后立即释放,达到几乎热备的效。果。
注意:不能仅备份数据文件,要同事备份事务日志;
前提:要求数据文件和事务日志位于同一个逻辑卷;
【6.4】innobackup【收费】/xtrabackup【免费】
由Percona提供,开源工具,支持Innodb做热备份,物理备份工具;
完全备份、部分备份;完全备份、增量备份;完全备份、差异备份;
【6.5】mysqlhotcopy(已淘汰):物理备份工具,但只支持myIsam,基本属于冷备份,物理备份,速度较快
【6.6】主从复制
【6.7】官方mysql enterprise backup 备份软件,收费
【6.8】其他第三方工具、厂家