备份过程需要考虑的因素:
1、必须制定详细的备份计划(策略)(备份频率、时间点、周期)。
一天做一次增量、一周做一次全量。
2、备份数据应该放在非数据本地,并建议多份备份。
可以放在另外一台服务器上,或者在我们的电脑上。出现故障可以快速找到。
3、必须做好备份恢复的演练(每隔一段时间,对备份的数据在测试环境中进行模拟恢复,保证当数据灾难出现的时候能够及时恢复数据。)
能保证在一瞬间内数据恢复,数据量大的时候,要有数据恢复的手段。
4、根据数据应用的场合、特点选择正确的备份工具。
MyISAM引擎的,简单的拷贝就实现备份。InnoDB要选择合适的备份方法。
5、数据的一致性。要求:
6、服务的可用性。要求:服务的高可用的状态。高可用的架构。
备份的类型:
逻辑备份:
备份的是建表、建库、插入等操作所执行的SQL语句(DDL、DML、DCL)。
适用于中小型数据库,效率相对较低 。一般在数据库正常提供服务的前提下进行,如:mysqldump、mydumper、into outfile(表的导出导入)等。
增删改数据导出成一个.sql文件。通过这种方式实现数据的备份。
备份实质:就是把要备份的数据导出成.sql和.txt文件。
物理备份:
直接拷贝复制数据库文件。
例如MyISAM,只要把三个数据库文件拷贝下就可以了。
适用于超大型数据库的环境,不受存储引擎的限制,但不能恢复到不同MySQL的版本。
5.6的版本导入到5.7版本,可能会报错。这个要注意的。
一般是在数据库彻底关闭或者不能完成正常提供服务的前提下进行备份。如tar、cp、xtrabackup(数据库可以正常提供服务)、lvm snapshot(LVM拍照)、rsync等等。
备份的实质:就是对数据文件、配置文件、日志文件进行拷贝操作。
在线热备:(数据冗余、AB复制、主从复制):
MySQL的replication架构,如M-S、M-S-S、M-M-S等。一主多从、多主一从等。
实时在线备份。
备份工具:
社区版安装包中的备份工具。
1、mysqldump(逻辑备份、只能全量备份)
1)企业版和社区版都包含这个工具;
2)本质上使用SQL语句描述数据库及数据的导出。
3)备份数据的时候,在MyISAM引擎上锁表、InnoDB引擎上锁行。
4)数据量很大的时候不推荐使用。
2、mysqlhotcopy(物理备份工具)
1)企业版和社区版都包含;
2)perl写的一个脚本,本质上是使用锁表语句后再拷贝数据。
3)只支持MyISAM数据引擎。
3、企业版安装包中的备份工具:
mysqlbackup:
1)在线备份;
2)增量备份;
3)部分备份;
4)在某个特定时间的一致性状态的备份。
① XtraBackup和innobackupex(物理备份)
1)Xtrabackup是一个对InnoDB做数据备份的工具,支持==在线热备份==(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品。
2)Xtrabackup有两个主要的工具:xtrabackup、innobackupex
a、xtrabackup只能备份==InnoDB和XtraDB==两种数据表,不能备份myisam类型的表。
b、innobackupex是将Xtrabackup进行封装的perl脚本,所以能同时备份处理innodb和myisam的存储引擎,但在处理myisam时需要加一个读锁。
② mydumper(逻辑备份,备份SQL语句)
多线程备份工具
https://launchpad.net/mydumper/mydumper-0.9.1.tar.gz 2015-11-06(最后更新时间)
项目最后更新时间。
mysqldump :逻辑备份。
xtrabackup:物理备份。
备份方法:
全量备份(全备)
1)把数据完整拷贝备份。下次再把数据再进行备份一次。
2)有很大部分数据是重复的。
3)花费时间也比较多。
4)简单方便。
增量备份(增量备份基于全量备份)
1)先有一份全量备份。
2)数据变化,只备份变化的数据。
3)星期天进行一次全量备份,然后周一只做一次增加部分的备份;周二做一次增加部分备份。
每周做一次全量,多次增量。备份方法。